Updated repo

This commit is contained in:
Darks 2020-09-24 22:11:51 +02:00
parent 11f0cdac4b
commit bc2e9714b3
Signed by: Darks
GPG Key ID: 7515644268BE1433
5 changed files with 55 additions and 2 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
__pycache__/
secrets.py

37
README.md Normal file
View File

@ -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! :)

4
app.py
View File

@ -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"

12
gitea-bot.service Normal file
View File

@ -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

2
secrets.py Normal file
View File

@ -0,0 +1,2 @@
# A cookie for GLaDOS
cookie = {"planete_casio_session":"SomeSessionCookieFromGlados"}