summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/2configs/news.nix62
-rw-r--r--krebs/3modules/external/default.nix25
-rw-r--r--krebs/5pkgs/simple/realwallpaper/default.nix8
-rw-r--r--krebs/nixpkgs-unstable.json8
-rw-r--r--krebs/nixpkgs.json8
-rw-r--r--makefu/2configs/ham/automation/moodlight.nix13
-rw-r--r--makefu/2configs/ham/deps/dwdwfsapi.nix38
-rw-r--r--makefu/2configs/ham/deps/pykodi.nix37
-rw-r--r--makefu/krops.nix2
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 ) {