From 6ffb80322bc69c5e1c4ff091ac91d22aace58fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Tue, 13 May 2025 19:51:43 +0200 Subject: [PATCH] radio news digest --- secrets | 2 +- systems/makanek/radio-news.nix | 65 ++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/secrets b/secrets index 04f66a7..1f7aea0 160000 --- a/secrets +++ b/secrets @@ -1 +1 @@ -Subproject commit 04f66a729699db308ff7c5291d4915a42e0c3fff +Subproject commit 1f7aea07f7e3cac6a2af69d52163fd64f6ae5467 diff --git a/systems/makanek/radio-news.nix b/systems/makanek/radio-news.nix index f1f3848..0887a55 100644 --- a/systems/makanek/radio-news.nix +++ b/systems/makanek/radio-news.nix @@ -1,4 +1,5 @@ { + config, pkgs, lib, ... @@ -8,6 +9,70 @@ in { services.nginx.virtualHosts."redaktion.r".locations."/".extraConfig = serveHtml ../../lib/radio-news.html pkgs; + age.secrets = { + gemini-api-key.file = ../../secrets/gemini-api-key.age; + }; + + systemd.services.news-digest = { + enable = true; + wantedBy = ["multi-user.target"]; + wants = ["network-online.target"]; + serviceConfig.LoadCredential = [ + "gemini-api-key:${config.age.secrets.gemini-api-key.path}" + ]; + startAt = "hourly"; + script = '' + PATH=$PATH:${lib.makeBinPath [pkgs.w3m pkgs.gnused pkgs.curl pkgs.jq]} + + export TOKEN="$(cat "$CREDENTIALS_DIRECTORY/gemini-api-key")" + + WIKI_URL="https://en.wikipedia.org/wiki/Portal:Current_events" + + EVENTS=$(w3m -dump "$WIKI_URL" | sed -n "/$(date -I)/,/$(date -I -d yesterday)/p" | head -n -1) + + SYSTEM_PROMPT=$(cat <