diff options
-rw-r--r-- | krebs/2configs/news.nix | 62 | ||||
-rw-r--r-- | krebs/3modules/external/default.nix | 25 | ||||
-rw-r--r-- | krebs/5pkgs/simple/realwallpaper/default.nix | 8 | ||||
-rw-r--r-- | krebs/nixpkgs-unstable.json | 8 | ||||
-rw-r--r-- | krebs/nixpkgs.json | 8 | ||||
-rw-r--r-- | makefu/2configs/ham/automation/moodlight.nix | 13 | ||||
-rw-r--r-- | makefu/2configs/ham/deps/dwdwfsapi.nix | 38 | ||||
-rw-r--r-- | makefu/2configs/ham/deps/pykodi.nix | 37 | ||||
-rw-r--r-- | makefu/krops.nix | 2 |
9 files changed, 182 insertions, 19 deletions
diff --git a/krebs/2configs/news.nix b/krebs/2configs/news.nix index ce4e83408..410beb041 100644 --- a/krebs/2configs/news.nix +++ b/krebs/2configs/news.nix @@ -19,12 +19,46 @@ root /var/lib/brockman; index brockman.json; ''; + extraConfig = '' + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; + ''; }; }; systemd.tmpfiles.rules = [ "d /var/lib/brockman 1750 brockman nginx -" ]; + systemd.services.brockman-graph = { + path = [ + pkgs.graphviz + pkgs.jq + pkgs.inotifyTools + ]; + serviceConfig = { + ExecStart = pkgs.writers.writeDash "brockman-graph" '' + + while :; do + graphviz="$(cat /var/lib/brockman/brockman.json \ + | jq -r ' + .bots | + to_entries | + map(select(.value.extraChannels|length > 1 )) | + .[] | + "\"\(.key)\" -> {\(.value.extraChannels|map("\""+.+"\"")|join(" "))}" + ')" + echo "digraph news { $graphviz }" | circo -Tsvg > /var/lib/brockman/graph.svg + + inotifywait -q -e MODIFY /var/lib/brockman/brockman.json + done + ''; + User = "brockman"; + }; + wantedBy = [ "multi-user.target" ]; + }; + + systemd.services.brockman.serviceConfig.LimitNOFILE = 16384; + systemd.services.brockman.environment.BROCKMAN_LOG_LEVEL = "DEBUG"; krebs.brockman = { enable = true; config = { @@ -53,6 +87,7 @@ "#all" "#aluhut" "#news" + "#lasstube" ]; }; } @@ -87,13 +122,36 @@ add-youtube.filename = pkgs.writeDash "add-youtube" '' set -euf if [ "$#" -ne 1 ]; then - echo 'usage: ${name}: add-youtube $nick $channelid' + echo 'usage: ${name}: add-youtube $nick $channel/video/stream/id' exit 1 fi youtube_nick=$(echo "$1" | ${pkgs.jq}/bin/jq -Rr '[match("(\\S+)\\s*";"g").captures[].string][0]') - youtube_id=$(echo "$1" | ${pkgs.jq}/bin/jq -Rr '[match("(\\S+)\\s*";"g").captures[].string][1]') + youtube_url=$(echo "$1" | ${pkgs.jq}/bin/jq -Rr '[match("(\\S+)\\s*";"g").captures[].string][1]') + if [ ''${#youtube_url} -eq 24 ]; then + youtube_id=$youtube_url + else + youtube_id=$(${pkgs.youtube-dl}/bin/youtube-dl --max-downloads 1 -j "$youtube_url" | ${pkgs.jq}/bin/jq -r '.channel_id') + fi echo "brockman: add yt_$youtube_nick http://rss.r/?action=display&bridge=Youtube&context=By+channel+id&c=$youtube_id&duration_min=&duration_max=&format=Mrss" ''; + add-twitch.filename = pkgs.writeDash "add-twitch" '' + set -euf + if [ "$#" -ne 1 ]; then + echo 'usage: ${name}: add-twitch $handle' + exit 1 + fi + twitch_nick=$(echo "$1" | ${pkgs.jq}/bin/jq -Rr '[match("(\\S+)\\s*";"g").captures[].string][0]') + echo "brockman: add twitch_$twitch_nick http://rss.r/?action=display&bridge=Twitch&channel=$twitch_nick&type=all&format=Atom" + ''; + add-twitter.filename = pkgs.writeDash "add-twitter" '' + set -euf + if [ "$#" -ne 1 ]; then + echo 'usage: ${name}: add-twitter $handle' + exit 1 + fi + twitter_nick=$(echo "$1" | ${pkgs.jq}/bin/jq -Rr '[match("(\\S+)\\s*";"g").captures[].string][0]') + echo "brockman: add tw_$twitter_nick http://rss.r/?action=display&bridge=Twitch&channel=$twitter_nick&type=all&format=Atom" + ''; search.filename = pkgs.writeDash "search" '' set -euf if [ "$#" -ne 1 ]; then diff --git a/krebs/3modules/external/default.nix b/krebs/3modules/external/default.nix index efe3ace0f..c8e360a1e 100644 --- a/krebs/3modules/external/default.nix +++ b/krebs/3modules/external/default.nix @@ -603,6 +603,30 @@ in { }; }; }; + hydrogen = { + owner = config.krebs.users.sandro; + nets = { + retiolum = { + ip4.addr = "10.243.54.54"; + aliases = [ "hydrogen.r" ]; + tinc.pubkey = '' + -----BEGIN RSA PUBLIC KEY----- + MIICCgKCAgEA6bnwRKS+oWNc+ExOnJdqGHR1bnCEE9zkCqyONK3+xLg8QQIz6SvZ + Nt5cO9kdZw9rA+4Dshg5m0RSnaP2TVtiDxcyv3zAW4TSOTGaBRp9WZmwhcKyxiON + hvTBirsC1Domorew6++qHoZxtmHMKaF/uPoFLBqSvw3RHVoGzEAhGW9/LqZVa9k2 + D8dDRg7jTqH2oiIHct33Up5+zeFbmCo5xyDzl+pcwHxldi8sAupvpHx4KxXH1zMX + YQATS2Rp8b52bGEQ52UKAbSOpJqyt9/o5vb+z2JZ52N1dDrphWHGfIcJa8DVt2VO + n/V0kWuUhDh3Wwt7aIFcY0bUq4OurcVQQ5eMgwGbOEthdjLf1ou2gUJhf0zAeVQp + IiaqeHTNn1+mtxBjl4+v+b0H/lhZPSgO74Jo28fAse+/itjM3kgkIKV0ldD5tWpv + MHaKMB5Ui6swHZDV6nUxf5vlKPAM71/14cy1e/0ANFo5JvE66jWn7m5wn60HYwpB + XnTOgIxue2rJ4F+Xtm8CTgS5TcV1AKR0cnmlU7WfVOVJHD2/4QTRYYTCR53/RoVq + 1T6DILDF71H92PNylujKSPA0CKI160xJ61Xy/T6MYl5u0+RblAgYr77o5HJwmXCe + jFrCu3SKUIlJWYHWE8yNoR+VVYeXakbDFYE3KpVyBDG+ljUbia+Oel8CAwEAAQ== + -----END RSA PUBLIC KEY----- + ''; + }; + }; + }; }; users = { @@ -633,6 +657,7 @@ in { mail = "joerg@thalheim.io"; pubkey = ssh-for "mic92"; }; + sandro = {}; shannan = { mail = "shannan@lekwati.com"; pubkey = ssh-for "shannan"; diff --git a/krebs/5pkgs/simple/realwallpaper/default.nix b/krebs/5pkgs/simple/realwallpaper/default.nix index e55454a08..04a2a6718 100644 --- a/krebs/5pkgs/simple/realwallpaper/default.nix +++ b/krebs/5pkgs/simple/realwallpaper/default.nix @@ -100,11 +100,11 @@ pkgs.writers.writeDashBin "generate-wallpaper" '' fetch_older_min 720 ice-raw.jpg $(get_neo_url \ 'https://neo.sci.gsfc.nasa.gov/view.php?datasetId=NISE_D') & - fetch_older_days 3 snow-raw.jpg $(get_neo_url \ + fetch_older_days 1 snow-raw.jpg $(get_neo_url \ 'https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD10C1_E_SNOW') & - fetch_older_days 7 chlora-raw.jpg $(get_neo_url \ + fetch_older_days 1 chlora-raw.jpg $(get_neo_url \ 'https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MY1DMM_CHLORA') & - fetch_older_days 7 fire-raw.jpg $(get_neo_url \ + fetch_older_days 1 fire-raw.jpg $(get_neo_url \ 'https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD14A1_E_FIRE') & # regular fetches @@ -239,7 +239,7 @@ pkgs.writers.writeDashBin "generate-wallpaper" '' ''} if [ -s marker.json ]; then - jq -r 'to_entries[] | @json "\(.value.latitude) \(.value.longitude) image=krebs.png"' marker.json >> marker_file + jq -r 'to_entries[] | select(.value.latitude != null) | @json "\(.value.latitude) \(.value.longitude) image=krebs.png"' marker.json >> marker_file fi xplanet --num_times 1 --geometry $xplanet_out_size \ diff --git a/krebs/nixpkgs-unstable.json b/krebs/nixpkgs-unstable.json index 57d30799b..ff0793e19 100644 --- a/krebs/nixpkgs-unstable.json +++ b/krebs/nixpkgs-unstable.json @@ -1,9 +1,9 @@ { "url": "https://github.com/NixOS/nixpkgs", - "rev": "8c8731330b53ba0061686f36f10f101e662a4717", - "date": "2021-02-08T20:46:59+01:00", - "path": "/nix/store/agilvsqqdsqx36wf4zkq5gnhnab47qpd-nixpkgs", - "sha256": "0ak4d254myq6cl3d7jkq6n0apxabvwjz62zdw9habnrqg8asl8gk", + "rev": "102eb68ceecbbd32ab1906a53ef5a7269dc9794a", + "date": "2021-03-06T01:10:13+01:00", + "path": "/nix/store/q2ig31a84f7nkc56hqrl14lj32caic3v-nixpkgs", + "sha256": "1mlrd419vaz9vw5k0lymb8nasxziqv0yd4f2v7p14mlxcin3g7c3", "fetchSubmodules": false, "deepClone": false, "leaveDotGit": false diff --git a/krebs/nixpkgs.json b/krebs/nixpkgs.json index 8670999e0..cdfddf31e 100644 --- a/krebs/nixpkgs.json +++ b/krebs/nixpkgs.json @@ -1,9 +1,9 @@ { "url": "https://github.com/NixOS/nixpkgs", - "rev": "2394284537b89471c87065b040d3dedd8b5907fe", - "date": "2021-02-10T23:24:22+01:00", - "path": "/nix/store/rqgraycidchn5wc5mki5sqj8bl5cpx78-nixpkgs", - "sha256": "1j7vp735is5d32mbrgavpxi3fbnsm6d99a01ap8gn30n5ysd14sl", + "rev": "37b47da04ca50d17934881192e65ad2df83704b5", + "date": "2021-03-06T12:01:46+01:00", + "path": "/nix/store/grbdwi9ypcdwkwa41jy0wdvyl7gpp339-nixpkgs", + "sha256": "0was72mxc0i1zlpn18svmdkwpxbfjmb3m60fnv041zjyrlkmy91s", "fetchSubmodules": false, "deepClone": false, "leaveDotGit": false diff --git a/makefu/2configs/ham/automation/moodlight.nix b/makefu/2configs/ham/automation/moodlight.nix index df229f16b..d0e336851 100644 --- a/makefu/2configs/ham/automation/moodlight.nix +++ b/makefu/2configs/ham/automation/moodlight.nix @@ -5,14 +5,19 @@ let arbeitszimmer = "light.box_led_status"; final_off = "01:00"; - turn_on = entity_id: at: + turn_on = entity_id: at: extra: { alias = "Turn on ${entity_id} at ${at}"; trigger = [ { platform = "time"; inherit at; } ]; action = [ - { service = "light.turn_on"; inherit entity_id; } + ({ service = "light.turn_on"; + data = { + inherit entity_id; + + } // extra; + }) ]; }; in @@ -21,8 +26,8 @@ in { automation = [ - (turn_on wohnzimmer "17:30") - (turn_on arbeitszimmer "9:00") + # (turn_on wohnzimmer "17:30") + (turn_on arbeitszimmer "9:00" { effect = "Slow Random Twinkle";}) { alias = "Always turn off the lights at ${final_off}"; trigger = [ diff --git a/makefu/2configs/ham/deps/dwdwfsapi.nix b/makefu/2configs/ham/deps/dwdwfsapi.nix new file mode 100644 index 000000000..d59dfa9e8 --- /dev/null +++ b/makefu/2configs/ham/deps/dwdwfsapi.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchPypi +, requests +, ciso8601 +, urllib3 +}: + +buildPythonPackage rec { + pname = "dwdwfsapi"; + version = "1.0.3"; + + disabled = false; # requires python version >=3.6 + + src = fetchPypi { + inherit pname version; + sha256 = "3d7d5bd66b1a647f07295068dc653b4ceafc2e8ec834b8e32419031c7b3a9b39"; + }; + + # # Package conditions to handle + # # might have to sed setup.py and egg.info in patchPhase + # # sed -i "s/<package>.../<package>/" + # requests>=2.23.0,<3 + # ciso8601>=2.1.3,<3 + # urllib3>=1.25.8,<2 + propagatedBuildInputs = [ + requests + ciso8601 + urllib3 + ]; + + meta = with lib; { + description = "Python client to retrieve data provided by DWD via their geoserver WFS API"; + homepage = https://github.com/stephan192/dwdwfsapi; + license = licenses.mit; + # maintainers = [ maintainers. ]; + }; +} diff --git a/makefu/2configs/ham/deps/pykodi.nix b/makefu/2configs/ham/deps/pykodi.nix new file mode 100644 index 000000000..85a541f8a --- /dev/null +++ b/makefu/2configs/ham/deps/pykodi.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchPypi +, jsonrpc-async +, jsonrpc-websocket +, aiohttp +}: + +buildPythonPackage rec { + pname = "pykodi"; + version = "0.2.2"; + + disabled = false; # requires python version >=3.7.0 + + src = fetchPypi { + inherit pname version; + sha256 = "43e7036a00a76f65c34dc5e7f1065a3ef071eea7619c2e6228e521b638e640bc"; + }; + + # # Package conditions to handle + # # might have to sed setup.py and egg.info in patchPhase + # # sed -i "s/<package>.../<package>/" + # jsonrpc-async>=1.1.0 + # jsonrpc-websocket>=1.2.1 + propagatedBuildInputs = [ + jsonrpc-async + jsonrpc-websocket + aiohttp + ]; + + meta = with lib; { + description = "An async python interface for Kodi over JSON-RPC"; + homepage = https://github.com/OnFreund/PyKodi; + license = licenses.mit; + # maintainers = [ maintainers. ]; + }; +} diff --git a/makefu/krops.nix b/makefu/krops.nix index 2fa050e95..a03fea029 100644 --- a/makefu/krops.nix +++ b/makefu/krops.nix @@ -71,7 +71,7 @@ (lib.mkIf ( host-src.hw ) { nixos-hardware.git = { url = https://github.com/nixos/nixos-hardware.git; - ref = "30fdd53"; + ref = "a0d8383"; }; }) (lib.mkIf ( host-src.home-manager ) { |