summaryrefslogtreecommitdiffstats
path: root/lass/2configs/radio-news.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lass/2configs/radio-news.nix')
-rw-r--r--lass/2configs/radio-news.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/lass/2configs/radio-news.nix b/lass/2configs/radio-news.nix
new file mode 100644
index 000000000..a4e28c1b1
--- /dev/null
+++ b/lass/2configs/radio-news.nix
@@ -0,0 +1,52 @@
+{ config, pkgs, ... }: with pkgs.stockholm.lib;
+let
+ weather_report = pkgs.writers.writeDashBin "weather_report" ''
+ set -efu
+ ${pkgs.curl}/bin/curl -sSL https://wttr.in/''${1-}?format=j1 \
+ | ${pkgs.jq}/bin/jq -r '
+ [.nearest_area[0] | "Weather report for \(.areaName[0].value), \(.country[0].value)."]
+ + [.current_condition[0] | "Currently it is \(.weatherDesc[0].value) outside with a temperature of \(.temp_C) degrees."]
+ | join("\n")
+ '
+ '';
+ send_to_radio = pkgs.writers.writeDashBin "send_to_radio" ''
+ ${pkgs.vorbisTools}/bin/oggenc - |
+ ${pkgs.libshout}/bin/shout --format ogg --host localhost --port 1338 --mount /live
+ '';
+
+ newsshow = pkgs.writers.writeDashBin "newsshow" /* sh */ ''
+ echo "
+ hello crabpeople!
+ $(${pkgs.ddate}/bin/ddate | sed 's/YOLD/Year of Discord/')!
+ It is $(date --utc +%H) o clock UTC.
+ $(weather_report berlin)
+ $(weather_report 70173)
+ $(weather_report munich)
+ "
+ '';
+in
+{
+ systemd.services.newsshow = {
+ path = [
+ newsshow
+ send_to_radio
+ weather_report
+ pkgs.curl
+ pkgs.retry
+ ];
+ script = ''
+ set -efu
+ retry -t 5 -d 10 -- newsshow |
+ retry -t 5 -d 10 -- curl -SsG http://tts.r/api/tts --data-urlencode 'text@-' |
+ retry -t 5 -d 10 -- send_to_radio
+ '';
+ startAt = "*:00:00";
+ };
+
+ ## debug
+ # environment.systemPackages = [
+ # weather_report
+ # send_to_radio
+ # newsshow
+ # ];
+}