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. 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. TODO
`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`