From c8406fc2fa09e09ea4d9a010e5aed5d4f54104fd Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 29 Jun 2025 23:03:34 +0530 Subject: Add yarr (my fork) rss reader + disable send --- modules/rss/utils.nix | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 modules/rss/utils.nix (limited to 'modules/rss/utils.nix') diff --git a/modules/rss/utils.nix b/modules/rss/utils.nix new file mode 100644 index 0000000..63d09df --- /dev/null +++ b/modules/rss/utils.nix @@ -0,0 +1,39 @@ +{ pkgs, lib, ... }: +with lib; +let + outlineItem = feed: + ''''; + + outlineGroup = group: items: + '' + ${concatStringsSep "\n" (map outlineItem items)} + ''; + + toOpml = cfg: '' + + + + + ${cfg.title} + + + + ${concatStringsSep "\n" (mapAttrsToList outlineGroup cfg.groups)} + +''; + + createYarrSetupScript = { username, api_key, api_url, feeds, settings }: + let + api = method: path: args: + ''curl -i -X${method} '${api_url}${path}' --cookie 'auth=${username}:${api_key}' ${args}''; + opmlFile = pkgs.writeText "rss.opml" (toOpml feeds); + in + pkgs.writeShellScriptBin "yarr-setup-script" '' + #!/usr/bin/env sh + + ${api "POST" "/opml/import" "-F 'opml=@${opmlFile}' -F 'replace=true'"} && echo "Imported feeds"; + ${api "PUT" "/api/settings" "--data '${builtins.toJSON settings}'"} && echo "Applied settings"; + ''; +in { + inherit toOpml createYarrSetupScript; +} -- cgit v1.3.1