Inhaltsverzeichnis

Dynamische Benutzerkarte unserer Gäste des Mumble-Servers (Murmur)

Beschreibung

Es werden Daten für das DokuWiki-Plugin OpenLayersMap generiert, um anzeigen zu können, wer gerade online/offline ist und wo er herkommt :)

Creates the Data for a dynamic map of online/offline users of a Mumble-Server (Murmur) using the DokuWiki-Plugin OpenLayersMap (https://www.dokuwiki.org/plugin:openlayersmap).

Features

Der Code

Die beiden Scripte (dynmap.py und dynmap-callback.py) befinden sich auf github:
https://github.com/Natenom/murmur-dynmap
Auch eine Testdatenbank ist dort zu finden.

Mir ist klar, dass die Lösung zum Abgleich zwischen Online-Benutzern und eingetragenen Benutzern suboptimal ist; leider kenne ich noch keine Möglichkeit das effizient zu lösen. Ich lerne halt noch :P

Die SQLite Datenbank

Die UserIDs der Benutzer, ihre alternativen Namen und die Koordinaten stehen in einer SQLite Datenbank mit dem Schema:

CREATE TABLE dynmap (
                     userid INTEGER NOT NULL,
                     name VARCHAR(50) NOT NULL,
                     lat VARCHAR(8) NOT NULL,
                     lon VARCHAR(8) NOT NULL,
                     CONSTRAINT dynmap_PK PRIMARY KEY (userid)
);

Ablauf

Eine Funktion iteriert über jeden Benutzer in UserDB und überprüft über Ice ob dieser online/offline ist.
Ist der Benutzer gerade online, also auf dem Server, so wird der aktuell in Mumble verwendete Name benutzt. Falls der Benutzer nicht online ist, so wird der in UserDB eingetragene Name verwendet.

Ergebnis

Das Ergebnis in Echtzeit

Ein Screenshot der Benutzerkarte:

Probleme

Anscheinend macht das Map-Plugin von DokuWiki Probleme beim Escapen von ' ? D.h. aus

<img src='

wird

<img src=%5c%27

Um die Karte in eine vorhandene Seite einzubetten muesste ich zwei Begrenzer in diese einfuegen und innerhalb dieser die Karte einfuegen.

Seite
--begrenzung--
layermap lala
--begrenzung--

weiter seite

Wie macht man das mit Python :)?

Irgendwas setzt dann noch ein / davor und der Browser versucht, sich die Daten vom Rootverzeichnis zu holen …

Datenschutz

Jeder Benutzer der auf dieser Map zu finden ist, hat sich freiwillig dazu entschieden.
Es gibt keinen Automatismus, der anhand einer IP oder ähnlichem einen Benutzer in diese Karte einträgt.
Desweiteren wird nicht der wirkliche Wohnort punktgenau angegeben sondern lediglich die nächst größere Stadt.

Wenn du aus der Karte gelöscht werden möchtest, wende dich bitte an Natenom.

Karte erzeugen

Anstatt in bestimmten Abständen die Karte generieren zu lassen wird hier die Callback-Funktionalität von Murmur verwendet. Dadurch wird die dynamische Karte wirklich auch nur dann neu geschrieben, wenn ein registrierter Benutzer den Server betritt oder verlässt; also in Echtzeit :)

Ideen