nix-files/hosts/common/feeds.nix

204 lines
7.4 KiB
Nix
Raw Normal View History

2023-01-11 13:16:26 +00:00
{ lib, sane-data, ... }:
2022-10-15 05:37:02 +00:00
let
hourly = { freq = "hourly"; };
daily = { freq = "daily"; };
weekly = { freq = "weekly"; };
infrequent = { freq = "infrequent"; };
art = { cat = "art"; };
humor = { cat = "humor"; };
pol = { cat = "pol"; }; # or maybe just "social"
rat = { cat = "rat"; };
tech = { cat = "tech"; };
uncat = { cat = "uncat"; };
2023-01-11 16:20:53 +00:00
text = { format = "text"; };
2023-01-25 23:44:06 +00:00
img = { format = "image"; };
2023-01-11 16:20:53 +00:00
2022-10-15 05:37:02 +00:00
mkRss = format: url: { inherit url format; } // uncat // infrequent;
2022-10-25 03:14:36 +00:00
# format-specific helpers
2023-01-08 05:24:56 +00:00
mkText = mkRss "text";
mkImg = mkRss "image";
mkPod = mkRss "podcast";
2022-10-15 05:37:02 +00:00
2022-10-25 03:14:36 +00:00
# host-specific helpers
2023-01-08 05:24:56 +00:00
mkSubstack = subdomain: { substack = subdomain; };
2022-10-25 03:14:36 +00:00
2023-01-11 13:16:26 +00:00
fromDb = name:
let
raw = sane-data.feeds."${name}";
in {
url = raw.url;
# not sure the exact mapping with velocity here: entries per day?
2023-01-25 23:49:52 +00:00
freq = lib.mkIf (raw.velocity or 0 != 0) (lib.mkDefault (
if raw.velocity > 2 then
2023-01-11 13:16:26 +00:00
"hourly"
2023-01-25 23:49:52 +00:00
else if raw.velocity > 0.5 then
2023-01-11 13:16:26 +00:00
"daily"
2023-01-25 23:49:52 +00:00
else if raw.velocity > 0.1 then
2023-01-11 13:16:26 +00:00
"weekly"
else
"infrequent"
2023-01-25 23:49:52 +00:00
));
} // lib.optionalAttrs (raw.is_podcast or false) {
format = "podcast";
} // lib.optionalAttrs (raw.title or "" != "") {
title = lib.mkDefault raw.title;
2023-01-11 13:16:26 +00:00
};
2022-10-15 05:37:02 +00:00
podcasts = [
2023-01-11 13:16:26 +00:00
(fromDb "lexfridman.com/podcast" // rat)
## Astral Codex Ten
2023-01-11 13:16:26 +00:00
(fromDb "sscpodcast.libsyn.com" // rat)
## Econ Talk
(fromDb "feeds.simplecast.com/wgl4xEgL" // rat)
## Cory Doctorow -- both podcast & text entries
(fromDb "craphound.com" // pol)
2023-01-25 09:46:10 +00:00
(fromDb "congressionaldish.libsyn.com" // pol)
2023-01-11 16:11:46 +00:00
## Civboot -- https://anchor.fm/civboot
(fromDb "anchor.fm/s/34c7232c/podcast/rss" // tech)
2023-01-25 10:28:15 +00:00
## Emerge: making sense of what's next -- <https://www.whatisemerging.com/emergepodcast>
(mkPod "https://anchor.fm/s/21bc734/podcast/rss" // pol // infrequent)
(fromDb "feeds.feedburner.com/80000HoursPodcast" // rat)
2023-01-11 13:16:26 +00:00
(fromDb "allinchamathjason.libsyn.com" // pol)
2023-01-11 15:32:42 +00:00
(fromDb "acquired.libsyn.com" // tech)
# The Intercept - Deconstructed; also available: <rss.acast.com/deconstructed>
(fromDb "rss.prod.firstlook.media/deconstructed/podcast.rss" // pol)
## The Daily
2022-10-15 05:37:02 +00:00
(mkPod "https://feeds.simplecast.com/54nAGcIl" // pol // daily)
# The Intercept - Intercepted; also available: <https://rss.acast.com/intercepted-with-jeremy-scahill>
(fromDb "rss.prod.firstlook.media/intercepted/podcast.rss" // pol)
(fromDb "podcast.posttv.com/itunes/post-reports.xml" // pol)
## Eric Weinstein
(fromDb "rss.art19.com/the-portal" // rat)
(fromDb "darknetdiaries.com" // tech)
## Radiolab -- also available here, but ONLY OVER HTTP: <http://feeds.wnyc.org/radiolab>
(fromDb "feeds.feedburner.com/radiolab" // pol)
2023-01-11 15:15:03 +00:00
## Sam Harris
(fromDb "wakingup.libsyn.com" // pol)
2023-01-11 15:25:32 +00:00
## 99% Invisible -- also available here: <https://feeds.simplecast.com/BqbsxVfO>
(fromDb "feeds.99percentinvisible.org/99percentinvisible" // pol)
2023-01-11 15:32:42 +00:00
(fromDb "rss.acast.com/ft-tech-tonic" // tech)
2023-01-11 15:06:18 +00:00
(fromDb "feeds.feedburner.com/dancarlin/history" // rat)
(fromDb "rss.art19.com/60-minutes" // pol)
2022-11-05 13:16:20 +00:00
## The Verge - Decoder
2023-01-11 15:51:41 +00:00
(fromDb "feeds.megaphone.fm/recodedecode" // tech)
## Matrix (chat) Live
2023-01-11 15:55:07 +00:00
(fromDb "feed.podbean.com/matrixlive/feed.xml" // tech)
2023-01-11 16:05:25 +00:00
## Michael Malice - Your Welcome -- also available here: <https://origin.podcastone.com/podcast?categoryID2=2232>
(fromDb "rss.art19.com/your-welcome" // pol)
2023-01-21 09:41:20 +00:00
(fromDb "seattlenice.buzzsprout.com" // pol)
## Sci-Fi? has Peter Watts; author of No Moods, Ads or Cutesy Fucking Icons (rifters.com)
(fromDb "talesfromthebridge.buzzsprout.com" // tech)
];
2022-10-15 05:37:02 +00:00
texts = [
# AGGREGATORS (> 1 post/day)
2023-01-22 23:48:08 +00:00
(fromDb "lwn.net" // tech)
2023-01-11 13:16:26 +00:00
(fromDb "lesswrong.com" // rat)
(fromDb "econlib.org" // pol)
# AGGREGATORS (< 1 post/day)
2023-01-26 00:04:17 +00:00
(fromDb "palladiummag.com" // uncat)
2023-01-26 00:02:55 +00:00
(fromDb "profectusmag.com" // uncat)
2023-01-26 00:01:28 +00:00
(fromDb "semiaccurate.com" // tech)
2022-10-15 05:37:02 +00:00
(mkText "https://linuxphoneapps.org/blog/atom.xml" // tech // infrequent)
2023-01-26 00:05:50 +00:00
(fromDb "spectrum.ieee.org" // tech)
2023-01-25 10:31:48 +00:00
## n.b.: quality RSS list here: <https://forum.merveilles.town/thread/57/share-your-rss-feeds%21-6/>
(mkText "https://forum.merveilles.town/rss.xml" // pol // infrequent)
## No Moods, Ads or Cutesy Fucking Icons
2023-01-26 00:07:29 +00:00
(fromDb "rifters.com/crawl" // uncat)
# DEVELOPERS
2023-01-11 13:16:26 +00:00
(fromDb "uninsane.org" // tech)
(fromDb "mg.lol" // tech)
2023-01-21 06:21:34 +00:00
(fromDb "drewdevault.com" // tech)
## Ken Shirriff
2023-01-11 13:16:26 +00:00
(fromDb "righto.com" // tech)
## shared blog by a few NixOS devs, notably onny
(fromDb "project-insanity.org" // tech)
## Vitalik Buterin
2023-01-26 00:00:16 +00:00
(fromDb "vitalik.ca" // tech)
## ian (Sanctuary)
2023-01-25 23:59:23 +00:00
(fromDb "sagacioussuricata.com" // tech)
## Bunnie Juang
2023-01-25 23:58:43 +00:00
(fromDb "bunniestudios.com" // tech)
2023-01-25 23:57:53 +00:00
(fromDb "blog.danieljanus.pl" // tech)
2023-01-25 23:57:00 +00:00
(fromDb "ianthehenry.com" // tech)
2023-01-25 23:56:22 +00:00
(fromDb "bitbashing.io" // tech)
(fromDb "idiomdrottning.org" // uncat)
(mkText "https://anish.lakhwara.com/home.html" // tech // weekly)
2023-01-25 23:52:00 +00:00
(fromDb "jefftk.com" // tech)
2023-01-25 23:51:12 +00:00
(fromDb "pomeroyb.com" // tech)
# (TECH; POL) COMMENTATORS
2023-01-25 10:36:10 +00:00
## Matt Webb -- engineering-ish, but dreamy
(fromDb "interconnected.org/home/feed" // rat)
2023-01-11 16:20:53 +00:00
(fromDb "edwardsnowden.substack.com" // pol // text)
2023-01-25 10:55:38 +00:00
## Julia Evans
(mkText "https://jvns.ca/atom.xml" // tech // weekly)
2022-10-15 05:37:02 +00:00
(mkText "http://benjaminrosshoffman.com/feed" // pol // weekly)
## Ben Thompson
2022-10-15 05:37:02 +00:00
(mkText "https://www.stratechery.com/rss" // pol // weekly)
## Balaji
2023-01-25 22:22:06 +00:00
(fromDb "balajis.com" // pol)
2023-01-25 22:48:57 +00:00
(fromDb "ben-evans.com/benedictevans" // pol)
2023-01-25 22:49:45 +00:00
(fromDb "lynalden.com" // pol)
2023-01-25 22:50:41 +00:00
(fromDb "austinvernon.site" // tech)
2022-10-25 03:14:36 +00:00
(mkSubstack "oversharing" // pol // daily)
(mkSubstack "doomberg" // tech // weekly)
## David Rosenthal
2023-01-25 23:25:11 +00:00
(fromDb "blog.dshr.org" // pol)
## Matt Levine
2022-10-15 05:37:02 +00:00
(mkText "https://www.bloomberg.com/opinion/authors/ARbTQlRLRjE/matthew-s-levine.rss" // pol // weekly)
2023-01-25 23:26:23 +00:00
(fromDb "stpeter.im/atom.xml" // pol)
2023-01-25 21:27:18 +00:00
## Peter Saint-Andre -- side project of stpeter.im
(fromDb "philosopher.coach" // rat)
# RATIONALITY/PHILOSOPHY/ETC
2022-10-25 03:14:36 +00:00
(mkSubstack "samkriss" // humor // infrequent)
(fromDb "unintendedconsequenc.es" // rat)
(fromDb "applieddivinitystudies.com" // rat)
2023-01-25 23:29:17 +00:00
(fromDb "slimemoldtimemold.com" // rat)
2023-01-25 23:29:58 +00:00
(fromDb "richardcarrier.info" // rat)
2023-01-25 23:32:11 +00:00
(fromDb "gwern.net" // rat)
## Jason Crawford
2023-01-25 23:32:53 +00:00
(fromDb "rootsofprogress.org" // rat)
## Robin Hanson
2023-01-25 23:34:30 +00:00
(fromDb "overcomingbias.com" // rat)
## Scott Alexander
2022-10-25 03:14:36 +00:00
(mkSubstack "astralcodexten" // rat // daily)
## Paul Christiano
2023-01-25 23:35:39 +00:00
(fromDb "sideways-view.com" // rat)
## Sean Carroll
(fromDb "preposterousuniverse.com" // rat)
## mostly dating topics. not advice, or humor, but looking through a social lens
2023-01-25 23:38:58 +00:00
(fromDb "putanumonit.com" // rat)
2022-10-15 05:37:02 +00:00
# CODE
# (mkText "https://github.com/Kaiteki-Fedi/Kaiteki/commits/master.atom" // tech // infrequent)
2022-10-15 05:37:02 +00:00
];
images = [
2023-01-25 23:45:49 +00:00
(fromDb "smbc-comics.com" // img // humor)
2023-01-25 23:44:06 +00:00
(fromDb "xkcd.com" // img // humor)
2023-01-25 23:45:16 +00:00
(fromDb "pbfcomics.com" // img // humor)
# (mkImg "http://dilbert.com/feed" // humor // daily)
# ART
2023-01-25 23:49:52 +00:00
(fromDb "miniature-calendar.com" // img // art // daily)
2022-10-15 05:37:02 +00:00
];
2023-01-08 05:24:56 +00:00
in
{
sane.feeds = texts ++ images ++ podcasts;
assertions = builtins.map
(p: {
assertion = p.format or "unknown" == "podcast";
message = ''${p.url} is not a podcast: ${p.format or "unknown"}'';
})
podcasts;
2022-09-23 11:14:46 +00:00
}