Support initial de space-api

Ce commit ajoute un support rudimentaire de space-api:
(voir https://spaceapi.io/docs/)

Il consiste en deux parties:

 * un fichier spaceapi/space.json contenant les infos du lol
 * une mise à jour de status/set-status.sh qui utilise jq pour
   répercuter les changements de l'état d'ouverture du lolcal

TODO: Ajouter nos capteurs (ce n'est pas trivial, amha, il faudra revoir
l'architecture du système pour le faire correctement)
This commit is contained in:
2025-12-10 19:14:41 +00:00
parent 41af47adbd
commit 1834dec5b1
2 changed files with 37 additions and 1 deletions

30
spaceapi/space.json Normal file
View File

@@ -0,0 +1,30 @@
{
"api_compatibility": ["15"],
"space": "Laboratoire Ouvert Lyonnais",
"logo": "https://labolyon.fr/images/logo_picto.svg",
"url": "https://labolyon.fr/",
"location": {
"address": "7 Place Louis Chazette 69001 Lyon, France",
"lon": 4.8372366,
"lat": 45.7732494,
"country_code": "FR",
"timezone": "Europe/Paris"
},
"contact": {
"irc": "ircs://irc.geeknode.org:6697/labolyon",
"ml": "discussions@listes.labolyon.fr",
"mastodon": "@labolyon@nerdculture.de",
"matrix": "#general:chat.labolyon.fr"
},
"state": {
"icon": {
"closed": "https://labolyon.fr/status/status.ferm%C3%A9.png",
"open": "https://labolyon.fr/status/status.ouvert.png"
},
"open": false
},
"projects": [
"https://git.labolyon.fr/",
"https://wiki.labolyon.fr/"
]
}

View File

@@ -8,10 +8,16 @@ if [ "$#" = "0" ]; then
exit 1 exit 1
fi fi
SPACE_JSON=/var/www/html/spaceapi/space.json
if [ "$1" = "opened" ]; then if [ "$1" = "opened" ]; then
ln -sf "index.ouvert.html" "/var/www/html/status/index.html" ln -sf "index.ouvert.html" "/var/www/html/status/index.html"
jq "setpath([\"state\", \"open\"]; true) | setpath([\"state\", \"lastchange\"]; $(date +%s))" < $SPACE_JSON > $SPACE_JSON.new &&
mv -f $SPACE_JSON.new $SPACE_JSON
fi fi
if [ "$1" = "closed" ]; then if [ "$1" = "closed" ]; then
ln -sf "index.fermé.html" "/var/www/html/status/index.html" ln -sf "index.fermé.html" "/var/www/html/status/index.html"
fi jq "setpath([\"state\", \"open\"]; false) | setpath([\"state\", \"lastchange\"]; $(date +%s))" < $SPACE_JSON > $SPACE_JSON.new &&
mv -f $SPACE_JSON.new $SPACE_JSON
fi