This repository has no description
3.4 kB
127 lines
1{
2 self,
3 config,
4 lib,
5 pkgs,
6 ...
7}:
8let
9 write_to_irc =
10 chan:
11 pkgs.writeDash "write_to_irc" ''
12 ${pkgs.curl}/bin/curl -fsSv --unix-socket '${lib.removePrefix "unix:" config.krebs.reaktor2.mumble-reminder.API.listen}' http://z/ \
13 -H content-type:application/json \
14 -d "$(${pkgs.jq}/bin/jq -n \
15 --arg text "$1" '{
16 command:"PRIVMSG",
17 params:["${chan}",$text]
18 }'
19 )"
20 '';
21 animals = ''
22 Erdferkel
23 Paviane
24 Raupen
25 Australischen Wildhunde
26 Emus
27 Flundern
28 Gorillas
29 Kolibris
30 Schwarzfersenantilopen
31 Quallen
32 Kois
33 Faulaffen
34 Schraubenziegen
35 Nachtigallen
36 Okapis
37 Stachelschweine
38 Kurzschwanzkängurus
39 Waschbären
40 Kurzschwanzwiesel
41 Buschochsen
42 Kurzschwanzaffen
43 Vicuñas
44 Goldwandsänger
45 Nachtechsen
46 '';
47 systemPlugin = {
48 plugin = "system";
49 config = {
50 hooks.PRIVMSG = [
51 {
52 pattern = "^erinner mich$";
53 activate = "match";
54 command = {
55 filename = pkgs.writeDash "add_remind" ''
56 echo "$_from" >> /var/lib/reaktor2-mumble-reminder/users
57 sort /var/lib/reaktor2-mumble-reminder/users | uniq > /var/lib/reaktor2-mumble-reminder/users.tmp
58 mv /var/lib/reaktor2-mumble-reminder/users.tmp /var/lib/reaktor2-mumble-reminder/users
59 echo "Ich werde $_from in zukunft an das meetup erinnern"
60 '';
61 };
62 }
63 {
64 pattern = "^nerv nicht$";
65 activate = "match";
66 command = {
67 filename = pkgs.writeDash "del_remind" ''
68 ${pkgs.gnused}/bin/sed -i "/$_from/d" /var/lib/reaktor2-mumble-reminder/users
69 echo "okok, Ich werde $_from nich mehr erinnern"
70 '';
71 };
72 }
73 ];
74 };
75 };
76
77in
78{
79 imports = [
80 self.inputs.stockholm.nixosModules.reaktor2
81 ];
82 krebs.reaktor2.mumble-reminder = {
83 hostname = "irc.hackint.org";
84 nick = "lassulus__";
85 API.listen = "unix:/var/lib/reaktor2-mumble-reminder/reaktor_hackint.sock";
86 plugins = [
87 {
88 plugin = "register";
89 config = {
90 channels = [
91 "#krebs"
92 "#nixos"
93 ];
94 };
95 }
96 systemPlugin
97 ];
98 port = "6697";
99 };
100 systemd.services.mumble-reminder-nixos = {
101 description = "weekly reminder for nixos mumble";
102 startAt = "Wed *-*-* 19:00:00 Europe/Berlin";
103 serviceConfig = {
104 ExecStart = pkgs.writers.writeDash "mumble_reminder" ''
105 animals='
106 ${animals}
107 '
108 ${write_to_irc "#nixos"} "Es ist Mittwoch meine $(echo "$animals" | grep -v '^$' | shuf -n1 )!"
109 ${write_to_irc "#nixos"} "kommt auf https://jitsi.lassul.us/nixos"
110 '';
111 };
112 };
113 systemd.services.mumble-reminder-krebs = {
114 description = "weekly reminder for nixos mumble";
115 startAt = "Wed *-*-* 19:00:00 Europe/Berlin";
116 serviceConfig = {
117 ExecStart = pkgs.writers.writeDash "mumble_reminder" ''
118 animals='
119 ${animals}
120 '
121 ${write_to_irc "#krebs"} "Es ist Mittwoch meine $(echo "$animals" | grep -v '^$' | shuf -n1 )!"
122 ${write_to_irc "#krebs"} "$(cat /var/lib/reaktor2-mumble-reminder/users | ${pkgs.findutils}/bin/xargs echo) : jitsi?"
123 ${write_to_irc "#krebs"} "https://jitsi.lassul.us/nixos"
124 '';
125 };
126 };
127}