Arbeitsverzeichnis für Pendel-Redaktion. Beinhaltet Skripte sowie alle Pendel-Inhalte.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Christian Schulzendorff 091667efa1 102 2 years ago
out 102 2 years ago
.gitignore Simplyfied workflow 2 years ago
README.md 102 2 years ago
deploy.sh 102 2 years ago
import.sh 102 2 years ago
tcxToFow.sh Initial commit 2 years ago

README.md

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

In das Verzeichnis noch die Datei credentials aus dem Keepass hinzufügen.

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 --
    • Endung: muss jpg lauten (klein geschrieben)
  • Tiles - Jpeg-Datei mit einem rechteckigem Bild-Ausschnitt
    • Dateiname: tile_<Original-Dateiname>
    • Keine GPS-Daten nötig
    • Größe: 500 x 500 px
    • Ausschnittbreite: ca. 3% vom Original
Breite Ausschnitt
3.264 100
6.240 188

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.

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

Skript deploy.sh aufrufen.

~/kollegen/pendel/deploy.sh 

Es besteht aus zwei Schritten:

  • Durch Synchronisation des lokalen Ordner out mit 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_keys eingetragen sein.

Hintergrundinfos

Datei gps.csv

Die Spalten sind mit Tabs getrennt. Aufbau:

  1. Dateiname
  2. Longitude
  3. Latitude
  4. Titel
  5. 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'