diff options
author | rsiddharth <s@ricketyspace.net> | 2021-03-05 18:19:38 -0500 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2021-03-05 18:19:38 -0500 |
commit | 158c3206d67b0b1ae5f24d20682f97ec2a9069cc (patch) | |
tree | bac44728fd8c57f7bb2d75aba841145e9a2c98d7 | |
parent | d9319b6c00daf0be3ad437fc4897565d6f3dd390 (diff) |
bin: update feed
Generate a single feed for all sections at /feed.atom
-rw-r--r-- | bin/feed | 31 | ||||
-rw-r--r-- | templates/atom/feed.atom | 6 |
2 files changed, 19 insertions, 18 deletions
@@ -15,11 +15,10 @@ import sys import mistune URL = "https://fsf.org.in" -SECTIONS = ["news", "article"] +SECTIONS = ["news", "article", "case-study"] +TARGET = "/".join(["_build", "feed.atom"]) F_PH = { - "name": "<!-- Feed Name -->", - "link": "<!-- Feed Link -->", "updated": "<!-- Feed Updated -->", "entries": "<!-- Entries -->", } @@ -105,10 +104,6 @@ def elink(sec, s, l): return "/".join([URL, sec, s, l]) -def flink(sec): - return "/".join([URL, sec, "feed.atom"]) - - def time(c): m = re.search(r"pubdate: ([0-9]{8})", c) @@ -183,30 +178,36 @@ def esort(esd): return es -def feed(sec, es): +def feed(es): f = template("feed") - f = f.replace(F_PH["name"], sec.capitalize(), 2) - f = f.replace(F_PH["link"], flink(sec), 1) f = f.replace(F_PH["updated"], now(), 1) f = f.replace(F_PH["entries"], es, 1) return f -def process(sec): - esd = {} +def process(sec, esd): for f in files(sec): id, e = entry(sec, f) esd[id] = e - es = "".join(esort(esd)) + return esd + - write("/".join(["_build", sec, "feed.atom"]), feed(sec, es)) +def stringify(esd): + return "".join(esort(esd)) + + +def commit(es): + write(TARGET, feed(es)) def run(): + esd = {} for sec in SECTIONS: - process(sec) + esd = process(sec, esd) + + commit(stringify(esd)) if __name__ == "__main__": diff --git a/templates/atom/feed.atom b/templates/atom/feed.atom index f248c1b..c601529 100644 --- a/templates/atom/feed.atom +++ b/templates/atom/feed.atom @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> - <title><!-- Feed Name --> Feed - Free Software Foundation of India</title> - <id>https://fsf.org.in/<!-- Feed Name -->.atom</id> - <link rel="self" href="<!-- Feed Link -->"></link> + <title>Free Software Foundation of India - Feed</title> + <id>https://fsf.org.in/feed.atom</id> + <link rel="self" href="https://fsf.org.in/feed.atom"></link> <updated><!-- Feed Updated --></updated> <author><name>Free Software Foundation of India</name></author> <!-- Entries --> |