about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCase Duckworth2022-07-18 19:53:03 -0500
committerCase Duckworth2022-07-18 19:53:03 -0500
commit6fdb6c4a6a8810b6e8466b37db9f341f69f6cf52 (patch)
tree54712e223ce02a659f0d26414478af07338641b3
parentFix HN filter (diff)
downloadsfeed-6fdb6c4a6a8810b6e8466b37db9f341f69f6cf52.tar.gz
sfeed-6fdb6c4a6a8810b6e8466b37db9f341f69f6cf52.zip
Add base urls to sfeedrc
-rwxr-xr-xsfeed_html.sh6
-rw-r--r--sfeedrc292
2 files changed, 151 insertions, 147 deletions
diff --git a/sfeed_html.sh b/sfeed_html.sh index 948bf93..01614ce 100755 --- a/sfeed_html.sh +++ b/sfeed_html.sh
@@ -160,10 +160,10 @@ html_feed() { # html_feed FEED(file) => HTML
160 if [ -f "$SFEED_DATA/urls/$filename" ]; then 160 if [ -f "$SFEED_DATA/urls/$filename" ]; then
161 feed_url="$(sed -n '1p;1q' "$SFEED_DATA/urls/$filename")" 161 feed_url="$(sed -n '1p;1q' "$SFEED_DATA/urls/$filename")"
162 site_url="$(sed -n '2p;2q' "$SFEED_DATA/urls/$filename")" 162 site_url="$(sed -n '2p;2q' "$SFEED_DATA/urls/$filename")"
163 [ -n "$site_url" ] && printf '<a class="site-url" href="%s">%s</a>\n//' "$site_url" site 163 [ -n "$site_url" ] && printf '<a class="site-url" href="%s">%s</a>\n//\n' "$site_url" site
164 [ -n "$feed_url" ] && printf '<a class="feed-url" href="%s">%s</a>\n//' "$feed_url" feed 164 [ -n "$feed_url" ] && printf '<a class="feed-url" href="%s">%s</a>\n//\n' "$feed_url" feed
165 fi 165 fi
166 printf '\n<a class="top" href="#">%s</a>' top 166 printf '<a class="top" href="#">%s</a>' top
167 echo "</span></header>" 167 echo "</span></header>"
168 echo "<table class=\"entries\">" 168 echo "<table class=\"entries\">"
169 echo "$entries" 169 echo "$entries"
diff --git a/sfeedrc b/sfeedrc index e71f1d4..0531329 100644 --- a/sfeedrc +++ b/sfeedrc
@@ -8,10 +8,13 @@ maxjobs="$(nproc)"
8### Feeds ####################################################### 8### Feeds #######################################################
9 9
10feeds() { 10feeds() {
11 ## feed NAME FEED_URL BASE_URL ENCODING # defined by sfeedrc(5).
12 # I want to add some extra fields after these.
11 feeds_planets 13 feeds_planets
12 feeds_youtube 14 feeds_youtube
13 feeds_podcasts 15 feeds_podcasts
14 feeds_friends 16 feeds_friends
17 feeds_people
15 feeds_news 18 feeds_news
16 feeds_smolweb 19 feeds_smolweb
17 feeds_comics 20 feeds_comics
@@ -20,135 +23,136 @@ feeds() {
20} 23}
21 24
22feeds_planets() { 25feeds_planets() {
23 feed "Planet Emacs" "https://planet.emacslife.com/atom.xml" 26 feed "Planet Emacs" "https://planet.emacslife.com/atom.xml" "https://planet.emacslife.com/" ""
24 feed "r/emacs" "http://old.reddit.com/r/emacs.rss" 27 feed "r/emacs" "http://old.reddit.com/r/emacs.rss" "http://old.reddit.com/r/emacs" ""
25 feed "Planet Lisp" "https://planet.lisp.org/rss20.xml" 28 feed "Planet Lisp" "https://planet.lisp.org/rss20.xml" "https://planet.lisp.org/" ""
26 feed "Planet Scheme" "https://planet.scheme.org/atom.xml" 29 feed "Planet Scheme" "https://planet.scheme.org/atom.xml" "https://planet.scheme.org/" ""
27} 30}
28 31
29feeds_youtube() { 32feeds_youtube() {
30 feed "[yt] 3Blue1Brown" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw' 33 feed "[yt] 3Blue1Brown" "https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw" ""
31 feed "[yt] AB - Ancienne Belgique" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCUVAw2kdxJlcfCdEcdgXv5A' 34 feed "[yt] AB - Ancienne Belgique" "https://www.youtube.com/feeds/videos.xml?channel_id=UCUVAw2kdxJlcfCdEcdgXv5A" ""
32 feed "[yt] Abraham Moller" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCMfIwe2KHD2XoBO2lWqeFXg' 35 feed "[yt] Abraham Moller" "https://www.youtube.com/feeds/videos.xml?channel_id=UCMfIwe2KHD2XoBO2lWqeFXg" ""
33 feed "[yt] Adam Ragusea" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC9_p50tH3WmMslWRWKnM7dQ' 36 feed "[yt] Adam Ragusea" "https://www.youtube.com/feeds/videos.xml?channel_id=UC9_p50tH3WmMslWRWKnM7dQ" ""
34 feed "[yt] Babish Culinary Universe" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCJHA_jMfCvEnv-3kRjTCQXw' 37 feed "[yt] Babish Culinary Universe" "https://www.youtube.com/feeds/videos.xml?channel_id=UCJHA_jMfCvEnv-3kRjTCQXw" ""
35 feed "[yt] Baggers" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCMV8p6Lb-bd6UZtTc_QD4zA' 38 feed "[yt] Baggers" "https://www.youtube.com/feeds/videos.xml?channel_id=UCMV8p6Lb-bd6UZtTc_QD4zA" ""
36 feed "[yt] Case Duckworth" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC92gRJdnUYklVu4pvj9n0Lw' 39 feed "[yt] Case Duckworth" "https://www.youtube.com/feeds/videos.xml?channel_id=UC92gRJdnUYklVu4pvj9n0Lw" ""
37 feed "[yt] Claire Saffitz x Dessert Person" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCvw6Y1kr_8bp6B5m1dqNyiw' 40 feed "[yt] Claire Saffitz x Dessert Person" "https://www.youtube.com/feeds/videos.xml?channel_id=UCvw6Y1kr_8bp6B5m1dqNyiw" ""
38 feed "[yt] Computerphile" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC9-y-6csu5WGm29I7JiwpnA' 41 feed "[yt] Computerphile" "https://www.youtube.com/feeds/videos.xml?channel_id=UC9-y-6csu5WGm29I7JiwpnA" ""
39 feed "[yt] EBRPL Career Center" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCIvntuaxP7PyaJDeHE_9E8Q' 42 feed "[yt] EBRPL Career Center" "https://www.youtube.com/feeds/videos.xml?channel_id=UCIvntuaxP7PyaJDeHE_9E8Q" ""
40 feed "[yt] EmacsConf and Emacs hangouts" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCwuyodzTl_KdEKNuJmeo99A' 43 feed "[yt] EmacsConf and Emacs hangouts" "https://www.youtube.com/feeds/videos.xml?channel_id=UCwuyodzTl_KdEKNuJmeo99A" ""
41 feed "[yt] Gavin Freeborn" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCJetJ7nDNLlEzDLXv7KIo0w' 44 feed "[yt] Gavin Freeborn" "https://www.youtube.com/feeds/videos.xml?channel_id=UCJetJ7nDNLlEzDLXv7KIo0w" ""
42 feed "[yt] Henry Homesweet" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCZqjwc1Wy5t1rsviYYsJiYg' 45 feed "[yt] Henry Homesweet" "https://www.youtube.com/feeds/videos.xml?channel_id=UCZqjwc1Wy5t1rsviYYsJiYg" ""
43 feed "[yt] Howard Abrams" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCVHICXXtKG7rZgtC5xonNdQ' 46 feed "[yt] Howard Abrams" "https://www.youtube.com/feeds/videos.xml?channel_id=UCVHICXXtKG7rZgtC5xonNdQ" ""
44 feed "[yt] Ignite Talks" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCZotK8ZPTUNLMeW5Q6T0cKg' 47 feed "[yt] Ignite Talks" "https://www.youtube.com/feeds/videos.xml?channel_id=UCZotK8ZPTUNLMeW5Q6T0cKg" ""
45 feed "[yt] Jake B" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCBMMB7Yi0eyFuY95Qn2o0Yg' 48 feed "[yt] Jake B" "https://www.youtube.com/feeds/videos.xml?channel_id=UCBMMB7Yi0eyFuY95Qn2o0Yg" ""
46 feed "[yt] James Tomasino" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCbTp1BYjpuhDRG5OmgIT8iw' 49 feed "[yt] James Tomasino" "https://www.youtube.com/feeds/videos.xml?channel_id=UCbTp1BYjpuhDRG5OmgIT8iw" ""
47 feed "[yt] jan Misali" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCJOh5FKisc0hUlEeWFBlD-w' 50 feed "[yt] jan Misali" "https://www.youtube.com/feeds/videos.xml?channel_id=UCJOh5FKisc0hUlEeWFBlD-w" ""
48 feed "[yt] J Duckworth Animations" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCtAEaNVrNxAUy2VSRPD_PYQ' 51 feed "[yt] J Duckworth Animations" "https://www.youtube.com/feeds/videos.xml?channel_id=UCtAEaNVrNxAUy2VSRPD_PYQ" ""
49 feed "[yt] Jelle's Marble Runs" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCYJdpnjuSWVOLgGT9fIzL0g' 52 feed "[yt] Jelle's Marble Runs" "https://www.youtube.com/feeds/videos.xml?channel_id=UCYJdpnjuSWVOLgGT9fIzL0g" ""
50 feed "[yt] John Kitchin" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCQp2VLAOlvq142YN3JO3y8w' 53 feed "[yt] John Kitchin" "https://www.youtube.com/feeds/videos.xml?channel_id=UCQp2VLAOlvq142YN3JO3y8w" ""
51 feed "[yt] karthik" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCbh_g91w0T6OYp40xFrtnhA' 54 feed "[yt] karthik" "https://www.youtube.com/feeds/videos.xml?channel_id=UCbh_g91w0T6OYp40xFrtnhA" ""
52 feed "[yt] Ken Forkish" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCvVvFZd0e86bLbd5FdgYiUg' 55 feed "[yt] Ken Forkish" "https://www.youtube.com/feeds/videos.xml?channel_id=UCvVvFZd0e86bLbd5FdgYiUg" ""
53 feed "[yt] Lex Fridman" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCSHZKyawb77ixDdsGog4iWA' 56 feed "[yt] Lex Fridman" "https://www.youtube.com/feeds/videos.xml?channel_id=UCSHZKyawb77ixDdsGog4iWA" ""
54 feed "[yt] LockPickingLawyer" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCm9K6rby98W8JigLoZOh6FQ' 57 feed "[yt] LockPickingLawyer" "https://www.youtube.com/feeds/videos.xml?channel_id=UCm9K6rby98W8JigLoZOh6FQ" ""
55 feed "[yt] Maangchi" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC8gFadPgK2r1ndqLI04Xvvw' 58 feed "[yt] Maangchi" "https://www.youtube.com/feeds/videos.xml?channel_id=UC8gFadPgK2r1ndqLI04Xvvw" ""
56 feed "[yt] Mike Zamansky" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCxkMDXQ5qzYOgXPRnOBrp1w' 59 feed "[yt] Mike Zamansky" "https://www.youtube.com/feeds/videos.xml?channel_id=UCxkMDXQ5qzYOgXPRnOBrp1w" ""
57 feed "[yt] MIT OpenCourseWare" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCEBb1b_L6zDS3xTUrIALZOw' 60 feed "[yt] MIT OpenCourseWare" "https://www.youtube.com/feeds/videos.xml?channel_id=UCEBb1b_L6zDS3xTUrIALZOw" ""
58 feed "[yt] My Analog Journal" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC8TZwtZ17WKFJSmwTZQpBTA' 61 feed "[yt] My Analog Journal" "https://www.youtube.com/feeds/videos.xml?channel_id=UC8TZwtZ17WKFJSmwTZQpBTA" ""
59 feed "[yt] Nat's What I Reckon" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCEFW1E8QzP-hKxjO2Rj68wg' 62 feed "[yt] Nat's What I Reckon" "https://www.youtube.com/feeds/videos.xml?channel_id=UCEFW1E8QzP-hKxjO2Rj68wg" ""
60 feed "[yt] Now You See It" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCWTFGPpNQ0Ms6afXhaWDiRw' 63 feed "[yt] Now You See It" "https://www.youtube.com/feeds/videos.xml?channel_id=UCWTFGPpNQ0Ms6afXhaWDiRw" ""
61 feed "[yt] Numberphile" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCoxcjq-8xIDTYp3uz647V5A' 64 feed "[yt] Numberphile" "https://www.youtube.com/feeds/videos.xml?channel_id=UCoxcjq-8xIDTYp3uz647V5A" ""
62 feed "[yt] Philosophy Tube" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC2PA-AKmVpU6NKCGtZq_rKQ' 65 feed "[yt] Philosophy Tube" "https://www.youtube.com/feeds/videos.xml?channel_id=UC2PA-AKmVpU6NKCGtZq_rKQ" ""
63 feed "[yt] PronunciationManual" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCqDSLtXeZsGc3dtVb5MW13g' 66 feed "[yt] PronunciationManual" "https://www.youtube.com/feeds/videos.xml?channel_id=UCqDSLtXeZsGc3dtVb5MW13g" ""
64 feed "[yt] Protesilaos Stavrou" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC0uTPqBCFIpZxlz_Lv1tk_g' 67 feed "[yt] Protesilaos Stavrou" "https://www.youtube.com/feeds/videos.xml?channel_id=UC0uTPqBCFIpZxlz_Lv1tk_g" ""
65 feed "[yt] RailCowGirl" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCj-Xm8j6WBgKY8OG7s9r2vQ' 68 feed "[yt] RailCowGirl" "https://www.youtube.com/feeds/videos.xml?channel_id=UCj-Xm8j6WBgKY8OG7s9r2vQ" ""
66 feed "[yt] Simone Giertz" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC3KEoMzNz8eYnwBC34RaKCQ' 69 feed "[yt] Simone Giertz" "https://www.youtube.com/feeds/videos.xml?channel_id=UC3KEoMzNz8eYnwBC34RaKCQ" ""
67 feed "[yt] Steve Yegge" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC2RCcnTltR3HMQOYVqwmweA' 70 feed "[yt] Steve Yegge" "https://www.youtube.com/feeds/videos.xml?channel_id=UC2RCcnTltR3HMQOYVqwmweA" ""
68 feed "[yt] System Crafters" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCAiiOTio8Yu69c3XnR7nQBQ' 71 feed "[yt] System Crafters" "https://www.youtube.com/feeds/videos.xml?channel_id=UCAiiOTio8Yu69c3XnR7nQBQ" ""
69 feed "[yt] Tasting History with Max Miller" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCsaGKqPZnGp_7N80hcHySGQ' 72 feed "[yt] Tasting History with Max Miller" "https://www.youtube.com/feeds/videos.xml?channel_id=UCsaGKqPZnGp_7N80hcHySGQ" ""
70 feed "[yt] Technology Connections" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q' 73 feed "[yt] Technology Connections" "https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q" ""
71 feed "[yt] Too Many Zooz" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCtjXVqMVzBIgU0SO8AV0vPg' 74 feed "[yt] Too Many Zooz" "https://www.youtube.com/feeds/videos.xml?channel_id=UCtjXVqMVzBIgU0SO8AV0vPg" ""
72 feed "[yt] Townsends" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCxr2d4As312LulcajAkKJYw' 75 feed "[yt] Townsends" "https://www.youtube.com/feeds/videos.xml?channel_id=UCxr2d4As312LulcajAkKJYw" ""
73 feed "[yt] Unitarian Church of Baton Rouge" 'https://www.youtube.com/feeds/videos.xml?channel_id=UClrqHvbiFM-1hn931ZmAPFw' 76 feed "[yt] Unitarian Church of Baton Rouge" "https://www.youtube.com/feeds/videos.xml?channel_id=UClrqHvbiFM-1hn931ZmAPFw" ""
74 feed "[yt] Vulf" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCtWuB1D_E3mcyYThA9iKggQ' 77 feed "[yt] Vulf" "https://www.youtube.com/feeds/videos.xml?channel_id=UCtWuB1D_E3mcyYThA9iKggQ" ""
75 feed "[yt] WFTDA: Women's Flat Track Derby Association" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC7eMWpvytqd3gYAqxTl9w7g' 78 feed "[yt] WFTDA: Women's Flat Track Derby Association" "https://www.youtube.com/feeds/videos.xml?channel_id=UC7eMWpvytqd3gYAqxTl9w7g" ""
76 feed "[yt] Zach Anner" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCPTVYxUoYWhNa8J7GzIGnyQ' 79 feed "[yt] Zach Anner" "https://www.youtube.com/feeds/videos.xml?channel_id=UCPTVYxUoYWhNa8J7GzIGnyQ" ""
77 feed "[yt] Andrew Tropin" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCuj_loxODrOPxSsXDfJmpng' 80 feed "[yt] Andrew Tropin" "https://www.youtube.com/feeds/videos.xml?channel_id=UCuj_loxODrOPxSsXDfJmpng" ""
78 feed "[yt] Animist" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCweDxCT5Fiykk3uHqPKqLWg' 81 feed "[yt] Animist" "https://www.youtube.com/feeds/videos.xml?channel_id=UCweDxCT5Fiykk3uHqPKqLWg" ""
79 feed "[yt] Chris Were Digital" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCAPR27YUyxmgwm3Wc2WSHLw' 82 feed "[yt] Chris Were Digital" "https://www.youtube.com/feeds/videos.xml?channel_id=UCAPR27YUyxmgwm3Wc2WSHLw" ""
80 feed "[yt] Esoterica" 'https://www.youtube.com/feeds/videos.xml?channel_id=UCoydhtfFSk1fZXNRnkGnneQ' 83 feed "[yt] Esoterica" "https://www.youtube.com/feeds/videos.xml?channel_id=UCoydhtfFSk1fZXNRnkGnneQ" ""
81 feed "[yt] FOSDEM" 'https://www.youtube.com/feeds/videos.xml?channel_id=UC9NuJImUbaSNKiwF2bdSfAw' 84 feed "[yt] FOSDEM" "https://www.youtube.com/feeds/videos.xml?channel_id=UC9NuJImUbaSNKiwF2bdSfAw" ""
82} 85}
83 86
84feeds_podcasts() { 87feeds_podcasts() {
85 feed "Tilde Whirl Tildeverse Podcast" 'https://tilde.town/~dozens/podcast/rss.xml' 88 feed "Tilde Whirl Tildeverse Podcast" "https://tilde.town/~dozens/podcast/rss.xml" "https://tilde.town/~dozens/podcast/" ""
86 feed "trash cat tech cat" 'https://podcast.librepunk.club/tctc/ogg.xml' 89 feed "trash cat tech cat" "https://podcast.librepunk.club/tctc/ogg.xml" "https://podcast.librepunk.club/tctc/" ""
87 feed "Hacker Public Radio" 'https://hackerpublicradio.org/hpr_ogg_rss.php' 90 feed "Hacker Public Radio" "https://hackerpublicradio.org/hpr_ogg_rss.php" "https://hackerpublicradio.org/" ""
88} 91}
89 92
90feeds_friends() { 93feeds_friends() {
91 # nihilazo 94 feed "lipu pi jan Niko" "https://tilde.town/~nihilazo/index.xml" "https://tilde.town/~nihilazo/" ""
92 feed "lipu pi jan Niko" 'https://tilde.town/~nihilazo/index.xml' 95 feed "chrismanbrown.gitlab.io (dozens)" "https://chrismanbrown.gitlab.io/rss.xml" "https://chrismanbrown.gitlab.io/" ""
93 # dozens 96 feed "Dozens and Dragons" "https://dozensanddragons.neocities.org/rss.xml" "https://dozensanddragons.neocities.org/" ""
94 feed "chrismanbrown.gitlab.io (dozens)" 'https://chrismanbrown.gitlab.io/rss.xml' 97 feed "dozens: Society For Putting Things On Top Of Other Things" "https://society.neocities.org/rss.xml" "https://society.neocities.org/" ""
95 feed "Dozens and Dragons" 'https://dozensanddragons.neocities.org/rss.xml' 98 feed "dozens: vgnfdblg" "https://supervegan.neocities.org/feed.xml" "https://supervegan.neocities.org/" ""
96 feed "dozens: Society For Putting Things On Top Of Other Things" 'https://society.neocities.org/rss.xml' 99 feed "dozens: backgammon" "http://tilde.town/~dozens/backgammon/rss.xml" "http://tilde.town/~dozens/backgammon/" ""
97 feed "dozens: vgnfdblg" 'https://supervegan.neocities.org/feed.xml' 100 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/" ""
98 feed "dozens: backgammon" 'http://tilde.town/~dozens/backgammon/rss.xml' 101 feed "dozens dreams" "https://tilde.team/~dozens/dreams/rss.xml" "https://tilde.team/~dozens/dreams/" ""
99 feed "dozens: It's Pro Toad and Superb Owl" 'https://git.tilde.town/dozens/protoadandsuperbowl/raw/branch/master/feed.xml' 102 feed "dozens: write.as" "https://write.tildeverse.org/dozens/feed/" "https://write.tildeverse.org/dozens/" ""
100 feed "dozens dreams" 'https://tilde.team/~dozens/dreams/rss.xml' 103 feed "dozens css art" "http://tilde.town/~dozens/cssart/feed.xml" "http://tilde.town/~dozens/cssart/" ""
101 feed "dozens: write.as" 'https://write.tildeverse.org/dozens/feed/' 104 feed "Benjamin Wil" "https://benjaminwil.info/feed.xml" "https://benjaminwil.info/" ""
102 feed "dozens css art" 'http://tilde.town/~dozens/cssart/feed.xml' 105 feed "(lambda (x) (create x))" "http://lambdacreate.com/static/feed.rss" "http://lambdacreate.com/" ""
103 ### 106 feed "m455.casa" "https://m455.casa/feed.rss" "https://m455.casa/" ""
104 feed "Benjamin Wil" 'https://benjaminwil.info/feed.xml' 107 feed "Oatmeal" "https://eli.li/feed.rss" "https://eli.li/" ""
105 feed "(lambda (x) (create x))" 'http://lambdacreate.com/static/feed.rss' 108 feed "RSRSSS" "https://envs.net/~lucidiot/rsrsss/feed.xml" "https://envs.net/~lucidiot/rsrsss/" ""
106 feed "m455.casa" 'https://m455.casa/feed.rss' 109 feed "Tomasino Blog" "https://blog.tomasino.org/index.xml" "https://blog.tomasino.org/" ""
107 feed "Oatmeal" 'https://eli.li/feed.rss' 110 feed "Tomasino Labs" "https://labs.tomasino.org/index.xml" "https://labs.tomasino.org/" ""
108 feed "RSRSSS" 'https://envs.net/~lucidiot/rsrsss/feed.xml' 111 feed "Will's Blog" "https://wflewis.com/feed.xml" "https://wflewis.com/" ""
109 feed "Tomasino Blog" 'https://blog.tomasino.org/index.xml' 112 feed "Rick Carlino's Blog" "https://rickcarlino.com/rss/feed.rss" "https://rickcarlino.com/rss/" ""
110 feed "Tomasino Labs" 'https://labs.tomasino.org/index.xml' 113 feed "Causal Agency" "https://text.causal.agency/feed.atom" "https://text.causal.agency/" ""
111 feed "Will's Blog" 'https://wflewis.com/feed.xml' 114 feed "Benoit Joly" "https://blog.benoitj.ca/posts/index.xml" "https://blog.benoitj.ca/posts/" ""
112 feed "Rick Carlino's Blog" 'https://rickcarlino.com/rss/feed.rss' 115 feed "p1k3::feed" "https://p1k3.com/feed" "https://p1k3.com/" ""
113 feed "Causal Agency" 'https://text.causal.agency/feed.atom' 116 feed "linkbudz" "https://linkbudz.m455.casa/feed.rss" "https://linkbudz.m455.casa/" ""
114 feed "Benoit Joly" 'https://blog.benoitj.ca/posts/index.xml' 117 feed "Alex Schroeder" "https://alexschroeder.ch/wiki/feed/full/" "https://alexschroeder.ch/" ""
115 feed "p1k3::feed" 'https://p1k3.com/feed' 118 feed "Björn Wärmedal" "https://warmedal.se/~bjorn/atom.xml" "https://warmedal.se/~bjorn/" ""
116 feed "linkbudz" 'https://linkbudz.m455.casa/feed.rss' 119 feed "a rickety bridge of impossible crossing" "https://bluelander.bearblog.dev/feed/" "https://bluelander.bearblog.dev/" ""
117 feed "Alex Schroeder" "https://alexschroeder.ch/wiki/feed/full/"
118 feed "Björn Wärmedal" "https://warmedal.se/~bjorn/atom.xml"
119 feed "a rickety bridge of impossible crossing" "https://bluelander.bearblog.dev/feed/"
120} 120}
121 121
122feeds_comics() { 122feeds_people() {
123 feed "Cat and Girl" 'https://catandgirl.com/feed/' 123 feed "ajroach" "http://ajroach42.com/feed.xml" "http://ajroach42.com/" ""
124 feed "Dinosaur Comics!" 'https://qwantz.com/rssfeed.php'
125 feed "False Knees" 'https://falseknees.tumblr.com/rss'
126 feed "Saturday Morning Breakfast Cereal" 'https://www.smbc-comics.com/comic/rss'
127 feed "xkcd" 'https://xkcd.com/atom.xml'
128} 124}
129 125
130feeds_news() { 126feeds_news() {
131 feed "Hacker News" 'https://news.ycombinator.com/rss' 127 feed "Hacker News" "https://news.ycombinator.com/rss" "https://news.ycombinator.com/" ""
132 feed "lobste.rs" 'https://lobste.rs/rss' 128 feed "lobste.rs" "https://lobste.rs/rss" "https://lobste.rs/" ""
133 feed "tilde news" 'https://tilde.news/rss' 129 feed "tilde news" "https://tilde.news/rss" "https://tilde.news/" ""
134 feed "Tildes Atom feed" 'https://tildes.net/topics.atom' 130 feed "Tildes Atom feed" "https://tildes.net/topics.atom" "https://tildes.net/" ""
135 feed "NPR" "https://feeds.npr.org/1001/rss.xml" 131 feed "NPR" "https://feeds.npr.org/1001/rss.xml" "https://text.npr.org/" ""
136} 132}
137 133
138feeds_me() { 134feeds_smolweb() {
139 : 135 feed "~town friday postcard" "https://tilde.town/~lucidiot/fridaypostcard.xml" ""
136 feed "Cosmic Voyage" "https://cosmic.voyage/rss.xml" "https://cosmic.voyage/" ""
137 feed "plan.cat" "https://plan.cat/rss" "https://plan.cat/" ""
140} 138}
141 139
142feeds_smolweb() { 140feeds_comics() {
143 feed "~town friday postcard" 'https://tilde.town/~lucidiot/fridaypostcard.xml' 141 feed "Cat and Girl" "https://catandgirl.com/feed/" "https://catandgirl.com/" ""
144 feed "Cosmic Voyage" 'https://cosmic.voyage/rss.xml' 142 feed "Dinosaur Comics!" "https://qwantz.com/rssfeed.php" "https://qwantz.com/" ""
145 feed "plan.cat" 'https://plan.cat/rss' 143 feed "False Knees" "https://falseknees.tumblr.com/rss" "https://falseknees.tumblr.com/" ""
144 feed "Saturday Morning Breakfast Cereal" "https://www.smbc-comics.com/comic/rss" "https://www.smbc-comics.com/" ""
145 feed "xkcd" "https://xkcd.com/atom.xml" "https://xkcd.com/" ""
146} 146}
147 147
148feeds_misc() { 148feeds_misc() {
149 feed "Crystalverse" 'https://crystalverse.com/feed/' 149 feed "Crystalverse" "https://crystalverse.com/feed/" "https://crystalverse.com/" ""
150 feed "Hetzner" 'https://status.hetzner.com/en.atom' 150 feed "Hetzner" "https://status.hetzner.com/en.atom" "https://status.hetzner.com/" ""
151 feed "LOW-TECH MAGAZINE" 'https://feeds2.feedburner.com/typepad/krisdedecker/lowtechmagazineenglish' 151 feed "LOW-TECH MAGAZINE" "https://feeds2.feedburner.com/typepad/krisdedecker/lowtechmagazineenglish" "https://www.lowtechmagazine.com/" ""
152}
153
154feeds_me() {
155 :
152} 156}
153 157
154### Filter ###################################################### 158### Filter ######################################################
@@ -160,11 +164,11 @@ filter() {
160 # Hacker news is stupid and doesn't include IDs, and 164 # Hacker news is stupid and doesn't include IDs, and
161 # instead includes a comments tag in its body. 165 # instead includes a comments tag in its body.
162 awk 'BEGIN {FS="\t"; OFS="\t"} { 166 awk 'BEGIN {FS="\t"; OFS="\t"} {
163 $6 = $4 167$6 = $4
164 sub(/^<a href="/,"", $6) 168sub(/^<a href="/,"", $6)
165 sub(/">.*$/,"", $6) 169sub(/">.*$/,"", $6)
166 print 170print
167 }' 171}'
168 ;; 172 ;;
169 *NPR*) 173 *NPR*)
170 sed 's@www\.npr\.org@text.npr.org@' 174 sed 's@www\.npr\.org@text.npr.org@'
@@ -186,8 +190,8 @@ filter() {
186 190
187filter_add_empties() { 191filter_add_empties() {
188 awk 'BEGIN{FS="\t";OFS=FS;} 192 awk 'BEGIN{FS="\t";OFS=FS;}
189 { $2 = $2 ? $2 : "[empty]" } 193{ $2 = $2 ? $2 : "[empty]" }
190 { print $1,$2,$3,$4,$5,$6,$7,$8,$9; } 194{ print $1,$2,$3,$4,$5,$6,$7,$8,$9; }
191' 195'
192} 196}
193 197
@@ -199,41 +203,41 @@ filter_embed_youtube() {
199filter_filter_links() { 203filter_filter_links() {
200 # shorten feedburner links and strip tracking parameters and pixels 204 # shorten feedburner links and strip tracking parameters and pixels
201 awk -F '\t' 'BEGIN { OFS = "\t"; } 205 awk -F '\t' 'BEGIN { OFS = "\t"; }
202 function filterlink(s) { 206function filterlink(s) {
203 # protocol must start with http, https or gopher. 207# protocol must start with http, https or gopher.
204 if (match(s, /^(http|https|gopher):\/\//) == 0) { 208if (match(s, /^(http|https|gopher):\/\//) == 0) {
205 return ""; 209return "";
206 } 210}
207 # shorten feedburner links. 211# shorten feedburner links.
208 if (match(s, /^(http|https):\/\/[^\/]+\/~r\/.*\/~3\/[^\/]+\//)) { 212if (match(s, /^(http|https):\/\/[^\/]+\/~r\/.*\/~3\/[^\/]+\//)) {
209 s = substr($3, RSTART, RLENGTH); 213s = substr($3, RSTART, RLENGTH);
210 } 214}
211 # strip tracking parameters 215# strip tracking parameters
212 # urchin, facebook, piwik, webtrekk and generic. 216# urchin, facebook, piwik, webtrekk and generic.
213 gsub(/\?(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "?", s); 217gsub(/\?(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "?", s);
214 gsub(/&(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "", s); 218gsub(/&(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "", s);
215 gsub(/\?&/, "?", s); 219gsub(/\?&/, "?", s);
216 gsub(/[\?&]+$/, "", s); 220gsub(/[\?&]+$/, "", s);
217 return s 221return s
218 } 222}
219 { 223{
220 $3 = filterlink($3); # link 224$3 = filterlink($3); # link
221 $8 = filterlink($8); # enclosure 225$8 = filterlink($8); # enclosure
222 # try to remove tracking pixels: <img/> tags with 1px width or height. 226# try to remove tracking pixels: <img/> tags with 1px width or height.
223 gsub("<img[^>]*(width|height)[[:space:]]*=[[:space:]]*[\"'"'"' ]?1[\"'"'"' ]?[^0-9>]+[^>]*>", "", $4); 227gsub("<img[^>]*(width|height)[[:space:]]*=[[:space:]]*[\"'"'"' ]?1[\"'"'"' ]?[^0-9>]+[^>]*>", "", $4);
224 print $0; 228print $0;
225 }' 229}'
226} 230}
227 231
228filter_html_entities() { 232filter_html_entities() {
229 # convert HTML entities into dumb counterparts 233 # convert HTML entities into dumb counterparts
230 # (and weird shit to normal shit, too) 234 # (and weird shit to normal shit, too)
231 awk '{ 235 awk '{
232 gsub(/&#34;/,"\""); gsub(/&#x22;/,"\""); 236gsub(/&#34;/,"\""); gsub(/&#x22;/,"\"");
233 gsub(/&#39;/,"'\''"); gsub(/&#x27;/,"'\''"); 237gsub(/&#39;/,"'\''"); gsub(/&#x27;/,"'\''");
234 gsub(/’/,"'\''"); 238gsub(/’/,"'\''");
235 gsub(/&amp;/,"\\&"); # MUST BE LAST!; 239gsub(/&amp;/,"\\&"); # MUST BE LAST!;
236 print 240print
237}' 241}'
238} 242}
239 243