This repository has no description
3.4 kB
124 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 '';
44 systemPlugin = {
45 plugin = "system";
46 config = {
47 hooks.PRIVMSG = [
48 {
49 pattern = "^erinner mich$";
50 activate = "match";
51 command = {
52 filename = pkgs.writeDash "add_remind" ''
53 echo "$_from" >> /var/lib/reaktor2-mumble-reminder/users
54 sort /var/lib/reaktor2-mumble-reminder/users | uniq > /var/lib/reaktor2-mumble-reminder/users.tmp
55 mv /var/lib/reaktor2-mumble-reminder/users.tmp /var/lib/reaktor2-mumble-reminder/users
56 echo "Ich werde $_from in zukunft an das meetup erinnern"
57 '';
58 };
59 }
60 {
61 pattern = "^nerv nicht$";
62 activate = "match";
63 command = {
64 filename = pkgs.writeDash "del_remind" ''
65 ${pkgs.gnused}/bin/sed -i "/$_from/d" /var/lib/reaktor2-mumble-reminder/users
66 echo "okok, Ich werde $_from nich mehr erinnern"
67 '';
68 };
69 }
70 ];
71 };
72 };
73
74in
75{
76 imports = [
77 self.inputs.stockholm.nixosModules.reaktor2
78 ];
79 krebs.reaktor2.mumble-reminder = {
80 hostname = "irc.hackint.org";
81 nick = "lassulus__";
82 API.listen = "unix:/var/lib/reaktor2-mumble-reminder/reaktor_hackint.sock";
83 plugins = [
84 {
85 plugin = "register";
86 config = {
87 channels = [
88 "#krebs"
89 "#nixos"
90 ];
91 };
92 }
93 systemPlugin
94 ];
95 port = "6697";
96 };
97 systemd.services.mumble-reminder-nixos = {
98 description = "weekly reminder for nixos mumble";
99 startAt = "Wed *-*-* 19:00:00 Europe/Berlin";
100 serviceConfig = {
101 ExecStart = pkgs.writers.writeDash "mumble_reminder" ''
102 animals='
103 ${animals}
104 '
105 ${write_to_irc "#nixos"} "Es ist Mittwoch meine $(echo "$animals" | grep -v '^$' | shuf -n1 )!"
106 ${write_to_irc "#nixos"} "kommt auf https://jitsi.lassul.us/nixos"
107 '';
108 };
109 };
110 systemd.services.mumble-reminder-krebs = {
111 description = "weekly reminder for nixos mumble";
112 startAt = "Wed *-*-* 19:00:00 Europe/Berlin";
113 serviceConfig = {
114 ExecStart = pkgs.writers.writeDash "mumble_reminder" ''
115 animals='
116 ${animals}
117 '
118 ${write_to_irc "#krebs"} "Es ist Mittwoch meine $(echo "$animals" | grep -v '^$' | shuf -n1 )!"
119 ${write_to_irc "#krebs"} "$(cat /var/lib/reaktor2-mumble-reminder/users | ${pkgs.findutils}/bin/xargs echo) : jitsi?"
120 ${write_to_irc "#krebs"} "https://jitsi.lassul.us/nixos"
121 '';
122 };
123 };
124}