Das ist der Plenums-Bot des Chaos Computer Clubs Berlin. Seine Aufgabe ist es, die Plena im Club anzukündigen. Außerdem soll er das Pad mit den Plenumsnotizen ins Wiki des CCCB übertragen und neue Pads anlegen. Die Nachrichten und Ankündigungen werden über den internen Mailverteiler und über interne Matrix-Gruppen an die Mitglieder versendet.
Find a file
2025-01-15 14:50:38 +01:00
src cleanup: removed old and unused functions and variables 2025-01-15 14:50:38 +01:00
systemd added installation instructions and changed config file location to user/.config 2025-01-15 14:16:24 +01:00
util right path 2025-01-15 14:25:45 +01:00
.gitignore removed Cargo.lock and shell.nix from .gitignore 2024-12-10 21:38:35 +01:00
architecture.md new state() function 2024-12-10 21:38:35 +01:00
Cargo.lock added matrix messages to do_reminder and do_announcement and improved their html formatting 2025-01-14 17:40:04 +01:00
Cargo.toml added matrix messages to do_reminder and do_announcement and improved their html formatting 2025-01-14 17:40:04 +01:00
plenum-template.md email has in-reply-to 2024-12-10 21:26:43 +01:00
readme.md added installation instructions and changed config file location to user/.config 2025-01-15 14:16:24 +01:00
rustfmt.toml rustfmt config + format stable files 2024-12-10 21:27:38 +01:00
shell.nix removed Cargo.lock and shell.nix from .gitignore 2024-12-10 21:38:35 +01:00

Plenum-Bot

Das ist der Plenums-Bot des Chaos Computer Clubs Berlin. Seine Aufgabe ist es, die Plena im Club anzukündigen, die an jedem 2. und 4. Dienstag im Monat stattfinden. Außerdem soll er das Pad mit den Plenumsnotizen ins Wiki des CCCB übertragen und neue Pads anlegen. Die Nachrichten und Ankündigungen werden über den internen Mailverteiler und über interne Matrix-Gruppen an die Mitglieder versendet.

Funktionsweise

Die genaue Funktionsweise des Bots wird in diesem Blogeintrag näher beschrieben: https://marekkrug.de/posts/plenum-bot/

Ankündigungsskript

  • Schauen, wann ein Plenum stattfindet
  • Wenn eins in 3 Tagen stattfindet, nächstes Pad kopieren und per Mail schicken
    • Pad als .md herunterladen
    • Text dranhängen und per mail an intern@ verschicken
  • Wenn 1 Tag vor dem Plenum immer noch kein TOP im Pad ist
    • Mail mit Absage verschicken

Neues-Pad-Erstellen-Skript

  • Schauen, wann Plenum stattfindet
  • Wenn eins im nächsten Monat stattfindet, von dem noch kein Pad erstellt wurde, dann eins hinzufügen

Pad-ins-Wiki-und-versenden-Skript

  • Skript wird manuell nach dem Plenum ausgelöst
  • Plenumspad wird als .md heruntergeladen
  • Text dranhängen und per Mail an intern@ verschicken
  • Pad in MediaWiki-Format umwandeln
  • Neue Wiki-Seite erstellen und dort das umgewandelte Pad hochladen

Installation

Um den Bot z.B. auf einer neu erstellten VM zu installieren, kannst du dieser Anleitung für ubuntu-server folgen und diese Anweisungen ggf. für deine Distro anpassen:

  1. Rust installieren (rust-lang.org)

  2. Dieses Repo klonen:

git pull https://git.berlin.ccc.de/murmeldin/plenum-bot.git
  1. Die Dependencies installieren und den Bot kompilieren:
cd plenum-bot
./util/install_script_ubuntu.sh
  1. Config überprüfen und schauen, ob alles passt:
./util/change-config.sh
  1. Den Bot aktivieren:
systemctl enable plenumsbot.timer
  1. In den logs überprüfen, ob alles passt:
journalctl -u plenumsbot.service

TO-DO LIST

main.rs

  • Add logic for top_anzahl in main.rs:172

MediaWiki

  • Add "get_csrf_token-function" for getting a write token to allow write operations in the wiki (murmeldin)
  • Add "create_page" function for creating new pages in the wiki that is called on every day after plenum (murmeldin)
  • Add "modify_plenum_main_page" function for creating new Links on the Plenum main page whenever the create_page function is being called (murmeldin)
  • Date Logic for create_page-function (maybe nobody or murmeldin when date_logic branch is done and merged)

future improvements:

  • search ADJ_TIMEYWIMEY to find places that need adjusting if the bot might run late (that's an incomplete list, but tag things as you notice them…)