From 158c3206d67b0b1ae5f24d20682f97ec2a9069cc Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Fri, 5 Mar 2021 18:19:38 -0500 Subject: bin: update feed Generate a single feed for all sections at /feed.atom --- bin/feed | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'bin') diff --git a/bin/feed b/bin/feed index e8c962e..b2300d7 100644 --- a/bin/feed +++ b/bin/feed @@ -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": "", - "link": "", "updated": "", "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__": -- cgit v1.2.3