fetch other h-feeds from rel="feed" property

This commit is contained in:
Kyle Mahan 2015-05-12 09:21:24 -07:00
parent 683b41d07c
commit 30a8198f17
2 changed files with 17 additions and 0 deletions

View file

@ -9,6 +9,7 @@
<input type="radio" name="feed" id="radio-{{ loop.index }}"
value="{{ feed.get('type')}}|{{ feed.get('feed') }}" />
<label for="radio-{{loop.index}}">
{{ feed.get('title') }}:<br/>
{{ feed.get('feed') }} ({{ feed.get('type') }})
</label>
</p>

View file

@ -367,6 +367,7 @@ def find_possible_feeds(origin):
'origin': origin,
'feed': origin,
'type': 'xml',
'title': 'untitled xml feed',
})
elif content_type == 'text/html':
@ -374,12 +375,26 @@ def find_possible_feeds(origin):
# if text/html, then parse and look for h-entries
hfeed = mf2util.interpret_feed(parsed, origin)
if hfeed.get('entries'):
ftitle = hfeed.get('name') or 'untitled h-feed'
feeds.append({
'origin': origin,
'feed': resp.url,
'type': 'html',
'title': ftitle[:140]
})
# look for link="feed"
for furl, fprops in parsed.get('rel-urls', {}).items():
if 'feed' in fprops.get('rels', []) and (
not fprops.get('type')
or fprops.get('type') == 'text/html'):
feeds.append({
'origin': origin,
'feed': furl,
'type': 'html',
'title': fprops.get('title'),
})
# then look for link rel="alternate"
for link in parsed.get('alternates', []):
if link.get('type') in xml_feed_types:
@ -387,6 +402,7 @@ def find_possible_feeds(origin):
'origin': origin,
'feed': link.get('url'),
'type': 'xml',
'title': link.get('title'),
})
return feeds