about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xsfeed_html.awk8
-rwxr-xr-xsfeed_update_urls.sh13
-rw-r--r--sfeedrc303
3 files changed, 179 insertions, 145 deletions
diff --git a/sfeed_html.awk b/sfeed_html.awk index 34bf528..175cc0a 100755 --- a/sfeed_html.awk +++ b/sfeed_html.awk
@@ -96,7 +96,13 @@ FNR == 1 {
96 } else { 96 } else {
97 yt = "" 97 yt = ""
98 } 98 }
99 # extra metadata, yaaaaay
99 URLS = envor("SFEED_DATA", ENVIRON["HOME"] "/.sfeed") "/urls/" safe_name 100 URLS = envor("SFEED_DATA", ENVIRON["HOME"] "/.sfeed") "/urls/" safe_name
101 getline feed_url < URLS
102 getline site_url < URLS
103 getline feed_tags < URLS
104 # put more lines to read here
105 close(URLS)
100 # State variables 106 # State variables
101 stamp = "." 107 stamp = "."
102 buf = "" 108 buf = ""
@@ -229,8 +235,6 @@ function end_file()
229 printf "<nav class=\"flinks\">" 235 printf "<nav class=\"flinks\">"
230 feed_url = "" 236 feed_url = ""
231 site_url = "" 237 site_url = ""
232 getline feed_url < URLS
233 getline site_url < URLS
234 if (site_url) { 238 if (site_url) {
235 #print_link(site_url, "", (yt ? "chan" : "site"), "site-url") 239 #print_link(site_url, "", (yt ? "chan" : "site"), "site-url")
236 printf "<a class=\"site-url\" href=\"%s\">%s</a>\n", site_url, (yt ? "chan" : "site") 240 printf "<a class=\"site-url\" href=\"%s\">%s</a>\n", site_url, (yt ? "chan" : "site")
diff --git a/sfeed_update_urls.sh b/sfeed_update_urls.sh index d4eaebf..9251813 100755 --- a/sfeed_update_urls.sh +++ b/sfeed_update_urls.sh
@@ -3,7 +3,14 @@
3. "$1" 3. "$1"
4 4
5feed() { # feed NAME URL BASE_URL ENCODING 5feed() { # feed NAME URL BASE_URL ENCODING
6 printf '%s\t%s\t%s\n' "$1" "$2" "${3:-}" 6 name="$1"
7 url="$2"
8 base="$3"
9 encoding="$4"
10 shift 4
11 printf '%s\t%s\t%s' "$name" "$url" "${base:-}"
12 printf '\t%s' "$@"
13 printf '\n'
7} 14}
8 15
9DIR="${SFEED_DATA:-$HOME/.sfeed}/urls" 16DIR="${SFEED_DATA:-$HOME/.sfeed}/urls"
@@ -16,4 +23,8 @@ BEGIN{FS="\t";}
16 file = dir "/" $1; 23 file = dir "/" $1;
17 if ($2) print $2 > file; 24 if ($2) print $2 > file;
18 if ($3) print $3 >> file; 25 if ($3) print $3 >> file;
26 for (i=4;i<=NF;i++) {
27 print $i >> file;
28 }
29 close(file);
19}' 30}'
diff --git a/sfeedrc b/sfeedrc index 13596d4..1c70548 100644 --- a/sfeedrc +++ b/sfeedrc
@@ -25,20 +25,16 @@ feeds() {
25} 25}
26 26
27feeds_planets() { 27feeds_planets() {
28 feed "Planet Emacs" "https://planet.emacslife.com/atom.xml" "https://planet.emacslife.com/" "" 28 feedx "Planet Emacs" "https://planet.emacslife.com/atom.xml" "https://planet.emacslife.com/" ""
29 feed "r/emacs" "https://i.reddit.com/r/emacs.rss" "https://i.reddit.com/r/emacs" "" 29 feedx "r/emacs" "https://i.reddit.com/r/emacs.rss" "https://i.reddit.com/r/emacs" ""
30 feed "Planet Lisp" "https://planet.lisp.org/rss20.xml" "https://planet.lisp.org/" "" 30 feedx "Planet Lisp" "https://planet.lisp.org/rss20.xml" "https://planet.lisp.org/" ""
31 feed "Planet Scheme" "https://planet.scheme.org/atom.xml" "https://planet.scheme.org/" "" 31 feedx "Planet Scheme" "https://planet.scheme.org/atom.xml" "https://planet.scheme.org/" ""
32}
33
34yt_feed() { # yt_feed TITLE CHANNEL_ID
35 feed "$1 [yt]" "https://www.youtube.com/feeds/videos.xml?channel_id=$2" "https://youtube.com/channel/$2"
36} 32}
37 33
38feeds_podcasts() { 34feeds_podcasts() {
39 yt_feed "iilluminaughtii" "UCpDmn2FfVYdPIDwRTcf5-OA" 35 yt_feed "iilluminaughtii" "UCpDmn2FfVYdPIDwRTcf5-OA"
40 feed "Maintenance Phase" "https://feeds.buzzsprout.com/1411126.rss" "https://www.maintenancephase.com/" 36 feedx "Maintenance Phase" "https://feeds.buzzsprout.com/1411126.rss" "https://www.maintenancephase.com/"
41 feed "Switched on Pop" "https://feeds.megaphone.fm/switchedonpop" "https://switchedonpop.com/" 37 feedx "Switched on Pop" "https://feeds.megaphone.fm/switchedonpop" "https://switchedonpop.com/"
42} 38}
43 39
44feeds_youtube() { 40feeds_youtube() {
@@ -103,149 +99,172 @@ feeds_from_agafnd() {
103 yt_feed "brian david gilbert" "UCakAg8hC_RFJm4RI3DlD7SA" 99 yt_feed "brian david gilbert" "UCakAg8hC_RFJm4RI3DlD7SA"
104 yt_feed "Jonni Phillips" "UC1NbRaGNot6kNEL3Jsa7SRA" 100 yt_feed "Jonni Phillips" "UC1NbRaGNot6kNEL3Jsa7SRA"
105 # podcasts 101 # podcasts
106 feed "Lingthusiasm" "https://feeds.soundcloud.com/users/soundcloud:users:237055046/sounds.rss" "https://lingthusiasm.com/" 102 feedx "Lingthusiasm" "https://feeds.soundcloud.com/users/soundcloud:users:237055046/sounds.rss" "https://lingthusiasm.com/"
107 # other stuff 103 # other stuff
108 feed "Buttersafe" "https://feeds.feedburner.com/buttersafe" "https://www.buttersafe.com/" 104 feedx "Buttersafe" "https://feeds.feedburner.com/buttersafe" "https://www.buttersafe.com/"
109 feed "Going Medieval" "https://going-medieval.com/feed/" 105 feedx "Going Medieval" "https://going-medieval.com/feed/"
110 feed "Scooby Doo Mistakes" "https://scoobydoomistakes.tumblr.com/rss" "https://scoobydoomistakes.tumblr.com/" 106 feedx "Scooby Doo Mistakes" "https://scoobydoomistakes.tumblr.com/rss" "https://scoobydoomistakes.tumblr.com/"
111} 107}
112 108
113feeds_from_elioat() { 109feeds_from_elioat() {
114 # feed <name> <feedurl> [basesiteurl] [encoding] 110 # feed <name> <feedurl> [basesiteurl] [encoding]
115 feed "antoine.studio" "https://antoine.studio/rss.xml" 111 feedx "antoine.studio" "https://antoine.studio/rss.xml"
116 feed "apenwarr" "https://apenwarr.ca/log/rss.php" 112 feedx "apenwarr" "https://apenwarr.ca/log/rss.php"
117 feed "bert.org" "https://bert.org/feed.xml" 113 feedx "bert.org" "https://bert.org/feed.xml"
118 feed "Ben Hoyt's technical writing" "https://benhoyt.com/writings/rss.xml" 114 feedx "Ben Hoyt's technical writing" "https://benhoyt.com/writings/rss.xml"
119 feed "Buried Treasure" "https://buried-treasure.org/feed/" 115 feedx "Buried Treasure" "https://buried-treasure.org/feed/"
120 116
121 feed "catapult" "https://catapult.co/rss" 117 feedx "catapult" "https://catapult.co/rss"
122 feed "codex99" "http://codex99.com" 118 feedx "codex99" "http://codex99.com"
123 feed "compudanzas log" "https://compudanzas.net/atom.xml" 119 feedx "compudanzas log" "https://compudanzas.net/atom.xml"
124 feed "DustyCloud Brainstorms" "http://dustycloud.org/blog/index.xml" 120 feedx "DustyCloud Brainstorms" "http://dustycloud.org/blog/index.xml"
125 feed "Earthly" "https://earthly.dev/blog/feed.xml" 121 feedx "Earthly" "https://earthly.dev/blog/feed.xml"
126 feed "Ella Hoeppner" "https://www.ellahoeppner.com/blog.rss" 122 feedx "Ella Hoeppner" "https://www.ellahoeppner.com/blog.rss"
127 feed "Esoteric Codes" "https://esoteric.codes/rss" 123 feedx "Esoteric Codes" "https://esoteric.codes/rss"
128 feed "Grimgrains" "https://grimgrains.com/links/rss.xml" 124 feedx "Grimgrains" "https://grimgrains.com/links/rss.xml"
129 feed "hisaac.net" "https://hisaac.net/feed.xml" 125 feedx "hisaac.net" "https://hisaac.net/feed.xml"
130 feed "Hundred Rabbits" "http://100r.co/links/rss.xml" 126 feedx "Hundred Rabbits" "http://100r.co/links/rss.xml"
131 feed "Hypercritical" "https://hypercritical.co/feeds/main" 127 feedx "Hypercritical" "https://hypercritical.co/feeds/main"
132 feed "joshua stein" "https://jcs.org/rss" 128 feedx "joshua stein" "https://jcs.org/rss"
133 feed "journal.stuffwithstuff.com" "http://journal.stuffwithstuff.com/rss.xml" 129 feedx "journal.stuffwithstuff.com" "http://journal.stuffwithstuff.com/rss.xml"
134 feed "Julia Evans" "https://jvns.ca/atom.xml" 130 feedx "Julia Evans" "https://jvns.ca/atom.xml"
135 feed "Kicks Condor [RSS]" "https://www.kickscondor.com/rss.xml" 131 feedx "Kicks Condor [RSS]" "https://www.kickscondor.com/rss.xml"
136 feed "kottke.org" "http://feeds.kottke.org/main" 132 feedx "kottke.org" "http://feeds.kottke.org/main"
137 feed "literary monster" "https://literary.monster/index.xml" 133 feedx "literary monster" "https://literary.monster/index.xml"
138 feed "Linus Lee" "https://thesephist.com/index.xml" 134 feedx "Linus Lee" "https://thesephist.com/index.xml"
139 feed "Meg Conley" "https://www.megconley.com/rss/" 135 feedx "Meg Conley" "https://www.megconley.com/rss/"
140 feed "minimalist baker" "https://minimalistbaker.com/feed/" 136 feedx "minimalist baker" "https://minimalistbaker.com/feed/"
141 feed "llimllib notes" "https://notes.billmill.org/atom.xml" 137 feedx "llimllib notes" "https://notes.billmill.org/atom.xml"
142 feed "petermolnar.net" "https://petermolnar.net/feed/" 138 feedx "petermolnar.net" "https://petermolnar.net/feed/"
143 feed "Piper Haywood" "https://piperhaywood.com/feed/" 139 feedx "Piper Haywood" "https://piperhaywood.com/feed/"
144 feed "Rainbow Plant Life" "https://rainbowplantlife.com/feed/" 140 feedx "Rainbow Plant Life" "https://rainbowplantlife.com/feed/"
145 feed "Robin Rendle" "https://robinrendle.com/feed.xml" 141 feedx "Robin Rendle" "https://robinrendle.com/feed.xml"
146 feed "sogrady" "https://sogrady.org/feed/" 142 feedx "sogrady" "https://sogrady.org/feed/"
147 feed "Sibylla Bostoniensis" "https://siderea.dreamwidth.org/data/rss" 143 feedx "Sibylla Bostoniensis" "https://siderea.dreamwidth.org/data/rss"
148 feed "The only good system is a sound system" "https://ftrv.se/posts.atom" 144 feedx "The only good system is a sound system" "https://ftrv.se/posts.atom"
149 feed "weaver.skepti.ch" "https://weaver.skepti.ch/atom.xml" 145 feedx "weaver.skepti.ch" "https://weaver.skepti.ch/atom.xml"
150 feed "whippet" "https://thewhippet.org/archive/rss/" 146 feedx "whippet" "https://thewhippet.org/archive/rss/"
151 feed "r/Worldnews" "https://www.reddit.com/r/worldnews/.rss" 147 feedx "r/Worldnews" "https://www.reddit.com/r/worldnews/.rss"
152 feed "zep [Lexaloffle Blog Feed]" "https://www.lexaloffle.com/bbs/feed.php?uid=1" 148 feedx "zep [Lexaloffle Blog Feed]" "https://www.lexaloffle.com/bbs/feed.php?uid=1"
153} 149}
154 150
155feeds_podcasts() { 151feeds_podcasts() {
156 feed "Tilde Whirl Tildeverse Podcast" "https://tilde.town/~dozens/podcast/rss.xml" "https://tilde.town/~dozens/podcast/" "" 152 feedx "Tilde Whirl Tildeverse Podcast" "https://tilde.town/~dozens/podcast/rss.xml" "https://tilde.town/~dozens/podcast/" ""
157 feed "trash cat tech cat" "https://podcast.librepunk.club/tctc/ogg.xml" "https://podcast.librepunk.club/tctc/" "" 153 feedx "trash cat tech cat" "https://podcast.librepunk.club/tctc/ogg.xml" "https://podcast.librepunk.club/tctc/" ""
158 feed "Hacker Public Radio" "https://hackerpublicradio.org/hpr_ogg_rss.php" "https://hackerpublicradio.org/" "" 154 feedx "Hacker Public Radio" "https://hackerpublicradio.org/hpr_ogg_rss.php" "https://hackerpublicradio.org/" ""
159 feed "Levar Burton Reads" "https://feeds.simplecast.com/LDNgBXht" 155 feedx "Levar Burton Reads" "https://feeds.simplecast.com/LDNgBXht"
160} 156}
161 157
162feeds_friends() { 158feeds_friends() {
163 feed "lipu pi jan Niko" "https://tilde.town/~nihilazo/index.xml" "https://tilde.town/~nihilazo/" "" 159 feedx "lipu pi jan Niko" "https://tilde.town/~nihilazo/index.xml" "https://tilde.town/~nihilazo/" ""
164 feed "chrismanbrown.gitlab.io (dozens)" "https://chrismanbrown.gitlab.io/rss.xml" "https://chrismanbrown.gitlab.io/" "" 160 feedx "chrismanbrown.gitlab.io (dozens)" "https://chrismanbrown.gitlab.io/rss.xml" "https://chrismanbrown.gitlab.io/" ""
165 feed "Dozens and Dragons" "https://dozensanddragons.neocities.org/rss.xml" "https://dozensanddragons.neocities.org/" "" 161 feedx "Dozens and Dragons" "https://dozensanddragons.neocities.org/rss.xml" "https://dozensanddragons.neocities.org/" ""
166 feed "dozens: Society For Putting Things On Top Of Other Things" "https://society.neocities.org/rss.xml" "https://society.neocities.org/" "" 162 feedx "dozens: Society For Putting Things On Top Of Other Things" "https://society.neocities.org/rss.xml" "https://society.neocities.org/" ""
167 feed "dozens: vgnfdblg" "https://supervegan.neocities.org/feed.xml" "https://supervegan.neocities.org/" "" 163 feedx "dozens: vgnfdblg" "https://supervegan.neocities.org/feed.xml" "https://supervegan.neocities.org/" ""
168 feed "dozens: backgammon" "http://tilde.town/~dozens/backgammon/rss.xml" "http://tilde.town/~dozens/backgammon/" "" 164 feedx "dozens: backgammon" "http://tilde.town/~dozens/backgammon/rss.xml" "http://tilde.town/~dozens/backgammon/" ""
169 feed "dozens: It's Pro Toad and Superb Owl" "https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/feed.xml" "https://git.tilde.town/dozens/protoadandsuperbowl/" "" 165 feedx "dozens: It's Pro Toad and Superb Owl" "https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/feed.xml" "https://git.tilde.town/dozens/protoadandsuperbowl/" ""
170 feed "dozens dreams" "https://tilde.team/~dozens/dreams/rss.xml" "https://tilde.team/~dozens/dreams/" "" 166 feedx "dozens dreams" "https://tilde.team/~dozens/dreams/rss.xml" "https://tilde.team/~dozens/dreams/" ""
171 feed "dozens: write.as" "https://write.tildeverse.org/dozens/feed/" "https://write.tildeverse.org/dozens/" "" 167 feedx "dozens: write.as" "https://write.tildeverse.org/dozens/feed/" "https://write.tildeverse.org/dozens/" ""
172 feed "dozens css art" "http://tilde.town/~dozens/cssart/feed.xml" "http://tilde.town/~dozens/cssart/" "" 168 feedx "dozens css art" "http://tilde.town/~dozens/cssart/feed.xml" "http://tilde.town/~dozens/cssart/" ""
173 feed "Benjamin Wil" "https://benjaminwil.info/feed.xml" "https://benjaminwil.info/" "" 169 feedx "Benjamin Wil" "https://benjaminwil.info/feed.xml" "https://benjaminwil.info/" ""
174 feed "(lambda (x) (create x))" "http://lambdacreate.com/static/feed.rss" "http://lambdacreate.com/" "" 170 feedx "(lambda (x) (create x))" "http://lambdacreate.com/static/feed.rss" "http://lambdacreate.com/" ""
175 feed "m455.casa" "https://m455.casa/feed.rss" "https://m455.casa/" "" 171 feedx "m455.casa" "https://m455.casa/feed.rss" "https://m455.casa/" ""
176 feed "Oatmeal" "https://eli.li/feed.rss" "https://eli.li/" "" 172 feedx "Oatmeal" "https://eli.li/feed.rss" "https://eli.li/" ""
177 feed "RSRSSS" "https://envs.net/~lucidiot/rsrsss/feed.xml" "https://envs.net/~lucidiot/rsrsss/" "" 173 feedx "RSRSSS" "https://envs.net/~lucidiot/rsrsss/feed.xml" "https://envs.net/~lucidiot/rsrsss/" ""
178 feed "Tomasino Blog" "https://blog.tomasino.org/index.xml" "https://blog.tomasino.org/" "" 174 feedx "Tomasino Blog" "https://blog.tomasino.org/index.xml" "https://blog.tomasino.org/" ""
179 feed "Tomasino Labs" "https://labs.tomasino.org/index.xml" "https://labs.tomasino.org/" "" 175 feedx "Tomasino Labs" "https://labs.tomasino.org/index.xml" "https://labs.tomasino.org/" ""
180 feed "Will's Blog" "https://wflewis.com/feed.xml" "https://wflewis.com/" "" 176 feedx "Will's Blog" "https://wflewis.com/feed.xml" "https://wflewis.com/" ""
181 feed "Rick Carlino's Blog" "https://rickcarlino.com/rss/feed.rss" "https://rickcarlino.com/rss/" "" 177 feedx "Rick Carlino's Blog" "https://rickcarlino.com/rss/feed.rss" "https://rickcarlino.com/rss/" ""
182 feed "Causal Agency" "https://text.causal.agency/feed.atom" "https://text.causal.agency/" "" 178 feedx "Causal Agency" "https://text.causal.agency/feed.atom" "https://text.causal.agency/" ""
183 feed "Benoit Joly" "https://blog.benoitj.ca/posts/index.xml" "https://blog.benoitj.ca/posts/" "" 179 feedx "Benoit Joly" "https://blog.benoitj.ca/posts/index.xml" "https://blog.benoitj.ca/posts/" ""
184 feed "linkbudz" "https://linkbudz.m455.casa/feed.rss" "https://linkbudz.m455.casa/" "" 180 feedx "linkbudz" "https://linkbudz.m455.casa/feed.rss" "https://linkbudz.m455.casa/" ""
185 feed "Alex Schroeder" "https://alexschroeder.ch/wiki/feed/full/" "https://alexschroeder.ch/" "" 181 feedx "Alex Schroeder" "https://alexschroeder.ch/wiki/feed/full/" "https://alexschroeder.ch/" ""
186 feed "Björn Wärmedal" "https://warmedal.se/~bjorn/atom.xml" "https://warmedal.se/~bjorn/" "" 182 feedx "Björn Wärmedal" "https://warmedal.se/~bjorn/atom.xml" "https://warmedal.se/~bjorn/" ""
187 feed "a rickety bridge of impossible crossing" "https://bluelander.bearblog.dev/feed/" "https://bluelander.bearblog.dev/" "" 183 feedx "a rickety bridge of impossible crossing" "https://bluelander.bearblog.dev/feed/" "https://bluelander.bearblog.dev/" ""
188 feed "javapool updates" "https://tilde.town/~m455/javapool.rss" "" "" 184 feedx "javapool updates" "https://tilde.town/~m455/javapool.rss" "" ""
189 feed "coolguy.website" "https://coolguy.website/rss/index.xml" "https://coolguy.website/" 185 feedx "coolguy.website" "https://coolguy.website/rss/index.xml" "https://coolguy.website/"
190 feed "brainshit" "https://brainshit.fr/rss" "https://brainshit.fr" 186 feedx "brainshit" "https://brainshit.fr/rss" "https://brainshit.fr"
191 feed 'Idiomdrottning' 'https://idiomdrottning.org/blog' "https://idiomdrottning.org" 187 feedx 'Idiomdrottning' 'https://idiomdrottning.org/blog' "https://idiomdrottning.org"
192 feed "Rick Carlino's Blog" "https://rickcarlino.com/rss/feed.rss" 188 feedx "Rick Carlino's Blog" "https://rickcarlino.com/rss/feed.rss"
193 feed "Rick Carlino's Recent News Feed" "https://news.rickcarlino.com/rss.rss" 189 feedx "Rick Carlino's Recent News Feed" "https://news.rickcarlino.com/rss.rss"
194} 190}
195 191
196feeds_people() { 192feeds_people() {
197 feed "ajroach" "http://ajroach42.com/feed.xml" "http://ajroach42.com/" "" 193 feedx "ajroach" "http://ajroach42.com/feed.xml" "http://ajroach42.com/" ""
198 feed "rachelbythebay" "https://rachelbythebay.com/w/atom.xml" "https://rachelbythebay.com/" "" 194 feedx "rachelbythebay" "https://rachelbythebay.com/w/atom.xml" "https://rachelbythebay.com/" ""
199 feed "Codemadness" "https://codemadness.org/atom.xml" 195 feedx "Codemadness" "https://codemadness.org/atom.xml"
200 feed "Ben Hoyt's technical writing" "https://benhoyt.com/writings/rss.xml" "https://benhoyt.com/writings/" 196 feedx "Ben Hoyt's technical writing" "https://benhoyt.com/writings/rss.xml" "https://benhoyt.com/writings/"
201 feed "Tom Van Winkle's Return to Gaming" "https://lichvanwinkle.blogspot.com/feeds/posts/default" "https://lichvanwinkle.blogspot.com/" 197 feedx "Tom Van Winkle's Return to Gaming" "https://lichvanwinkle.blogspot.com/feeds/posts/default" "https://lichvanwinkle.blogspot.com/"
202 feed "Chris Wellons" "https://nullprogram.com/feed/" "https://nullprogram.com/" 198 feedx "Chris Wellons" "https://nullprogram.com/feed/" "https://nullprogram.com/"
203 feed "maya.land" "https://maya.land/feed.xml" "https://maya.land/" 199 feedx "maya.land" "https://maya.land/feed.xml" "https://maya.land/"
204} 200}
205 201
206feeds_news() { 202feeds_news() {
207 feed "lobste.rs" "https://lobste.rs/rss" "https://lobste.rs/" "" 203 feedx "lobste.rs" "https://lobste.rs/rss" "https://lobste.rs/" ""
208 feed "tilde news" "https://tilde.news/rss" "https://tilde.news/" "" 204 feedx "tilde news" "https://tilde.news/rss" "https://tilde.news/" ""
209 feed "Tildes Atom feed" "https://tildes.net/topics.atom" "https://tildes.net/" "" 205 feedx "Tildes Atom feed" "https://tildes.net/topics.atom" "https://tildes.net/" ""
210 feed "NPR" "https://feeds.npr.org/1001/rss.xml" "https://text.npr.org/" "" 206 feedx "NPR" "https://feeds.npr.org/1001/rss.xml" "https://text.npr.org/" ""
211} 207}
212 208
213feeds_smolweb() { 209feeds_smolweb() {
214 feed "~town friday postcard" "https://tilde.town/~lucidiot/fridaypostcard.xml" "" 210 feedx "~town friday postcard" "https://tilde.town/~lucidiot/fridaypostcard.xml" ""
215 feed "Cosmic Voyage" "https://cosmic.voyage/rss.xml" "https://cosmic.voyage/" "" 211 feedx "Cosmic Voyage" "https://cosmic.voyage/rss.xml" "https://cosmic.voyage/" ""
216 feed "plan.cat" "https://plan.cat/rss" "https://plan.cat/" "" 212 feedx "plan.cat" "https://plan.cat/rss" "https://plan.cat/" ""
217 feed "The Plain Text Project" "https://plaintextproject.online/feed.xml" "https://plaintextproject.online/" 213 feedx "The Plain Text Project" "https://plaintextproject.online/feed.xml" "https://plaintextproject.online/"
218} 214}
219 215
220feeds_comics() { 216feeds_comics() {
221 feed "Cat and Girl" "https://catandgirl.com/feed/" "https://catandgirl.com/" "" 217 feedx "Cat and Girl" "https://catandgirl.com/feed/" "https://catandgirl.com/" ""
222 feed "Dinosaur Comics!" "https://qwantz.com/rssfeed.php" "https://qwantz.com/" "" 218 feedx "Dinosaur Comics!" "https://qwantz.com/rssfeed.php" "https://qwantz.com/" ""
223 feed "False Knees" "https://falseknees.tumblr.com/rss" "https://falseknees.tumblr.com/" "" 219 feedx "False Knees" "https://falseknees.tumblr.com/rss" "https://falseknees.tumblr.com/" ""
224 feed "Saturday Morning Breakfast Cereal" "https://www.smbc-comics.com/comic/rss" "https://www.smbc-comics.com/" "" 220 feedx "Saturday Morning Breakfast Cereal" "https://www.smbc-comics.com/comic/rss" "https://www.smbc-comics.com/" ""
225 feed "xkcd" "https://xkcd.com/atom.xml" "https://xkcd.com/" "" 221 feedx "xkcd" "https://xkcd.com/atom.xml" "https://xkcd.com/" ""
226} 222}
227 223
228feeds_misc() { 224feeds_misc() {
229 feed "Crystalverse" "https://crystalverse.com/feed/" "https://crystalverse.com/" "" 225 feedx "Crystalverse" "https://crystalverse.com/feed/" "https://crystalverse.com/" ""
230 feed "Hetzner" "https://status.hetzner.com/en.atom" "https://status.hetzner.com/" "" 226 feedx "Hetzner" "https://status.hetzner.com/en.atom" "https://status.hetzner.com/" ""
231 feed "LOW-TECH MAGAZINE" "https://feeds2.feedburner.com/typepad/krisdedecker/lowtechmagazineenglish" "https://www.lowtechmagazine.com/" "" 227 feedx "LOW-TECH MAGAZINE" "https://feeds2.feedburner.com/typepad/krisdedecker/lowtechmagazineenglish" "https://www.lowtechmagazine.com/" ""
232 feed "500-mile email" "https://500mile.email/feed.xml" "https://500mile.email/" 228 feedx "500-mile email" "https://500mile.email/feed.xml" "https://500mile.email/"
233 feed "computers are bad" "https://computer.rip/rss.xml" "https://computer.rip/" 229 feedx "computers are bad" "https://computer.rip/rss.xml" "https://computer.rip/"
234 feed "Eggs Unlimited (5)" "https://eggs.call-cc.org/rss-5.xml" 230 feedx "Eggs Unlimited (5)" "https://eggs.call-cc.org/rss-5.xml"
235} 231}
236 232
237feeds_me() { 233feeds_me() {
238 : 234 :
239} 235}
240 236
237### Feed helpers ################################################
238
239feedx() { # feedx [OPTIONS] FEED_ARGS...
240 ## Wrapper around `feed' to allow for more metadata
241 while getopts t: opt; do
242 case "$opt" in
243 t) tags="$OPTARG" ;; # tags should be a comma-separated list
244 *) ;;
245 esac
246 done
247 shift $((OPTIND - 1))
248 # `feed' (well, really `_feed') expects only 4 arguments, so we can pass
249 # more after that.
250 feed "$1" "$2" "$3" "$4" \
251 "$tags"
252}
253
254yt_feed() { # yt_feed TITLE CHANNEL_ID
255 feedx -t yt "$1 [yt]" \
256 "https://www.youtube.com/feeds/videos.xml?channel_id=$2" \
257 "https://youtube.com/channel/$2"
258}
259
241### Remove feeds ################################################ 260### Remove feeds ################################################
242 261
243unsubscribe_feeds() { 262unsubscribe_feeds() {
244 feed "Web3 is going just great" "https://web3isgoinggreat.com/feed.xml" "https://web3isgoinggreat.com/" 263 feedx "Web3 is going just great" "https://web3isgoinggreat.com/feed.xml" "https://web3isgoinggreat.com/"
245 feed "Hacker News" "https://news.ycombinator.com/rss" "https://news.ycombinator.com/" "" 264 feedx "Hacker News" "https://news.ycombinator.com/rss" "https://news.ycombinator.com/" ""
246 feed "uxn" "https://git.sr.ht/~rabbits/uxn/log/main/rss.xml" 265 feedx "uxn" "https://git.sr.ht/~rabbits/uxn/log/main/rss.xml"
247 feed "uxnfth" "https://git.sr.ht/~binarycat/uxnfth/log/front/rss.xml" 266 feedx "uxnfth" "https://git.sr.ht/~binarycat/uxnfth/log/front/rss.xml"
248 feed "worgle" "https://git.sr.ht/~pbatch/worgle/log/master/rss.xml" 267 feedx "worgle" "https://git.sr.ht/~pbatch/worgle/log/master/rss.xml"
249 yt_feed "Jelle's Marble Runs" "UCYJdpnjuSWVOLgGT9fIzL0g" 268 yt_feed "Jelle's Marble Runs" "UCYJdpnjuSWVOLgGT9fIzL0g"
250 yt_feed "LOOK MUM NO COMPUTER" "UCafxR2HWJRmMfSdyZXvZMTw" 269 yt_feed "LOOK MUM NO COMPUTER" "UCafxR2HWJRmMfSdyZXvZMTw"
251 yt_feed "Ska Tune Network" "UCji2l5wcs6GoYJY1GgG_slQ" 270 yt_feed "Ska Tune Network" "UCji2l5wcs6GoYJY1GgG_slQ"
@@ -253,30 +272,30 @@ unsubscribe_feeds() {
253 yt_feed "STRANGE ÆONS" "UCrq3JYirgV-BLluzTF6X_7A" 272 yt_feed "STRANGE ÆONS" "UCrq3JYirgV-BLluzTF6X_7A"
254 yt_feed "NileRed" "UCFhXFikryT4aFcLkLw2LBLA" 273 yt_feed "NileRed" "UCFhXFikryT4aFcLkLw2LBLA"
255 yt_feed "Cathode Ray Dude" "UCXnNibvR_YIdyPs8PZIBoEw" 274 yt_feed "Cathode Ray Dude" "UCXnNibvR_YIdyPs8PZIBoEw"
256 feed "Kill James Bond!" "https://feed.podbean.com/killjamesbondpod/feed.xml" 275 feedx "Kill James Bond!" "https://feed.podbean.com/killjamesbondpod/feed.xml"
257 feed "Jo's Boys" "https://anchor.fm/s/840fb444/podcast/rss" 276 feedx "Jo's Boys" "https://anchor.fm/s/840fb444/podcast/rss"
258 feed "Boonta Vista" "http://feeds.soundcloud.com/users/soundcloud:users:307723090/sounds.rss" 277 feedx "Boonta Vista" "http://feeds.soundcloud.com/users/soundcloud:users:307723090/sounds.rss"
259 feed "Yesterday's Print" "https://yesterdaysprint.tumblr.com/rss" 278 feedx "Yesterday's Print" "https://yesterdaysprint.tumblr.com/rss"
260 feed "Threatening Music Notation" "https://nitter.kavin.rocks/ThreatNotation/rss" 279 feedx "Threatening Music Notation" "https://nitter.kavin.rocks/ThreatNotation/rss"
261 feed "arstechnica features" "https://feeds.arstechnica.com/arstechnica/features" 280 feedx "arstechnica features" "https://feeds.arstechnica.com/arstechnica/features"
262 feed "ars ludi" "https://arsludi.lamemage.com/index.php/feed/" 281 feedx "ars ludi" "https://arsludi.lamemage.com/index.php/feed/"
263 feed "Carlos Carrasco" "https://carloscarrasco.com/index.xml" 282 feedx "Carlos Carrasco" "https://carloscarrasco.com/index.xml"
264 feed "dracula daily" "https://draculadaily.substack.com/feed" 283 feedx "dracula daily" "https://draculadaily.substack.com/feed"
265 feed "DRIVE™: The SciFi Comic, by Dave Kellett" "http://cdn.drivecomic.com/rss.xml" 284 feedx "DRIVE™: The SciFi Comic, by Dave Kellett" "http://cdn.drivecomic.com/rss.xml"
266 feed "EcoClipper" "https://ecoclipper.org/feed/" 285 feedx "EcoClipper" "https://ecoclipper.org/feed/"
267 feed "esolangs wiki" "https://esolangs.org/w/api.php?hidebots=1&urlversion=1&days=7&limit=50&action=feedrecentchanges&feedformat=atom" 286 feedx "esolangs wiki" "https://esolangs.org/w/api.php?hidebots=1&urlversion=1&days=7&limit=50&action=feedrecentchanges&feedformat=atom"
268 feed "Flashing Palely in the Margins" "https://www.inthemargins.ca/feed.rss" 287 feedx "Flashing Palely in the Margins" "https://www.inthemargins.ca/feed.rss"
269 feed "Gamestudies.org" "http://gamestudies.org/rss.php" 288 feedx "Gamestudies.org" "http://gamestudies.org/rss.php"
270 feed "gbadev.org" "https://rss.gbadev.org/feed.php" 289 feedx "gbadev.org" "https://rss.gbadev.org/feed.php"
271 feed "handmade.network" "https://handmade.network/atom" 290 feedx "handmade.network" "https://handmade.network/atom"
272 feed "Indigenous Environmental Network" "https://www.ienearth.org/feed/" 291 feedx "Indigenous Environmental Network" "https://www.ienearth.org/feed/"
273 feed "milofultz" "https://milofultz.com/atom.xml" 292 feedx "milofultz" "https://milofultz.com/atom.xml"
274 feed "N O D E" "https://n-o-d-e.net/rss/rss.xml" 293 feedx "N O D E" "https://n-o-d-e.net/rss/rss.xml"
275 feed "bill mill" "https://billmill.org/Atom" 294 feedx "bill mill" "https://billmill.org/Atom"
276 feed "nullrouted.space" "https://nullrouted.space/feed/" 295 feedx "nullrouted.space" "https://nullrouted.space/feed/"
277 feed "orllewin" "https://orllewin.uk/category/blog/feed/" 296 feedx "orllewin" "https://orllewin.uk/category/blog/feed/"
278 feed "Pinboard (unread bookmarks for eli-oat)" "https://feeds.pinboard.in/rss/u:eli-oat/" 297 feedx "Pinboard (unread bookmarks for eli-oat)" "https://feeds.pinboard.in/rss/u:eli-oat/"
279 feed "Rock Paper Shotgun" "https://www.rockpapershotgun.com/feed" 298 feedx "Rock Paper Shotgun" "https://www.rockpapershotgun.com/feed"
280} 299}
281 300
282### Filter ###################################################### 301### Filter ######################################################