Gerade aktuell ...
Ich programmiere ein Add-on für meine Webseite
Seit langem suche ich eine gute Möglichkeit, meine jeweils neuen Artikel auf meiner Website automatisch in Social-Media zu posten. Ich verwende Mastodon und Bluesky.
Die KI von Anthropic, Claude, soll gut Programme erstellen können. Also Zeit für einen Test.
Meine Anfrage an Claude
Kannst du mir ein Joomla plugin schreiben, welches den jeweils letzten Artikel auf Mastodon und Bluesky postet? Gerne mit einem kurzen Textanriss und dem ersten Bild des Artikels. Die Account Informationen möchte ich als Konstanten eingeben.
Claude arbeitet etwa 2 Minuten, dann
Das Plugin ist fertig: plg_content_socialpost.zip (Joomla 4/5, Content-Plugin). PHP war in meiner Umgebung nicht verfügbar, ich habe es also nicht ausgeführt und nur den Code geprüft. Teste es bitte zuerst mit einem Testartikel.
Einrichten
- In src/Extension/SocialPost.php oben die Konstanten eintragen: Mastodon-Instanz und Token (Scopes write:statuses und write:media), Bluesky-Handle und App-Passwort.
- ZIP über System → Erweiterungen installieren, dann das Plugin aktivieren.
So verhält es sich
- Auslöser: Es postet beim Speichern eines neuen, veröffentlichten Artikels mit Zugriffsebene „Public“.
- Inhalt: Titel, Textanriss (200 Zeichen), Link und das erste Bild. Das ist das erste <img> im Text, sonst das Intro- oder Volltextbild.
- Bild: Für Bluesky wird es bei Bedarf unter 1 MB verkleinert (PHP-GD nötig). Der Alt-Text kommt aus dem alt-Attribut, sonst aus dem Titel.
- Doppelposts: Das Plugin merkt sich die zuletzt geposteten Artikel-ID und postet nicht doppelt.
- Geplante Artikel: Mit Veröffentlichungsdatum in der Zukunft wird nicht gepostet. Speichere sie nach der Veröffentlichung einmal neu.
- Fehler: Bei einem Fehler kommt eine Meldung im Backend, Details stehen im Joomla-Log (socialpost.log.php). Das Speichern des Artikels bricht nie ab.
Prüfe beim ersten Artikel, ob der Link im Post stimmt, denn die URL wird aus dem Backend heraus erzeugt. PHP-cURL muss auf dem Server aktiv sein.
Das Plugin funktioniert auf Anhieb, ausser einem kleinen Problem und einem weiteren Wunsch, also nochmals schreiben
Bei mastodon wird das Bild leider nicht angezeigt. Zudem hätte ich den Link auf den Original Artikel gerne geshorted.
Nach einer weiteren Minute
Ich habe beide Punkte angepasst, plg_content_socialpost.zip ist neu. Das Plugin ließ sich hier nicht ausführen, ich konnte es also nicht testen.
Link kürzen: Der Artikel-Link läuft jetzt über is.gd. In den Konstanten kannst du URL_SHORTENER auf 'tinyurl' oder 'none' stellen. Schlägt die Kürzung fehl, wird der Original-Link verwendet. Der Dienst bekommt dabei die URL zu sehen. Wenn du einen eigenen Shortener (z. B. YOURLS) hast, baue ich den gern ein.
Mastodon-Bild: Die genaue Ursache kenne ich nicht. Ich habe zwei Dinge geändert, die in Frage kommen:
- Der Upload läuft jetzt über den älteren Endpunkt /api/v1/media. Der wartet, bis Mastodon das Bild fertig verarbeitet hat. Beim neueren Endpunkt kann das Bild beim Absenden des Posts noch in Verarbeitung sein.
- Den Idempotency-Header habe ich entfernt. Bei einem erneuten Test mit derselben Artikel-ID hätte Mastodon sonst womöglich nur die alte Antwort zurückgegeben.
Zusätzlich schreibt das Plugin jetzt ins Joomla-Log (socialpost.log.php), wenn das Bild nicht geladen werden konnte oder Mastodon den Post ohne Anhang angelegt hat.
Falls das Bild bei Mastodon weiterhin fehlt, schau bitte in dieses Log und schick mir den Eintrag.
Nun klappt alles perfekt. Einige Minuten geplaudert und ein länger bestehendes Problem gelöst!
Landausflug in Tarragona
Unser erster Landausflug nach einem ganzen Tag auf See war in Tarragona, einer kleinen Stadt südlich von Barcelona.

Ähnlich wie in Barcelona gibt es auch hier eine Rambla: eine breite, von Bäumen gesäumte Strasse mit einer grossen Fussgängerzone. Am Morgen war die Sonne noch hinter Wolken versteckt, das sollte sich aber im Laufe des Tages ändern.

Im Zentrum der Altstadt sind die Strassen nicht so grosszügig wie die Rambla. Die Häuser sind sehr nahe an die Strasse gebaut und die Fussgänger werden durch Stahlsäulen vor dem Verkehr geschützt. Autoverkehr gab es aber sehr wenig.

Der Mercado Central liegt, wie der Name schon andeutet, im Zentrum der Stadt. Auch der grosse Platz davor ist autofrei.

Früchte, Gemüse, Fisch und viele andere Lebensmittel waren im Angebot. Immer wieder ein schön farbiges Umfeld, bestens geeignet zum Fotografieren. Einkaufen mussten wir nichts, an Essen herrscht auf dem Schiff kein Mangel. Im Gegenteil: Ohne Selbstbeherrschung könnte man sich während der Cruise gut und gerne einige Kilogramm Speck anfressen.

