diff --git a/configs/packages.nix b/configs/packages.nix index 7a3a6b0..420d0ac 100644 --- a/configs/packages.nix +++ b/configs/packages.nix @@ -180,6 +180,9 @@ in { (niveumPackages.mpv-radio.override { di-fm-key-file = config.age.secrets.di-fm-key.path; }) + (niveumPackages.mpv-tuner.override { + di-fm-key-file = config.age.secrets.di-fm-key.path; + }) # kmein.slide termdown niveumPackages.image-convert-tolino diff --git a/flake.nix b/flake.nix index 07015e0..6589ab2 100644 --- a/flake.nix +++ b/flake.nix @@ -300,6 +300,7 @@ menu-calc = pkgs.callPackage packages/menu-calc.nix {}; meteo = pkgs.callPackage packages/meteo.nix {}; mpv-radio = pkgs.callPackage packages/mpv-radio.nix {di-fm-key-file = "/dev/null";}; + mpv-tuner = pkgs.callPackage packages/mpv-tuner.nix {di-fm-key-file = "/dev/null";}; mpv-tv = pkgs.callPackage packages/mpv-tv.nix {}; mpv-visualizer = pkgs.callPackage packages/mpv-visualizer.nix {}; new-mac = pkgs.callPackage packages/new-mac.nix {}; diff --git a/lib/streams.nix b/lib/streams.nix index a275223..5be65cf 100644 --- a/lib/streams.nix +++ b/lib/streams.nix @@ -1961,6 +1961,11 @@ in station = "The Quran Radio"; tags = [tags.arabic tags.text tags.holy]; } + { + stream = "http://www.radioeins.de/livemp3"; + station = "radioeins | RBB"; + tags = [tags.top40 tags.pop]; + } ] ++ map (name: { stream = "https://${name}.stream.publicradio.org/${name}.aac"; @@ -1980,21 +1985,25 @@ in ++ map (name: { stream = rockradio name; station = rockradio-name name; + tags = [tags.rock]; }) rockradio-channels ++ map (name: { stream = jazzradio name; station = jazzradio-name name; + tags = [tags.jazz]; }) jazzradio-channels ++ map (name: { stream = zenradio name; station = zenradio-name name; + tags = [tags.chill]; }) zenradio-channels ++ map (name: { stream = classicalradio name; station = classicalradio-name name; + tags = [tags.classical]; }) classicalradio-channels /* diff --git a/modules/panoptikon.nix b/modules/panoptikon.nix index 1befa39..5c5ed5d 100644 --- a/modules/panoptikon.nix +++ b/modules/panoptikon.nix @@ -113,16 +113,17 @@ set -efu ${watcherOptions.script} > ${watcherName} - ${pkgs.git}/bin/git add ${watcherName} - ${pkgs.git}/bin/git commit --message "${watcherName} / $(${pkgs.coreutils}/bin/date -Is)" || : - if [ -n "$(${pkgs.git}/bin/git diff HEAD^ -- ${watcherName})" ]; then + if [ -n "$(${pkgs.git}/bin/git diff -- ${watcherName})" ]; then ${lib.strings.concatMapStringsSep "\n" (reporter: '' ${pkgs.git}/bin/git diff HEAD^ -- ${watcherName} | ${reporter} '') watcherOptions.reporters} : fi + + ${pkgs.git}/bin/git add ${watcherName} + ${pkgs.git}/bin/git commit --message "${watcherName} / $(${pkgs.coreutils}/bin/date -Is)" || : ''; }) cfg.watchers; diff --git a/packages/mpv-radio.nix b/packages/mpv-radio.nix index c01acf8..dd1993f 100644 --- a/packages/mpv-radio.nix +++ b/packages/mpv-radio.nix @@ -20,7 +20,9 @@ streams); in writers.writeDashBin "mpv-radio" '' - export DI_FM_KEY=$(cat "${di-fm-key-file}") + if [ -z ''${DI_FM_KEY} ]; then + DI_FM_KEY=$(cat "${di-fm-key-file}") + fi exec ${mpv}/bin/mpv --force-window=yes "$( ${dmenu}/bin/dmenu -i -l 5 < ${streams-tsv} \ | ${coreutils}/bin/cut -f3 \ diff --git a/packages/mpv-tuner.nix b/packages/mpv-tuner.nix new file mode 100644 index 0000000..5d45023 --- /dev/null +++ b/packages/mpv-tuner.nix @@ -0,0 +1,22 @@ +{ + writeText, + lib, + writers, + mpv, + gnused, + di-fm-key-file, + findutils, +}: let + streams = import ../lib/streams.nix { + di-fm-key = "%DI_FM_KEY%"; + }; + streams-list = writeText "streams.txt" (lib.concatMapStringsSep "\n" (station: station.stream) streams); +in + writers.writeDashBin "mpv-tuner" '' + if [ -z ''${DI_FM_KEY} ]; then + DI_FM_KEY=$(cat "${di-fm-key-file}") + fi + shuf ${streams-list} \ + | ${gnused}/bin/sed s/%DI_FM_KEY%/"$DI_FM_KEY"/ \ + | ${findutils}/bin/xargs ${mpv}/bin/mpv + ''