From abc83cbed6ebba15b5fc5a6f4f9524bb7e04db19 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Wed, 2 Dec 2020 12:28:19 -0500 Subject: generate atom feed for releases --- generate_feed.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 generate_feed.py (limited to 'generate_feed.py') diff --git a/generate_feed.py b/generate_feed.py new file mode 100755 index 00000000..b6c687af --- /dev/null +++ b/generate_feed.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 + +from datetime import datetime + +import lxml.html +from lxml import etree + +document = lxml.html.parse("static_tmp/releases.html").getroot() +releases = document.body.cssselect("#changelog h3") + +updated = None +entries = [] + +for release in releases: + title = release.attrib["id"] + time = datetime.strptime(title, "%Y.%m.%d.%H").isoformat() + "Z" + if updated is None: + updated = time + content = [] + element = release.getnext() + while element is not None and element.tag != "h3": + content.append(etree.tostring(element).decode()) + element = element.getnext() + entry = f"""\ + + https://grapheneos.org/releases#{title} + + {title} + {time} + +
+ {"".join(content)} +
+
+
""" + entries.append(entry) + +feed = f""" + + https://grapheneos.org/releases#changelog + + + GrapheneOS changelog + {updated} + + GrapheneOS + contact@grapheneos.org + https://grapheneos.org/ + + {"".join(entries)} + +""" + +with open("static_tmp/releases.atom", "w") as f: + f.write(feed) -- cgit v1.3.1