Compare commits

..

1 Commits

Author SHA1 Message Date
4050908e8c 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)
2025-12-10 19:30:59 +00:00
4 changed files with 37 additions and 78 deletions

View File

@@ -44,7 +44,6 @@
<a property="url" href="https://listes.infini.fr/listes.labolyon.fr/subscribe/discussions">Liste de diffusion</a>
<a property="url" href="https://nerdculture.de/@labolyon">Fédiverse</a>
<a property="url" href="https://matrix.to/#/#general:chat.labolyon.fr">Salon Matrix</a>
<a property="url" href="/presentation.html">Présentation</a>
</nav>
</header>

View File

@@ -1,76 +0,0 @@
<!DOCTYPE HTML>
<html lang="fr" vocab="http://schema.org/">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="/images/favicon.svg" type="image/svg+xml">
<link rel="shortcut icon" href="/images/favicon.png" type="image/png">
<link rel="me" href="https://nerdculture.de/@labolyon" />
<title>Présentation - Laboratoire Ouvert Lyonnais</title>
<link rel="stylesheet" href="css/normalize.css" type="text/css" media="screen">
<style>
.fullscreen-background {
display: none;
}
</style>
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
</head>
<body typeof="Organization Place" resource="https://labolyon.fr/">
<div class="fullscreen-background" aria-hidden="true">
<video muted loop poster="images/world_network.jpg" id="background-video">
<source src="videos/background.webm" type="video/webm" />
<source src="videos/background.mp4" type="video/mp4">
</video>
<img src="/images/world_network.muted.jpg" id="background-poster"/>
</div>
<header id="main-header">
<img property="logo" class="logo" src="images/logo_picto.svg" alt="Logo du laboratoire ouvert lyonnais : un rectangle entourant 3 lignes de points et trais des lettres L O L en morse." />
<h1 property="name">Laboratoire <br/>Ouvert <br/>Lyonnais</h1>
<nav id="main-nav">
<link property="url" href="https://labolyon.fr/">
<a property="url" href="https://git.labolyon.fr/explore/repos">Dépots Git</a>
<a property="url" href="https://wiki.labolyon.fr/">Wiki</a>
<a property="url" href="https://listes.infini.fr/listes.labolyon.fr/subscribe/discussions">Liste de diffusion</a>
<a property="url" href="https://nerdculture.de/@labolyon">Fédiverse</a>
<a property="url" href="https://matrix.to/#/#general:chat.labolyon.fr">Salon Matrix</a>
<a property="url" href="/presentation.html">Présentation</a>
</nav>
</header>
<main id="homepage">
<section id="description">
<div property="abstract">
<p>Le Laboratoire Ouvert Lyonnais (L.O.L) est une association de loi 1901 destinéee à être un lieu d'échanges et d'expérimentations pour toute personne passionnée de technologie et/ou d'informatique.
Nous sommes centrés sur la réutilisation, le recyclage et le bidouillage de matériels dans le but de comprendre leur fonctionnement et de les utiliser dans un but bienveillant et éducatif.</p>
<p>Nous aimons expérimenter et trouver de nouveaux usages à des objets. Nous sommes une communauté tournée vers le partage et l'apprentissage et nous hébergeons également nos propres services, par nos propres moyens.
Nous recyclons également du matériel informatique, afin d'aider les personnes à obtenir des ressources pour appendre et de continuer à fournir nos services de manière bénévole. Toute personne peut emprunter ou récupérer du matériel, quelle que soit sa situation.</p>
<p>Nous sommes installé dans un local au 7 place Louis Chazette 69001 Lyon. Nous travaillons en collaboration avec l'assocation LALIS, dont nous aidons à héberger le site web et divers services internes.</p>
<p>Numéro RNA : W691079861</p>
</div>
</section>
<div class="toolbar">
<button id="play-background" hidden>
<img src="/images/play.svg" alt="Play" class="play" title="Play" />
<img src="/images/pause.svg" alt="Pause" class="pause" hidden title="Pause" />
</button>
</div>
</main>
<script src="js/background.js"></script>
</body>
</html>

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": {
"open": "https://labolyon.fr/status/status.ferm%C3%A9.png",
"closed": "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
fi
SPACE_JSON=/var/www/html/spaceapi/space.json
if [ "$1" = "opened" ]; then
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
if [ "$1" = "closed" ]; then
ln -sf "index.fermé.html" "/var/www/html/status/index.html"
jq "setpath([\"state\", \"open\"]; false) | setpath([\"state\", \"lastchange\"]; $(date +%s))" < $SPACE_JSON > $SPACE_JSON.new &&
mv -f $SPACE_JSON.new $SPACE_JSON
fi