8.5 KiB
Redaktioneller Inhalt des Pendel-Projekt. Beinhaltet die Content-Dateien (Ausgangs- und End-Dateien) sowie die Skripte zum Erstellen und Hochladen nach Uberspace.
Mit dem Hochladen werden auf Uberspace nur die fertigen Content-Dateien im Uppload-Verzeichnis von Wordpress kopiert.
Das Repository benötigt alles, was der Redakteur benötigt (bis auf die Secrets natürlich).
Setup
Installation auf Uberspace
Beschreibt das einmalige Setup des Projekts.
Wordpress wird wie im uberlab beschrieben installiert, allerdings nicht direkt nach /home/kollegen/html, sondern in das Unterverzeichnis pendel.
$ cd /home/kollegen/html
$ mkdir pendel
$ cd pendel
$ USER=kollegen
$ wp core download
$ wp config create --dbname=${USER}_wordpress --dbuser=${USER} --dbpass=to-secret-db-password
$ wp db create
$ wp core install --url=kollegen.uber.space --title="Pendel" --admin_user=kollegen --admin_email=kollegen@uber.space
Admin password: top-secret-admin-password
$ wp option update siteurl $(wp option get siteurl)/pendel
Wichtig sind die URLs in den Einstellungen / Allgemein bzw. in der Datenbanktabelle wp_options.
| Feld | Name | Wert |
|---|---|---|
| siteurl | Website-Adresse (URL) | http://kollegen.uber.space/pendel |
| home | WordPress-Adresse (URL) | http://kollegen.uber.space/pendel |
Das Worpress-Plugin s. https://github.com/chs8691/pendel
S. auch deliciousbrains.com/move-wordpress-root-subdirectory
Lokales Setup
Auf einem Linux-Rechner muss installiert sein:
- exiftool
- sshpass
- rsync
- git
- Digikam
- Browser chromium
Digikam
Es ist das Wurzelverzeichnis ~/Pictures/digikam anzulegen in Digikam als Album einzurichten. Darin ist folgende Albenstruktur anzulegen:
▼ Alben
▶ Import # Import- und Arbeitsverzeichnis
▼ Digikam
▶ pendel # Ausgang für Pendel
Digikam muss eingerichtet werden, damit geänderte Metadaten als XMP-Metadaten geschrieben werden und somit vom exiftool ausgelesen werden können. Unter Einstellungen > Digikam einrichten > Metadaten > Verhalten > Informationen als Metadaten schreiben:
- Beschriftung und Titel: ☑
- Geolokalisierungsinformationen (GPS): ☑
Pendel-Repository
Ist auszuchecken nach ~/kollegen.
$ cd ~/kollegen
$ git clone https://kollegen.uber.space/gitea/website/pendel.git
Die Verzeichnisstruktur sieht dann wie folgt aus:
▶ ~/kollegen/pendel
▶ in # Eingangsdaten
▶ out # Ausgangsdaten
credentials # Secrets
<bash-skripte> # *.sh
readme.md # Diese Datei
Workflow
Die Arbeitsschritte vom gespeicherten Foto bis zum Update der Website:
flowchart TB
subgraph digikam[Digikam]
prepare[Bild bearbeiten\n und Tile erstellen]
end
subgraph scripts[Skripting]
direction LR
subgraph pendel["/pendel"]
direction TB
in[Eingangsdateien\n hinzufügen]
out[Upload-Dateien\n generieren]
end
subgraph uberspace[Uberspace]
direction TB
upload[Hochladen]
update[Website generieren]
end
end
prepare --> in
in --> out
pendel --> uberspace
upload --> update
Redaktionelles Arbeiten
Um einen weiteren Eintrag dem Projekt hinzuzufügen, werden folgende Dateien benötigt:
- Original - Jpeg-Datei mit Meta-Daten
- gpsposition: Längen- und Breitengrad
- Für Title und Beschreibung:
ENTWEDER- title im Format
Pendel <Römische Zahl> - description Kurz und einzeilig
ODER - title im Format
Pendel <Römische Zahl> - <Beschreibung, kurz und einzeilig> - description -- Wird ignoriert --
- title im Format
- Endung: muss jpg lauten (klein geschrieben)
- Landscape - Kein Hochkant!
- gpsposition: Längen- und Breitengrad
- Tiles - Jpeg-Datei mit einem rechteckigem Bild-Ausschnitt
- Dateiname: tile_<Original-Dateiname>
- Keine GPS-Daten nötig
- Größe: 100 x 100 px
- Ausschnittbreite: ca. 3% vom Original
| Breite | Ausschnitt |
|---|---|
| 3.264 | 100 |
| 6.240 | 188 |
| 7.728 | 232 |
Da die GPS-Position bereits im JPEG ist, wird die TCX-Datei nicht mehr benötigt.
Es wird nun exemplarisch beschrieben, wie ein neuer Pendel-Eintrag 100 erzeugt wird.
Soweit nicht anders angegeben, können die Skripte aus jedem beliebigen Verzeichnis heraus aufgerufen werden.
Digikam
Im Album digikam/Pendel das Unteralbum 100 hinzufügen.
Das importierte Bild bearbeiten und mit Titel und Beschreibung versehen. Ggf. Geo-Daten hinzufügen.
Tiles-Bild daraus erstellen.
Die Dateinamen müssen, auch in der Groß-/Kleinschreibung hinter
tile_identisch sein
Das fertige Bild und die erstellte Tile-Datei dort ablegen. Das fertige Album sieht dann wie folgt aus:
▼ Alben
▼ Digikam
▼ pendel
▼ 100
❑ 20230901-182900-X-S10.jpg
❑ tile_20230901-182900-X-S10.jpg
Import durchführen
Verzeichnis out ist ein flaches Verzeichnis mit verkleinerten Bildern, Tiles sowie der Datei gps.csv mit den Metadaten aller Fahrten.
Per Skript import.sh wird dieses um den neuen Eintrag ergänzt:
$ ~/kollegen/pendel/import.sh 100
Add 100 to /home/chris/kollegen/pendel/out
Copy, convert and chmod 20230901-182900-X-S10.jpg...
Copy and chmod tile_20230901-182900-X-S10.jpg...
Create and chmod gps.csv...
Done.
Wordpress aktualisieren
Voraussetzung: Auf dem Rechner ist der SSH-Key chris@egh installiert.
Skript deploy.sh aufrufen.
~/kollegen/pendel/deploy.sh
Es besteht aus zwei Schritten:
- Durch Synchronisation des lokalen Ordner
outmit dem Plugin-Ordner werden die lokalen Änderungen hochgeladen. - Mit dem Durchstarten des Plugins wird die Leinwand neu aufgebaut.
Die Ausgaben zeigt, dass alles geklappt hat:
--- STEP 1: Uploading changes to wordpress plugin
sending incremental file list
./
20230901-182900-X-S10.jpg
gps.csv
tile_20230901-182900-X-S10.jpg
sent 214.906 bytes received 166 bytes 86.028,80 bytes/sec
total size is 30.949.478 speedup is 143,90
--- STEP 2: Reactivating plugin
Plugin 'pendel' deactivated.
Success: Deactivated 1 of 1 plugins.
Plugin 'pendel' activated.
Success: Activated 1 of 1 plugins.
Die so hochgeladenen Daten werden aber noch nicht verwendet.
❗HINWEIS
Damit nicht gitea die SSH-Befehle interpretiert, müssen alle per SSH ausgeführten Commands in der Datei.ssh/authorized_keyseingetragen sein.
Troubleshooting
F Neues Bild/Tile wird nach dem deploy nicht angezeigt
A Kann mehrere Ursachen haben:
- Dateiname von Bild
<IMAGE>und Tiletile_<IMAGE>stimmen nicht exakt übereinstimmen - Dateiname in
gps.csvstimmt nicht exakt überein Passiert schnell, wenn mehrere Bildversionen hochgeladen werden. Dann per SSH aller Bilder mit Zeitstempel löschen und per import den Eintrag erneut erzeugen und hochladen.
Hintergrundinfos
Datei gps.csv
Die Spalten sind mit Tabs getrennt. Aufbau:
- Dateiname
- Longitude
- Latitude
- Titel
- Beschreibung
Alter Kram
GPS in Datei extrahieren
Wenn alle jpg in direkten Unterverzeichnissen liegen und mit einer Zahl anfangen, kann so eine Datei mit GPS-Location erstellt werden:
$ cd ~/kollegen/pendel
$ find in/ -regex in/[0-9][0-9][0-9]/[0-9].*\.jpg | xargs exiftool -filename -gpsposition -n -s -t -S -q -f > out/gps.csv
Track-Dateien
Die ersten Pendel-Fahrten wurden aus der Track-Datei mit den GPS-Daten getaggt. Mittlerweile sind die GPS-Daten bereits in der Bild-Datei vorhanden, so dass die Track-Datei nicht mehr nötig ist.
EXIF und Zeitdifferenz
Relevant ist createdatetime und _gpsdatetime. In den GPX-Tracks habe ich keine Zeitzone gefunden (gpx, tcx von Polar als auch der Tracker-App)
Korrektur der Exif-Zeit
Bsp. GPX um eine Stunde vor. Ermitteln:
exiftool -createdate img.jpg --> ...2017:08:23 07:43:21
head -c 200 001.gpx --> ...
Korrektur der Exifzeit um eine Stunden nach vorne: exiftool -datetimeoriginal+=1 -createdate+=1 20170823-074258-DSCF5765.jpg
Zeitzone
exiftool verwendet beim geotaggen die Timezone des Rechners für die Bild-Zeit, wenn keine Zeitzone im exif gesetzt ist. Um die Verwendung der Rechner-Zeitzone zu unterbinden, muss man createdate explizit ohne Zeitzone für GPS-Tagging verwenden.
Beispiel:
$ exiftool -geotag Christian_Schulzendorff_2017-08-23_06-54-06.gpx '-geotime<${createdate}+00:00' 20170823-074258-DSCF5765.jpg
Als Kopiervorlage
exiftool -geotag '-geotime<${createdate}+00:00'