update readme

This commit is contained in:
Yannik Enss
2022-03-11 16:00:33 +01:00
parent d3f3585d10
commit ef69fd8f60

View File

@@ -3,82 +3,51 @@ FSR Generator
Diese Sammlung an Skripten kann die meisten Dinge die man so für einen FSR braucht erzeugen.
How to configure
----------------
Konfiguration
-------------
Die Hauptkonfiguration steht in `generator.conf`. Manche Werte sind für jeden Benutzer individuell, dafür gibt es die Datei `personal.conf` auf die in `generator.conf` verwiesen wird. Hier muss auf jeden Fall `email_redeleitung` gesetzt werden, sowie `top_inbox_maildir` wenn `read_topmails.py` verwendet werden soll und `ubmails_inbox_maildir` wenn `read_ubmails.py` verwendet werden soll. Falls die Mattermostintegration genutzt werden soll muss ausserdem die `mm_url` auf einen Mattermost-Hook gesetzt werdnen.
Die Hauptkonfigurationsdatei ist `generator.conf`. In diesem Git-Repo liegt eine `generator.conf` die mit den Werten für den FSR vorausgefüllt ist, idealerweise müsst ihr daran nichts ändern. Einige Dinge sind aber von Person zu Person unterschiedlich, dafür gibt es die `personal.conf`. Hier liegt eine `personal.conf.example` im Repo, die solltet ihr nach `personal.conf` kopieren und anpassen (vmtl. nur `email_redeleitung`, für weitere Optionen siehe Fortgeschrittene Nutzung).
Bestandteile
------------
Ausserdem müsst ihr, falls ihr das Skript nicht auf einem FS-Rechner ausführt, SSH so konfiguriert haben dass bei Verbindungen nach `fsmi-login.fsmi.uni-karlsruhe.de` der richtige Nutzername verwendet wird (`.ssh/config`). Ausserdem bietet sich die Nutzung von SSH-Keys an da mehrere Verbindungen aufgebaut werden und man nicht jedes mal ein Passwort eingeben will.
`generate.py`
Ausserdem müsst ihr auf der Website ein Passwort für postgres `gesetzt <https://www.fsmi.uni-karlsruhe.de/Fachschaft/Personen/ExtraPasswoerter.html>`_ haben und die entsprechenden Rechte auf der Datenbank haben (sollten alle haben, sonst Mail an rechner@).
Die mitgelieferten Konfigurationsdateien sind darauf ausgelegt auf FS-Rechnern ohne nicht hier beschriebene Konfiguration zu funktionieren.
Nutzung
-------
Zuerst solltet ihr die TOP-Mails für den aktuellen FSR raussuchen. Diese speichert ihr als mbox in `data/fsr_tops.mbox` ab. (Wie das geht hängt vom verwendeten E-Mailprogramm ab)
Beim Generieren der Präsentation solltest du ausserdem noch die unbeantworteten Mails in `data/ubemails.txt` und die Termine in `data/termine.txt` schreiben.
Jetzt kann man, je nachdem was man machen will, `./invite` zum Einladung verschicken (Achtung: verschickt ohne weitere Nachfrage die Einladungsmail), `./presentation` zum Präsentation generieren oder `./protocol` zum Protokollvorlage generieren ausführen.
Fortgeschrittene Nutzung
------------------------
E-Mails automatisch aus Maildir lesen
+++++++++++++++++++++++++++++++++++++
TODO
Einladung nicht automatisch versenden
+++++++++++++++++++++++++++++++++++++
Wenn du in deiner `personal.conf` die Option `inviteseq` auf `invite_mbox_nosend` setzt versendet `./invite` die Einladung nicht automatisch sondern gibt sie auf dem Terminal aus, von wo du sie in dein E-M̀ailprogramm kopieren kannst.
Es gibt auch die Möglichkeit die Einladung in eine mbox-Datei zu schreiben die dein E-Mailprogramm öffen kann, dazu muss man in der `generator.conf` in der `sequencer`-Konfiguration die Option `--write-mbox` an `generate` anfügen, die Datei wird dann an den in `mbox_out` angegebenen Pfand geschrieben.
Termine aus FS-Kalender lesen
+++++++++++++++++++++++++++++
Voraussetzung: `khal <https://github.com/pimutils/khal>`_
TODO
Override-File
+++++++++++++
Das Herzstück der Skriptsammlung. Liest Daten aus `generator.conf` sowie den darin angegebenen Dateien und erzeugt den Einladungstext (für E-Mail oder Mattermost), die LaTeX-Datei für die Präsentation und eine Protokollvorlage.
Es ist möglich einzelne Optionen der `generator.conf` in einer separaten Datei zu überschreiben.
Standardmäßig wird das Ergebnis nach STDOUT geschrieben, es gibt aber auch Optionen das Ganze in eine mbox-Datei zu speichern oder direkt mit sendmail zu verschicken.
`read_db.sh`
++++++++++++
Dieses Skript verbindet sich mit der FSMI-Datenbank und liest die unveröffentlichen Protokolle aus um folgende Dinge zu extrahieren und in Dateien unter `data/` zu speichern:
- Liste der unveröffentlichten Protokolle
- Datum des letzten FSRs (für `read_topmails.py`)
- nächste Redeleitung
- nächster Protokollant
Um es zu nutzen ist es erforderlich dass du
- ein Passwort für postgres `gesetzt <https://www.fsmi.uni-karlsruhe.de/Fachschaft/Personen/ExtraPasswoerter.html>`_ hast
- entweder das Skript auf einem FS-Rechner ausführst oder eine SSH-Config für `fsmi-login.fsmi.uni-karlsruhe.de` eingerichtet hast (Benutzername und SSH-Key)
- die passenden Rechte auf die DB hast (sollten alle haben)
`read_ubmails.py`
+++++++++++++++++
Dieses Skript durchsucht ein Maildir nach der neusten E-Mail mit dem Betreff "Unbeantwortete Mails" und schreibt den Inhalt dieser in eine Datei.
`read_topmails.py`
++++++++++++++++++
Dieses Skript liest alle E-Mails aus einem Maildir deren `List-Id` auf `top.fsmi.uni-karlsruhe.de` gesetzt ist und die nach dem letzten FSR (gelesen aus `data/last_date`) gesendet wurden. Geschrieben wird als mbox in das `top_mbox_file` aus `generator.conf`.
How to use
----------
Immer
+++++
Die aktuelle TOP-Mails raussuchen und in eine mbox schreiben deren Pfad in `generator.conf` angegeben ist. Alternativ `read_topmails.py` ausführen.
Entweder die richtige Redeleitung und Protokollant raussuchen und in die `generator.conf` schreiben oder `read_db.sh` ausführen.
Einladung
+++++++++
Wenn du die E-Mail manuell versenden (und evtl. signieren) möchtest:
`./generate.py --invite --write-mbox`
Die mbox im Mailclient öffnen, die neuste Nachricht auswählen, "als neu bearbeiten", absenden.
Wenn du die E-Mail direkt versenden möchtest (und sendmail konfiguriert hast):
`./generate.py --invite --send-mail`
Präsentation
++++++++++++
Entweder manuell die letzte "Unbeantwortete Mails" E-Mail raussuchen und in die konfigurierte Datei schreiben oder `read_ubmails.py` ausführen.
`./generate.py --presentation > whatever.tex`
`pdflatex whatever.tex`
Alternativ gibt es `prepare_presentation.sh` welches die Hilfsskripte ausführt, die Präsentation erzeugt, kompiliert und einen Symlink zum PDF anlegt.
Protokoll
+++++++++
Analog Präsentation, aber mit `--protocol`
TODO