summary refs log tree commit diff
diff options
context:
space:
mode:
authorNguyễn Gia Phong <mcsinyx@disroot.org>2022-11-09 17:01:24 +0900
committerNguyễn Gia Phong <mcsinyx@disroot.org>2022-11-09 17:01:24 +0900
commitfbbf13e2d6274c14b9d91d59248bb7d6f3833a84 (patch)
tree82e55d1970a3a6b2cb48b22606c1c26a2fa09448
parentf10c6aa32650b58a4d69a71bedfc39f6d76699dd (diff)
downloadfead-fbbf13e2d6274c14b9d91d59248bb7d6f3833a84.tar.gz
Fallback Atom feed's link
RFC 4287 does not require atom:feed to contain a <link rel="alternate">.
-rwxr-xr-xsrc/fead.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/fead.py b/src/fead.py
index 21f559d..d1ad794 100755
--- a/src/fead.py
+++ b/src/fead.py
@@ -16,7 +16,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 __doc__ = 'Advert generator from web feeds'
-__version__ = '0.1.1'
+__version__ = '0.1.2'
 
 from argparse import ArgumentParser, FileType, HelpFormatter
 from asyncio import gather, open_connection, run
@@ -123,7 +123,7 @@ def parse_atom_entry(xml):
     return title, link, time, summary
 
 
-def parse_atom(xml, title):
+def parse_atom(xml, title, link):
     """Parse given Atom feed."""
     entries = []
     for child in xml:
@@ -167,7 +167,8 @@ async def fetch(raw_url):
                 assert xml[0].tag == 'channel'
                 src_title, src_link, items = parse_rss(xml[0], url.hostname)
             elif xml.tag.endswith('Atom}feed'):
-                src_title, src_link, items = parse_atom(xml, url.hostname)
+                src_title, src_link, items = parse_atom(xml, url.hostname,
+                                                        raw_url)
             else:
                 raise ValueError(f'unsupported feed format at {raw_url}')
             return (Advert(src_title, urljoin(raw_url, src_link),