mirror of
https://github.com/alex-s168/website.git
synced 2025-09-09 17:05:07 +02:00
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
import sys, json
|
|
from feedgen.feed import FeedGenerator
|
|
|
|
fg = FeedGenerator()
|
|
|
|
articles = 0
|
|
with open("build/pages.json", "r") as f:
|
|
articles = json.load(f)
|
|
articles = [x for x in articles if x["in-feed"] == True]
|
|
|
|
all_authors = {}
|
|
for article in articles:
|
|
authors = article["authors"]
|
|
for author in authors:
|
|
nick = author["nick"]
|
|
name = author.get("name", nick)
|
|
mail = author.get("mail", None)
|
|
url = author.get("url", None)
|
|
out = {"name":name}
|
|
if mail:
|
|
out["email"] = mail
|
|
if url:
|
|
out["uri"] = url
|
|
all_authors[nick] = out
|
|
|
|
fg.author([v for _,v in all_authors.items()])
|
|
|
|
fg.id("https://alex.vxcc.dev")
|
|
fg.title("alex168's blog")
|
|
fg.subtitle("alex_s168's blog")
|
|
fg.icon("https://vxcc.dev/alex/res/favicon.png")
|
|
fg.language("en-US")
|
|
fg.link(href="https://alex.vxcc.dev/atom.xml", rel="self")
|
|
fg.link(href="https://alex.vxcc.dev/", rel="alternate")
|
|
|
|
for article in reversed(articles):
|
|
page = article["page"]
|
|
url = article["url"]
|
|
title = article["title"]
|
|
summary = article["summary"]
|
|
modified = article["modified"]
|
|
authors = article["authors"]
|
|
|
|
content = None
|
|
with open(f"./build/{page}.nano.html", "r") as f:
|
|
content = f.read()
|
|
|
|
fe = fg.add_entry()
|
|
fe.id(f"https://vxcc.dev/alex/{url}")
|
|
fe.title(title)
|
|
fe.summary(summary)
|
|
fe.link(href=url)
|
|
fe.updated(modified)
|
|
fe.content(content, type="html")
|
|
|
|
fe.author([all_authors[x["nick"]] for x in authors])
|
|
|
|
fg.atom_file("build/deploy/atom.xml")
|