diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2021-07-10 12:04:45 -0400 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2021-07-10 12:04:45 -0400 |
| commit | 406004cdf8719ef583091d2c1f97e6e3a804a00a (patch) | |
| tree | 42f340390d8576c4d68eb29f9ce24ec28fcb504b /generate-feed.py | |
| parent | 20a0b34f986d5225304e02ba44a0b78f986a0865 (diff) | |
rename generate_feed.py to generate-feed.py
Diffstat (limited to 'generate-feed.py')
| -rwxr-xr-x | generate-feed.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/generate-feed.py b/generate-feed.py new file mode 100755 index 00000000..c1e749bd --- /dev/null +++ b/generate-feed.py @@ -0,0 +1,52 @@ +#!/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: + title = release.attrib["id"] + 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""" + <entry> + <id>https://grapheneos.org/releases#{title}</id> + <link href="https://grapheneos.org/releases#{title}"/> + <title>{title}</title> + <updated>{time}</updated> + <published>{time}</published> + <content type="xhtml"> + <div xmlns="http://www.w3.org/1999/xhtml"> + {"".join(content)} + </div> + </content> + </entry>""") + +feed = f"""<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> + <id>https://grapheneos.org/releases#changelog</id> + <link href="https://grapheneos.org/releases#changelog"/> + <link rel="self" href="https://grapheneos.org/releases.atom"/> + <link rel="license" href="https://grapheneos.org/LICENSE.txt"/> + <icon>https://grapheneos.org/favicon.ico</icon> + <title>GrapheneOS changelog</title> + <updated>{updated}</updated> + <author> + <name>GrapheneOS</name> + <email>contact@grapheneos.org</email> + <uri>https://grapheneos.org/</uri> + </author>{"".join(entries)} +</feed> +""" + +with open("static_tmp/releases.atom", "w") as f: + f.write(feed) |
