#!/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#changelogGrapheneOS changelog{updated}GrapheneOScontact@grapheneos.orghttps://grapheneos.org/
{"".join(entries)}
"""
with open("static_tmp/releases.atom", "w") as f:
f.write(feed)