summaryrefslogtreecommitdiffstats
path: root/lass/2configs/services/radio/weather.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lass/2configs/services/radio/weather.nix')
-rw-r--r--lass/2configs/services/radio/weather.nix60
1 files changed, 0 insertions, 60 deletions
diff --git a/lass/2configs/services/radio/weather.nix b/lass/2configs/services/radio/weather.nix
deleted file mode 100644
index dca8a784..00000000
--- a/lass/2configs/services/radio/weather.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ config, lib, pkgs, ... }:
-let
- weather_for_ips = pkgs.writers.writePython3Bin "weather_for_ips" {
- libraries = [ pkgs.python3Packages.geoip2 ];
- flakeIgnore = [ "E501" ];
- } ./weather_for_ips.py;
-
- weather_report = pkgs.writers.writeDashBin "weather_report" ''
- set -efux
- export PATH="${lib.makeBinPath [
- pkgs.coreutils
- pkgs.curl
- pkgs.jq
- ]}"
- curl -fSsz /tmp/GeoLite2-City.mmdb -o /tmp/GeoLite2-City.mmdb http://c.r/GeoLite2-City.mmdb
- MAXMIND_GEOIP_DB="/tmp/GeoLite2-City.mmdb"; export MAXMIND_GEOIP_DB
- OPENWEATHER_API_KEY=$(cat "$CREDENTIALS_DIRECTORY/openweather_api"); export OPENWEATHER_API_KEY
- (
- curl -sS 'http://admin:hackme@localhost:8000/admin/listclients.json?mount=/radio.ogg'
- curl -sS 'http://admin:hackme@localhost:8000/admin/listclients.json?mount=/radio.mp3'
- curl -sS 'http://admin:hackme@localhost:8000/admin/listclients.json?mount=/radio.opus'
- ) | jq -rs '
- [
- .[][].source|values|to_entries[].value |
- (.listener//[]) [] |
- (.useragent | capture("client-ip=(?<ip>[a-f0-9.:]+)")).ip // .ip
- ] |
- unique[] |
- select(. != "127.0.0.1") |
- select(. != "::1")
- ' |
- ${weather_for_ips}/bin/weather_for_ips
- '';
-in {
- systemd.services.weather = {
- path = [
- weather_report
- pkgs.retry
- pkgs.jq
- pkgs.curl
- ];
- script = ''
- set -xefu
- retry -t 5 -d 10 -- weather_report |
- jq \
- --arg from "$(date -u +'%FT%TZ')" \
- --arg to "$(date -u +'%FT%TZ' -d '+1 hours')" \
- --slurp --raw-input --compact-output --ascii-output \
- '{text: ., from: $from, to: $to, priority: 100}' |
- retry -t 5 -d 10 -- curl -fSs -d@- http://radio-news.r
- '';
- startAt = "*:58:00";
- serviceConfig = {
- User = "radio-news";
- LoadCredential = [
- "openweather_api:${toString <secrets>}/openweather_api_key"
- ];
- };
- };
-}