From 57b8ad95d414f89070ddf0ec7d90aee7d19e11e2 Mon Sep 17 00:00:00 2001 From: ryzetech Date: Thu, 19 Jan 2023 10:09:15 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20mal=20ne=20vern=C3=BCnftige=20re?= =?UTF-8?q?adme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- readme.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 08a4aa6..d4c313a 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,53 @@ # SpaceCache -weil ich einfach noch besserer bin \ No newline at end of file +**Sinn:** Frage Spaces cached ab anstatt yolo-like bei jeder Request alles gleichzeitig anzuhauen. + +### Wie bedienen? + +Mach 'ne GraphQL Request. Ist eigentlich recht simpel, aber du kannst auch Graph*i*QL nutzen um dir eine Request zu erarbeiten. +Wenn du alle Spaces haben willst kannst du zum Beispiel sowas basteln. + +``` +{ spaces { + id + open +} } +``` + +Wenn du aber nur Bock auf einen Space hast, kannst du auch diesen stupiden Oneliner bringen: + +``` +{ isOpen(id: "unhb") } +``` + +#### Spaces und Config + +So sieht ein Eintrag in der `spaces.json` aus: + +```json +{ + "name": "CCC Aachen", + "id": "cccaachen", + "endpoint": "https://status.aachen.ccc.de/api/v0/status/current?public", + "path": "$.changed.status", + "expected": "public" +} +``` +`id` ist eine einfache ID des Spaces. Sollte sich natürlich nicht überschneiden. +`name` ist eine Art Friendly Name. Kann man benutzen damit es schön aussieht. +`endpoint` beschreibt die URL, die der Server anhauen soll. +`path` ist ein JSONPath zum Wert, der beschreibt, ob der Space offen ist. Das ist nur nötig, wenn die API vom SpaceAPI Standard abweicht. +`expected` kann einen Value beschreiben, wenn der Wert sich nicht durch einen Boolean darstellen lässt (also nicht `true`, `"true"`, `1`, usw.). Das sollte auch nur nötig sein, wenn die API vom SpaceAPI Srandard abweicht. + +Die `config.json` ist eigentlich selbsterklärend. + +### Warum? + +@CyReVolt:matrix.org hat eine Seite gebaut, die die Hackspaces in NRW auf ihren Status abfragt => https://metaspora.org/hackerspaces/. +Mich hat es irgendwie gewurmt, dass jeder Status direkt vom Client abgefragt wird. Daraufhin hab ich ein Backend vorgeschlagen, was die Space Server periodisch anhaut und schaut was Phase ist, die Ergebnisse in einer SQLite DB vermerkt und cached. + +CyReVolt so: +![](https://i.ryzetech.live/Screenshot_20230119_085321.png) + +ryze so: +![](https://i.ryzetech.live/accepted.jpg)