TootPress

Das WordPress Plugin TootPress kopiert fortlaufend deine Tröts von Mastodon nach WordPress. Die Tröts können im Blog chronologisch angezeigt werden und damit wird die eigene Timeline weiteren Personen abseits von Mastodon zugänglich. Zusätzlich gewinnt man den Besitz der eigenen Daten zurück.

TootPress Logo (TootPress in Handschrift ausgeschrieben)

Features

  • Kopiere deine Tröts zurück
  • Kopiere deine vertröteten Bilder zurück
  • Anzeige der Tröts im Blog
  • Lade deine komplette Timeline
  • Sprache: Englisch, Deutsch (eingeschränkt)

Screenshots

Screenshot: TootPress WordPress Einstellungen

Screenshot: TootPress Tools in WordPress

Live Demo

https://www.unmus.de/troets

Konfigurationsanleitung

  1. Plugin in WordPress installieren und aktiveren
  2. Um einen API-Schlüssel von Mastodon zu erhalten, muss man eine Applikation auf der genutzten Instanz erstellen (unter Einstellungen/Entwicklung)
  3. Berechtigung der erstellten Applikation auf READ (alle Daten) einschränken
  4. Die Mastodon Instanz und das Zugangs-Token in den TootPress Einstellungen hinterlegen
  5. Account ID abrufen (in WordPress unter Werkzeuge/Toots)
  6. Account ID in den TootPress Einstellungen hinterlegen
  7. Eine neue WordPress Seite anlegen und die Seite in ein Menü einhängen
  8. Die Page ID der Seite in den TootPress Einstellungen hinterlegen. Man findet die Page ID in der URL des Browsers, wenn man eine Seite in WordPress bearbeitet.
  9. Mastodon API Request durchführen (in WordPress unter Werkzeuge/Toots)
  10. Steady Fetch aktivieren
  11. Das war’s!

Gebrauchsanweisung

  • Man findet TootPress in WordPress jeweils im Menü Einstellungen und Werkzeuge
  • Die Funktion Steady Fetch aktiviert den fortlaufenden und automatischen Abruf der aktuellen Tröts
  • Der erste Aufruf der Mastodon API kopiert die letzten 40 Tröts
  • Neue Tröts werden alle 15 Minuten geladen (einstellbar)
  • Man kann die komplette Timeline mit der gleichnamigen Funktion abrufen
  • Der Abruf der kompletten Timeline kann mehrere Stunden dauern, abhängig von der Größe der Timeline
  • Es werden dabei maximal 480 Tröts pro Stunde geladen
  • Einen Mastodon API Request kann jederzeit mit der gleichnamigen Funktion manuell durchgeführt werden
  • Es gibt keine vorgeschriebene feste Reihenfolge von Steady Load, dem Laden der kompletten Timeline oder manuellen Abrufen
  • Falls Probleme auftreten, bitte den Healthy Check durchführen

Tröt Inhalte

Folgende Tröt Inhalte werden unterstützt.

  • Text
  • Bilder
  • URLs
  • Hashtags
  • Mentions
  • Gallerien

Folgende Tröt Inhalte werden nicht unterstützt.

  • Audio
  • Video
  • Umfragen
  • Emojis
  • Teaser

Ausgeschlossene Toot Typen

Folgende Tröt Typen werden nicht über die API abgerufen.

  • Boosts
  • Replys
  • Private Toots

Architektur

Datenhaltung und Prozesslogik sind vom WordPress Framework separiert. Die Tröts werde also nicht in der Tabelle wp_posts gespeichert. Und TootPress registriert auch keinen neuen Custom Post Type für die Tröts.

CSS Klassen

TootPress wird nur mit den nötigsten CSS Styles ausgeliefert. Für ein optimales Ergebnis ist es erforderlich, weitere Styles im Theme zu ergänzen oder bestehende Styles zu überschreiben. Alle TootPress UI Elemente können über einen CSS Selektor angesteuert werden.

Daten & Verzeichnisse

TootPress erstellt zwei Order im WordPress Upload Verzeichnis.

  • tootpress-mastodonapidata = Archiv der geladenen Mastodon API Daten im JSON-Format
  • tootpress-images = Geladene Bilder

wpCrons

Es werden zwei wpCrons in WordPress registriert.

  • Steady Fetch (alle 15 Minuten, einstellbar)
  • Load Complete Timeline (alle 5 Minuten)

TootPress API

Actions

tootpress_toots_update
Diese Action wird gefeuert nachdem neue Tröts geladen wurden.
Sie kann als Trigger für benutzerdefinierte Nachbearbeitung benutzt werden.
Folgender Code kann als Vorlage benutzt werden.

