Source code for maidchan.rss
# -*- coding: utf-8 -*-
import feedparser
import io
import re
import requests
[docs]def is_valid_feed_url(url):
try:
response = feedparser.parse(url)
if 'bozo_exception' in response:
return False
except Exception:
return False
return True
def get_feed(url):
try:
resp = requests.get(url, timeout=30)
content = io.BytesIO(resp.content)
return feedparser.parse(content)
except Exception:
return {}
[docs]def validate_and_create_entry(url, pattern):
if not url:
return {}
d = get_feed(url)
if not d:
return {}
# Check whether entry currently exists
ret = {
"url": url,
"pattern": pattern,
"title_list": []
}
for entry in d.get("entries", {}):
try:
m = re.search(
pattern.lower(),
entry.get("title", "").lower()
)
except:
m = None
if m:
ret["title_list"].append(entry.get("title", ""))
return ret