#!/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 article")
updated = None
entries = []
for release in releases[:20]:
title = release.attrib["id"]
try:
time = datetime.strptime(title, "%Y%m%d%H").isoformat() + "Z"
except ValueError:
time = datetime.strptime(title, "%Y.%m.%d.%H").isoformat() + "Z"
if updated is None:
updated = time
content = [etree.tostring(e).decode() for e in release.getchildren()[1:]]
entries.append(f"""
https://grapheneos.org/releases#{title}{title}{time}{time}
{"".join(content)}
""")
feed = f"""
https://grapheneos.org/releases#changeloghttps://grapheneos.org/favicon.icoGrapheneOS changelog{updated}GrapheneOScontact@grapheneos.orghttps://grapheneos.org/{"".join(entries)}
"""
with open("static-tmp/releases.atom", "w") as f:
f.write(feed)