diff options
-rwxr-xr-x | sfeed_html.awk | 8 | ||||
-rwxr-xr-x | sfeed_update_urls.sh | 13 | ||||
-rw-r--r-- | sfeedrc | 303 |
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 | ||
5 | feed() { # feed NAME URL BASE_URL ENCODING | 5 | feed() { # 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 | ||
9 | DIR="${SFEED_DATA:-$HOME/.sfeed}/urls" | 16 | DIR="${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 | ||
27 | feeds_planets() { | 27 | feeds_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 | |||
34 | yt_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 | ||
38 | feeds_podcasts() { | 34 | feeds_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 | ||
44 | feeds_youtube() { | 40 | feeds_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 | ||
113 | feeds_from_elioat() { | 109 | feeds_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 | ||
155 | feeds_podcasts() { | 151 | feeds_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 | ||
162 | feeds_friends() { | 158 | feeds_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 | ||
196 | feeds_people() { | 192 | feeds_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 | ||
206 | feeds_news() { | 202 | feeds_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 | ||
213 | feeds_smolweb() { | 209 | feeds_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 | ||
220 | feeds_comics() { | 216 | feeds_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 | ||
228 | feeds_misc() { | 224 | feeds_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 | ||
237 | feeds_me() { | 233 | feeds_me() { |
238 | : | 234 | : |
239 | } | 235 | } |
240 | 236 | ||
237 | ### Feed helpers ################################################ | ||
238 | |||
239 | feedx() { # 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 | |||
254 | yt_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 | ||
243 | unsubscribe_feeds() { | 262 | unsubscribe_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 ###################################################### |