This is an old revision of the document!
Table of Contents
Clubstatus
clubstatus | |
---|---|
Git | clubstatusd Web-Frontend maccollect |
Host | web-status.server.aachen.ccc.de |
Kontakt | clonejo |
Status | aktiv (2021-11-11) |
- Passwort: siehe internes Wiki (Benutzername ist egal)
- läuft unter https://status.aachen.ccc.de/
- die API ist unter https://status.aachen.ccc.de/api/
Presence
Die Clubinfrastruktur erkennt deine Hosts und meldet dich als anwesend
- Geräte im Club-Netz werden anhand der MAC-Adresse erkannt.
- Jetzt NEU mit Selfservice™! Navigiere mit dem zu erkennenden Gerät zu http://fensterpi:1234/, vergebe einen Nicknamen und wähle “Register device”. Innerhalb von 1-2 Minuten sollte der Nickname auftauchen.
- Der Code für dieses Feature liegt separat im Gitlab: https://git.aachen.ccc.de/clubstatus/maccollect
vom eigenen Rechner
- Die Präsenzliste wird nicht sofort aktualisiert. Solange der Server bei einem Presence-Request mit 200 antwortet, hat es geklappt :)
- Nach 10+n Minuten gibt es einen Timeout, und der Benutzername wird wieder aus der Präsenzliste entfernt. Daher muss alle 10min ein neuer Request gesendet werden.
#!/bin/python3 import json import requests import subprocess import sys import time USER = "Hans Acker" PASSWORD = "zensiert :)" def in_cccac_wlan(): output = subprocess.check_output(["nmcli", "device", "show"]) for line in output.split(b"\n"): columns = line.split(b": ") if columns[0] == b"IP4.SEARCHES[1]": if columns[1].strip() == b"space.aachen.ccc.de": print("CCCAC network detected", file=sys.stderr) return True print("CCCAC network not detected", file=sys.stderr) return False while True: if in_cccac_wlan(): print(f"Marking {USER} as currently present.", file=sys.stderr) session = requests.Session() session.auth = ("", PASSWORD) j = {"type": "presence", "user": USER} r = session.put("https://status.aachen.ccc.de/api/v0", data=json.dumps(j)) r.raise_for_status() time.sleep(600)
Alternativ:
#!/bin/sh if arping -c 1 172.20.122.1 | grep -q 00:A0:57:24:80:7D then curl "https://status.aachen.ccc.de/api/v0" -X PUT --data '{"type": "presence", "user": "Hans Acker"}' -s -u :zensiert fi
SpaceAPI
Der clubstatusd implementiert auch https://spaceapi.io/, unter https://status.aachen.ccc.de/spaceapi.
Die statischen Werte werden im Config-File vom clubstatusd eingestellt, unsere Admins können diese ändern.