diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..123d623 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__/ +secrets.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..35f4801 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +## GLaDOS bot + +Ce bot recoit des requêtes Gitea, les parse et poste des messages en tant que GLaDOS sur la shoutbox. + +## Configuration du backend + +1. Copier le contenu du dépot dans `/home/pc/gitea-bot/` +2. Placer `gitea-bot.service` dans `/etc/systemd/system/` +3. Copier le cookie de session de GLaDOS dans `secrets.py` +4. Démarrer le service `gitea-bot` + +En soit le cookie peut être celui de n'importe quel membre ayant le droit de causer sur la shout. Par contre ça ne sera plus GLaDOS qui causera. + +## Configuration de Gitea + +Les webhooks peuvent être activés par dépôt ou globalement. +Il est aussi possible de pousser des webhooks par défaut sur les dépôts nouvellement créés. + +**Activer les hooks de manière globale va déclencher des requêtes pour tous les dépôts, y compris les privés !** +Ça veut dire qu'il peut être bien de faire du filtrage dans le script si on veut éviter les annonces de dépôts confidentiels. + +Pour activer les webhooks globalement, aller [dans le panel admin](https://gitea.planet-casio.com/admin/system-hooks). + +- Url cible : `http://localhost:5000/`, le service qui écoute les requêtes +- Méthode HTTP : `POST` +- Type de contenu : `application/json` +- Confidentiel : Un token pour authentifier Gitea le cas échéant. + +Sélectionner des éléments qui déclencheront des évènements, vérifier que le crochet est actif puis valider. + +Les derniers évènements sont affichés sous le formulaire. + +## Traiter de nouveaux évènements + +La documentation sur les events est disponible [ici](https://docs.gitea.io/en-us/webhooks/). + +Le script actuel est pas fou, n'hésitez pas à proposer des améliorations ! :) diff --git a/app.py b/app.py index 0f2005d..78748b7 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,5 @@ from flask import Flask, request +from secrets import cookie import requests as r app = Flask(__name__) @@ -38,7 +39,6 @@ def main(): if msg: msg = f"[gray][i]{msg}[/i][/gray]" r.post("https://www.planet-casio.com/Fr/shoutbox/api/post", - data={"message": msg, "channel": "dev"}, - cookies={"planete_casio_session":"SomeSessionCookieFromGlados"}) + data={"message": msg, "channel": "dev"}, cookies=cookie) return "OK" diff --git a/gitea-bot.service b/gitea-bot.service new file mode 100644 index 0000000..0561583 --- /dev/null +++ b/gitea-bot.service @@ -0,0 +1,12 @@ +[Unit] +Description=Gitea events to shoutbox +After=network.target + +[Service] +User=pc +WorkingDirectory=/home/pc/gitea-bot/ +ExecStart=flask run +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/secrets.py b/secrets.py new file mode 100644 index 0000000..e8a8d94 --- /dev/null +++ b/secrets.py @@ -0,0 +1,2 @@ +# A cookie for GLaDOS +cookie = {"planete_casio_session":"SomeSessionCookieFromGlados"}