Skip to content

Commit 30a8198

Browse files
committed
fetch other h-feeds from rel="feed" property
1 parent 683b41d commit 30a8198

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

woodwind/templates/select-feed.jinja2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<input type="radio" name="feed" id="radio-{{ loop.index }}"
1010
value="{{ feed.get('type')}}|{{ feed.get('feed') }}" />
1111
<label for="radio-{{loop.index}}">
12+
{{ feed.get('title') }}:<br/>
1213
{{ feed.get('feed') }} ({{ feed.get('type') }})
1314
</label>
1415
</p>

woodwind/views.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,26 +367,42 @@ def find_possible_feeds(origin):
367367
'origin': origin,
368368
'feed': origin,
369369
'type': 'xml',
370+
'title': 'untitled xml feed',
370371
})
371372

372373
elif content_type == 'text/html':
373374
parsed = mf2py.parse(doc=resp.text, url=origin)
374375
# if text/html, then parse and look for h-entries
375376
hfeed = mf2util.interpret_feed(parsed, origin)
376377
if hfeed.get('entries'):
378+
ftitle = hfeed.get('name') or 'untitled h-feed'
377379
feeds.append({
378380
'origin': origin,
379381
'feed': resp.url,
380382
'type': 'html',
383+
'title': ftitle[:140]
381384
})
382385

386+
# look for link="feed"
387+
for furl, fprops in parsed.get('rel-urls', {}).items():
388+
if 'feed' in fprops.get('rels', []) and (
389+
not fprops.get('type')
390+
or fprops.get('type') == 'text/html'):
391+
feeds.append({
392+
'origin': origin,
393+
'feed': furl,
394+
'type': 'html',
395+
'title': fprops.get('title'),
396+
})
397+
383398
# then look for link rel="alternate"
384399
for link in parsed.get('alternates', []):
385400
if link.get('type') in xml_feed_types:
386401
feeds.append({
387402
'origin': origin,
388403
'feed': link.get('url'),
389404
'type': 'xml',
405+
'title': link.get('title'),
390406
})
391407
return feeds
392408

0 commit comments

Comments
 (0)