function tootpress_toots_update_postprocessing() {

     // Add your code to be executed here

}
add_action('tootpress_toots_update', 'tootpress_toots_update_postprocessing');

Filter

tootpress_preamble_add
Dieser Filter gibt HTML Inhalte vor dem Tröt Loop aus.
Folgender Code kann als Vorlage benutzt werden.

function tootpress_preamble_add( $preamble ) {

     // Add your filter code here
     // Example: $preamble='<p>Hello World.</p>';

     return $preamble;

}
add_filter( 'tootpress_preamble_filter', 'tootpress_preamble_add', 10, 1 );

Frequently Asked Questions

Warum werden Boosts, Replys und private Tröts nicht unterstützt?

Boosts sind nicht deine Tröts. Replys sind mehr Kommunikation als Tröts. Und private Tröts sollten privat bleiben.

Wie geht TootPress mit der Canonical URL um?

TootPress greift nicht in das Handling der Canonical URL von WordPress ein. Das bedeutet, wenn man eine unique Canonical URL für jede TootPress Unterseite haben möchte, muss man dies mit Hilfe eines SEO Plugins regeln. Dies ist relevant, wenn sich die Timeline über mehrere Seiten erstreckt und das Plugin den Paging Prozess startet. Jede dieser Unterseiten hat standardmäßig die gleiche Canonical URL.

Was muss beim Einsatz eines Caching Plugins beachtet werden?

Wie schnell ein Tröt im Blog angezeigt wird, wird durch zwei Faktoren bestimmt. Einerseits dadurch, wie oft die Tröts geladen werden (Einstellung Period), andererseits dadurch wie oft der Cache refreshed wird. Soll ein Tröt schnellstmöglich im Blog angezeigt werden, muss die TootPress Seite vom Caching ausgeschlossen werden. Eine weitere Möglichkeit besteht darin, die TootPress Seite aus dem Cache zu entfernen, sobald neue Tröts geladen wurden. Dafür stellt TootPress eine WordPress Action bereit, die vom Caching Plugin bearbeitet werden muss.

Wo sind die Backlinks?

Backlinks zu Mastodon können in den Plugin-Einstellungen aktiviert werden. In diesem Fall wird das Mastodon-Logo, welches für jeden Toot angezeigt wird, um einen Link zum ursprünglichen Toot auf der entsprechenden Mastodon-Instanz erweitert. Es wird empfohlen, die Backlinks nicht zu aktivieren, da dies einen negativen Einfluss auf die SEO-Bewertung haben kann.

Unterstützt TootPress das Feature WordPress Multisite?

Nein. Das Plugin funktioniert nur auf der Master-Seite im Multisite Netzwerk, aber nicht auf den Child-Seiten.

Download

TootPress @ WordPress Plugin Directory
TootPress @ unmus

Support

Formal wird kein Support für TootPress angeboten. Für Hinweise und Fehlerberichte bin ich aber dennoch dankbar. Fehler bitte im Support Forum von TootPress auf WordPress.org berichten oder direkt auf GitHub als Issue einstellen. Verbesserungsvorschläge und Anregungen bitte per eMail an tootpress@unmus.de.

Lizenz

TootPress ist Open Source und steht unter der GPLv3 Lizenz.

GitHub

circuscode/tootpress

Änderungsprotokoll

Version 0.4 „Cassie Lang“

Juni 2024

  • Neu: Preamble Filter

Version 0.3 „Deadpool“

April 2024

  • Neu: Unterstützung von Gallerie Tröts
  • Neu: Mastodon Backlinks
  • Neu: Integration in das WordPress Widget „Auf einen Blick“
  • Geändert: Label der User Interface Section in den Einstellungen
  • Korrigiert: Plugin CSS wird nun wirklich aktiviert
  • Korrigiert: Rewrite Rules werden jetzt wirklich aktualisiert
  • Korrigiert: Interne Versionierung wird richtig gesetzt
  • Korrigiert: CSS Option wird beim Rest auf Werkseinstellungen richtig gesetzt

Version 0.2.1

April 2023

  • Korrigiert: Verschwundes Label in den TootPress Einstellungen (Nav Standard)

Version 0.2 „Kate Bishop“

April 2023

  • Ergänzt: Echos werden escaped
  • Geändert: CSS Queueing auf WordPress Funktion umgestellt
  • Geändert: Bilder werden jetzt über WordPress HTTP API geladen

Version 0.1 „Ms Marvel“

März 2023

Initiale Version