General
Hier liegen die Daten für den „Nexus“. „Nexus“ ist der Arbeitstitel für eine Software, welche in der Lage ist, Beiträge zwischen zwei WordPress Instanzen zu übertragen. Die Instanzen müssen dabei nicht auf dem gleichen Webspace liegen. Die Instanzen müssen nur öffentlich erreichbar sein und die REST-API muss aktiv sein. Zudem benötigt die Quellinstanz das beiliegende WordPress Plugin.
Funktionsweise
An sich besteht das System aus drei Komponenten. Zum einen aus den hier vorhandenen Python Scripts, aus dem WordPress Plugin, welches im Ordner „Nexus WP Plugin“ liegt und eine MySQL Datenbank, welche die Konfiguration für den Nexus beinhaltet.
Das Plugin ist notwendig, damit man in der Quellinstanz die Beiträge für die entsprechenden Ziele markieren kann. Es ist dabei möglich mehrere Ziele zu verwenden.
Das Plugin fügt für jedes Ziel, welches für die Quelle verfügbar ist einen Tag hinzu. Dieser Tag kann aktiv und inaktiv sein. Die Tags sind in der Beitragsbearbeitung im Bereich „Nexus Ziel Tags“ sichtbar. Die Ziele können mittels ankreuzen ausgewählt werden. Für eine vereinfachte Fehlersuche gibt es zudem in dem Einstellungsbereich das Menü „Nexus Debug“. Hier wird die aktuelle Konfiguration angezeigt, welche vom Nexus übermittelt wurde (vgl. nexus-config-wp.py)
Neben den Tags stellt das Plugin noch eine zusätzliche Query-API zur Verfügung. Hierüber werden die Posts nach Tags gefiltert abgerufen.
Die Hauptaufgaben übernehmen die Python Scripts. Wichtig sind dabei zwei Python Scripts. Das Python Scipt „nexus_config_wp.py“ übermittelt alle Verfügbaren Ziele an die Quellinstanz (vgl. Nexus Debug). Die Konfiguration ist im JSON Format und hat diese Struktur:
[
{
'tag':'tag',
'display':'Anzeigename'
},
...
]
Der Tag ist dabei die Technische Bezeichnung des Tags und zeitgleich auch der Bezeichner für die Metadaten im Post. Der Anzeigename ist der Name, welchen der Anwender in der Zielauswahl sieht.
Das zweite wichtige Script ist „nexus_worker.py“. Dieses Script startet den Transferprozess für alle eingestellten Verbindungen. Mit diesem Script werden die Posts und Medien übermittelt.
Die gesamte Konfiguration für den Nexus wird in einer MySQL Datenbank gehalten. Diese muss in der Python Datei nexus_config.py eingetragen werden. Die Struktur der Datenbank liegt im Ordern „doc“. Für die Konfiguration sind dabei zwei Tabellen entscheidend.
Die Tabelle Instanz enthält dabei alle WordPress Instanzen, welche Posts versenden oder empfangen kann. Der Name ist dabei frei wählbar. Bei URL muss die URL zur JSON REST-API angegeben werden. Es darf kein abschließender / verwendet werden. Bei User muss der API User mit Administrator Rechten eingetragen werden. Bei Secret wird das Anwendungspasswort des Benutzers eingetragen (Achtung: nicht das normale Kennwort!).
Die Tabelle Verbindungen enthält die Verbindungen zwischen den Instanzen. Bei Quelle muss die ID der Quellinstanz eingetragen werden. Bei Ziel muss die ID der Zielinstanz eingetragen werden. Der Tag ist frei wählbar, darf aber keine Leerzeichen oder Sonderzeichen enthalten. Die Option „is_archiv“ muss auf 0 gesetzt werden. Diese Funktion bekommt erst Relevanz, wenn auch ein Archiv als Ziel verfügbar ist.
Die Anderen Tabellen sind uninteressant und füllen sich von alleine.
Nexus Admin WUI
Es gibt auch eine Rudimentäre Admin Oberfläche für die Konfiguration des Nexus. Diese liegt im Ordner „Nexus Admin WUI“. In der Datei „config.php“ muss dabei die Verbindung zur Konfigurationsdatenbank sowie zur Pythondatei nexus_config_wp.py eingestellt werden. Die Benutzerverwaltung erfolgt über die Tabelle accounts in der Konfigurationsdatenbank. Name ist dabei der Anmeldename und password das gehashte Passwort (PHP-Standard Hash).
Python Abhängigkeiten
Damit der Nexus funktioniert, sind folgende Python Abhängigkeiten notwendig:
- mysql-connector-python
- requests
- python-magic