diff options
-rwxr-xr-x | sfeed_html.sh | 6 | ||||
-rw-r--r-- | sfeedrc | 292 |
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 | ||
10 | feeds() { | 10 | feeds() { |
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 | ||
22 | feeds_planets() { | 25 | feeds_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 | ||
29 | feeds_youtube() { | 32 | feeds_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 | ||
84 | feeds_podcasts() { | 87 | feeds_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 | ||
90 | feeds_friends() { | 93 | feeds_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 | ||
122 | feeds_comics() { | 122 | feeds_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 | ||
130 | feeds_news() { | 126 | feeds_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 | ||
138 | feeds_me() { | 134 | feeds_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 | ||
142 | feeds_smolweb() { | 140 | feeds_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 | ||
148 | feeds_misc() { | 148 | feeds_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 | |||
154 | feeds_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) | 168 | sub(/^<a href="/,"", $6) |
165 | sub(/">.*$/,"", $6) | 169 | sub(/">.*$/,"", $6) |
166 | 170 | ||
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 | ||
187 | filter_add_empties() { | 191 | filter_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() { | |||
199 | filter_filter_links() { | 203 | filter_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) { | 206 | function 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) { | 208 | if (match(s, /^(http|https|gopher):\/\//) == 0) { |
205 | return ""; | 209 | return ""; |
206 | } | 210 | } |
207 | # shorten feedburner links. | 211 | # shorten feedburner links. |
208 | if (match(s, /^(http|https):\/\/[^\/]+\/~r\/.*\/~3\/[^\/]+\//)) { | 212 | if (match(s, /^(http|https):\/\/[^\/]+\/~r\/.*\/~3\/[^\/]+\//)) { |
209 | s = substr($3, RSTART, RLENGTH); | 213 | s = 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); | 217 | gsub(/\?(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "?", s); |
214 | gsub(/&(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "", s); | 218 | gsub(/&(ad|campaign|fbclid|pk|tm|utm|wt)_([^&]+)/, "", s); |
215 | gsub(/\?&/, "?", s); | 219 | gsub(/\?&/, "?", s); |
216 | gsub(/[\?&]+$/, "", s); | 220 | gsub(/[\?&]+$/, "", s); |
217 | return s | 221 | return 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); | 227 | gsub("<img[^>]*(width|height)[[:space:]]*=[[:space:]]*[\"'"'"' ]?1[\"'"'"' ]?[^0-9>]+[^>]*>", "", $4); |
224 | print $0; | 228 | print $0; |
225 | }' | 229 | }' |
226 | } | 230 | } |
227 | 231 | ||
228 | filter_html_entities() { | 232 | filter_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(/"/,"\""); gsub(/"/,"\""); | 236 | gsub(/"/,"\""); gsub(/"/,"\""); |
233 | gsub(/'/,"'\''"); gsub(/'/,"'\''"); | 237 | gsub(/'/,"'\''"); gsub(/'/,"'\''"); |
234 | gsub(/’/,"'\''"); | 238 | gsub(/’/,"'\''"); |
235 | gsub(/&/,"\\&"); # MUST BE LAST!; | 239 | gsub(/&/,"\\&"); # MUST BE LAST!; |
236 | 240 | ||
237 | }' | 241 | }' |
238 | } | 242 | } |
239 | 243 | ||