summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2021-03-05 18:19:38 -0500
committerrsiddharth <s@ricketyspace.net>2021-03-05 18:19:38 -0500
commit158c3206d67b0b1ae5f24d20682f97ec2a9069cc (patch)
treebac44728fd8c57f7bb2d75aba841145e9a2c98d7
parentd9319b6c00daf0be3ad437fc4897565d6f3dd390 (diff)
bin: update feed
Generate a single feed for all sections at /feed.atom
-rw-r--r--bin/feed31
-rw-r--r--templates/atom/feed.atom6
2 files changed, 19 insertions, 18 deletions
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": "<!-- 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 -->