commit 4b13045172da61f343703da08f5a86bc74de2b64 from: Aleksey Ryndin date: Tue Jan 21 20:32:08 2025 UTC Fix: feed entry url from link tag commit - 6aae7a73f0c90bb618878e3119a181faa4303229 commit + 4b13045172da61f343703da08f5a86bc74de2b64 blob - 0052b54b059288a6e4d1d27fe7fcee49d7430ef5 blob + d2323f0f665bcc0bbdce2d037cafcc38dc807bf9 --- capsule/vostok/atom2gemfeed.py +++ capsule/vostok/atom2gemfeed.py @@ -17,6 +17,10 @@ uses_relative.append("gemini") uses_netloc.append("gemini") +def _is_gemini_link(value): + return value and value.lower().startswith("gemini://") + + def _main(raw_url): splitted_url = urlsplit(raw_url) if splitted_url.scheme != "gemini": @@ -71,13 +75,18 @@ def _main(raw_url): print(f"# {title[0].text if title else raw_url}\r") print("\r") for entry in root.get("entry") or []: + gemini_link = None entry_dict = {} for child in entry: _, _, tag = child.tag.rpartition('}') entry_dict[tag] = child.text + if tag == "link" and child.attrib.get("rel") == "alternate": + gemini_link = child.attrib.get("href") - gemini_link = entry_dict.get("id") - if not gemini_link: + + if not _is_gemini_link(gemini_link): + gemini_link = entry_dict.get("id") + if not _is_gemini_link(gemini_link): continue entry_date = "" @@ -91,7 +100,6 @@ def _main(raw_url): except ValueError: pass - title = entry_dict.get("title") or "" print(f"=> {gemini_link} {entry_date}{entry_dict.get('title') or ''}\r") return