Bei diesem Stand hängt der Himmel voller Geigen – oder korrekter: voller Schinken. Unter jedem der Schinken hängt ein kleiner Becher, der das herabtropfende Fett auffängt.

Tarragona wurde schon von den Römern besiedelt. 218 v. Chr. eroberten sie die Stadt und machten sie unter dem Namen Tarraco zur Provinzhauptstadt. Das Forum Romanum im heutigen Zentrum war leider nicht zugänglich, so blieb mir nur ein Bild von aussen.

Nahe am Meer bauten die Römer ihr Amphitheater, heute nur noch eine Ruine. Sie lässt noch die einstige Grösse erahnen.

Der Torre de las Monjas stammt aus dem Mittelalter und war damals ein wichtiger Teil der Stadtmauer.

Mit einem öffentlichen Bus besuchten wir ein weiteres Überbleibsel aus der Römerzeit. Das Aquädukt von Les Ferreres ist eines der am besten erhaltenen seiner Art. In Katalonien ist es das grösste erhaltene Bauwerk dieser Art. Vermutlich im 1. Jh. unserer Zeitrechnung unter Kaiser Augustus erbaut, diente es noch bis weit ins Mittelalter der städtischen Wasserversorgung. Entsprechend wurde es immer wieder instand gesetzt.

Die Bogen überspannen das Tal und führten das Wasser eines nahen Flusses in die Stadt.

Marco ging über das Aquädukt und fotografierte einen Bogen anschliessend auch noch von unten. Eine interessante Perspektive.

Für mich war der Aufstieg zum Aquädukt zu schwierig, weshalb ich froh war, dass mir Marco einige Bilder überliess. Der Weg führt durch den ehemaligen Wasserkanal.

Die Römer verbanden die einzelnen Blöcke mit solchen Metallklammern, von denen einige noch gut erhalten sind.

Kurz vor Sonnenuntergang legte unser Schiff ab und wir machten uns auf den Weg nach Teneriffa. Zwei Tage auf See sollen uns dorthin bringen. Wir werden mit etwa 40 km/h unterwegs sein, dies aber 48 Stunden lang.

Am Abend des ersten Tages fuhren wir durch die Strasse von Gibraltar vom Mittelmeer in den Atlantik. Auf der linken Seite ist das marokkanische Rif-Gebirge zu erkennen, während auf der rechten Seite das spanische Festland im Dunst liegt.
Aquädukt von Tarragona

Die genialen Römer bauten um das 1. Jahrtausend unserer Zeitrechnung für ihre Siedlung Tarragona einen Aquädukt, um die Stadt jederzeit mit frischen Wasser versorgen zu können. Bei einem Zwischenstopp in der Stadt machten wir heute einen kurzen Ausflug zu diesem Wahrzeichen. Der Aquädukt heisst heute auch Pont del Diablo, Teufelsbrücke.
Ergänzung: ich liess mir den obigen Text noch durch Google Gemini korrigieren, hier die Antwort:
Abschnitt 1: 1. Jahrtausend zu 1. Jahrhundert korrigiert (im 1. Jahrtausend bauten die Römer nicht mehr in Spanien). Dativ korrigiert (mit frischem Wasser). Katalanischer Name: Pont del Diable (statt Diablo).
Nicht nur auf Rechtschreiben überprüft, auch den Kontext angepasst. Hut ab!
Anreise nach Genua mit dem Zug und Einschiffen
Um 06:00 rief mich der Wecker zum Aufstehen. Eine Dusche, ein Kaffee, noch fertig packen und dann fuhr mich Ruth nach Birmensdorf zum Bahnhof. In Zürich traf ich Marco und zusammen fuhren wir über Chiasso nach Milano.

Der Bahnhof Milano war sehr gut besucht, viele Reisende waren unterwegs und viele Passagiere wechselten hier ihre Züge, um zu ihrem Ziel zu gelangen. Wir mussten nur wenige Meter gehen, um zu unserem Zug zu gelangen. Dieser war sehr gut besetzt und fuhr pünktlich ab. Marco hat die Sitzplätze im Voraus reserviert, sonst hätten wir wohl stehen müssen.

Mit zwei Minuten Verspätung kamen wir schliesslich in Genua an und …

… genossen zuerst einmal einen guten Espresso an der südlichen Sonne.

Das Cruise-Terminal ist nur einige 100 m vom Bahnhof entfernt und so machten wir uns zu Fuss auf den Weg zum Check-In. Bald schon sahen wir unser Schiff im Hafen stehen. Von unserem Standort aus wirkte es noch eher klein.

Je näher wir kamen, desto grösser erschien das Böötli. Die MSC Divina bietet 3’502 Passagieren Platz und hat 1’388 Crew-Mitglieder. Eine kleine Stadt, die über den Ozean fährt.

Unser Einschiffungstermin war um 14 Uhr und auf die Minute genau waren wir Schweizer vor Ort. Das Schiff startete die Route schon in Neapel und deshalb stiegen in Genua nur wenige Passagiere zu. Das Check-In verlief deshalb sehr schnell und problemlos. Zu Beginn einer längeren Cruise sind die Schlangen am Check-In oftmals sehr lang und das Boarding dauert entsprechend lang.

Bald schon konnten wir an Bord und unsere Kabine beziehen.

Vom obersten Deck aus hatten wir eine schöne Sicht auf die Stadt Genua, die sich unter dem tiefblauen Himmel makellos präsentierte.

Kurz nach 18 hiess es ‚Leinen los!‘ und wir entfernten uns von Italien auf dem Weg zur ersten Destination Tarragona südlich von Barcelona. Am morgigen Sonntag sind wir den ganzen Tag auf See, genügend Zeit, um das Schiff zu erkunden.
