Der Mastodon-Adventskalender

  Ralf Hersel   Lesezeit: 5 Minuten  🗪 5 Kommentare

Wir basteln einen Adventskalender, der jeden Tag im Advent, ein Trötchen auf eurem Mastodon-Profil öffnet.

der mastodon-adventskalender

Zugegeben, dieser Artikel kommt etwas spät, wenn es darum geht, einen Adventskalender zu basteln. Da mein Vorschlag sich einfach umsetzen lässt, ist es dennoch nicht zu spät, seinen sozialen Lieben eine Freude in der Adventszeit zu bescheren.

Eigentlich geht es hierbei nicht um Adventskalender, sondern um zeitlich gesteuerte Tröts auf Mastodon. Der Web-Client von Mastodon, und auch die Desktop-Clients unterstützen diese Funktion nicht. Wohl aber der CLI/TUI-Client Toot, über den wir bereits geschrieben haben. Die Bedienung von Toot soll jetzt nicht das Thema sein, sondern nur das Vorgehen, um den Adventskalender zu bauen.

Die Projektseite von Toot enthält keine Informationen über die Installation. Bei Manjaro konnte ich die Anwendung aus dem AUR-Repo installieren. Bei Flathub.org gibt es sie nicht, aber vielleicht in den Repositories eurer Distribution. Nach der Installation meldet man sich bei der eigenen Mastodon-Instanz mit seinem Account an. Das geht so:

toot login

Choose an instance: [Adresse deiner Instanz]
Open link in default browser? [Y/n]Y
Authorization code: blablub
Successfully logged in.

Die CLI-Ausgabe ist stark verkürzt. Wichtig ist diese Meldung:

Bei dieser Authentifizierungsmethode müssen Sie sich bei Ihrer Mastodon-Instanz in Ihrem Browser anmelden, wo Sie aufgefordert werden, den Zugang zu Ihrem Konto zu autorisieren. Wenn Sie dies tun, erhalten Sie einen Autorisierungscode den Sie hier einfügen müssen.

Mit toot whoami könnt ihr nachschauen, wer ihr seid. Die Eingabe von toot zeigt euch eine Liste der wesentlichen Befehle. Um einen Test-Tröt auf euren Account zu schicken, gebt ihr das ein: toot post 'Hallo Welt'. Mit toot tui öffnet man die Ncurses-Umgebung, in der man seine Timelines lesen und darauf reagieren kann.

Kommen wir zum Adventskalender. Die Idee ist, jeden Tag zu einer bestimmten Zeit, einen Toot zu tröten, der eure Liebsten erfreut. Ob der Inhalt aus netten Worten oder schönen Bildern besteht, bleibt euch überlassen. Damit das möglich ist, wird das zeitlich gesteuerte Versenden von Tröts benötigt, welches von Toot unterstützt wird. So geht es:

toot post 'Advent, Advent, ein Lichtlein brennt' --scheduled-at '2022-12-01T10:00:00.000A'
Toot scheduled for: 2022-12-01T09:00:00.000Z

Das zeitlich versetzte Versenden wird durch die Option --scheduled-at ermöglicht. Als Parameter kommt ein UTC-Timestamp zum Einsatz, welcher so formatiert wird:

Spannend ist hierbei der Buchstabe am Ende (A in meinem Beispiel). Das ist der Time Zone Designator, welcher den zeitlichen Versatz zur Standardzeit (UTC) angibt. Z steht für Zulu Time Zone, welche UTC+0 entspricht. A bedeutet Alpha Time Zone, was UTC+1 entspricht, also unsere Zeitzone (Winterzeit). Oben im Code-Block ist zu erkennen, dass Toot die Eingabe akzeptiert und in Zulu Time umgerechnet hat.

Nun steht den Advents-Tröts nichts mehr im Wege. Zu beachten ist noch, dass die Zeit mindestens 5 Minuten in der Zukunft liegen muss. Jetzt könnt ihr in einem Rutsch eure besinnlichen oder lustigen Adventssprüche vom 1. bis 24. Dezember abschicken:

toot post '1. Dezember: Ein Lichtlein brennt' --scheduled-at '2022-12-01T10:00:00.000A'
toot post '2. Dezember: Alle Jahre wieder' --scheduled-at '2022-12-02T10:00:00.000A'
toot post '3. Dezember: Vom Himmel hoch' --scheduled-at '2022-12-03T10:00:00.000A'
usw.

Ihr könnt nicht nur Texte, sondern auch Anhänge, wie Bilder, tröten:

toot post "hello media" --media path/to/image.png --description "Cool image"

Update vom 16.12.2022

Statt sich mit Zeitzonen bei der --scheduled-at Option herumzuschlagen, kann man auch die --scheduled-in Variante wählen. Damit kann man eine menschenlesbare Zeitvorgabe machen:

--scheduled-in SCHEDULED_IN
    Schedule the toot to be posted after a given amount of time. Examples: "1 day", "2 hours 30 minutes", 
    "5 minutes 30 seconds" or any combination of above. Shorthand: "1d", "2h30m", "5m30s". Must be at 
    least 5 minutes.

Quelle: https://toot.readthedocs.io/en/latest/

Tags

Mastodon, Toot, CLI, Adventskalender

Marco
Geschrieben von Marco am 1. Dezember 2022 um 10:47

Angenommen ich --schedule-at next week und mach dann den Rechner aus für 2 Wochen - wird das rechtzeitig gepostet?

Khtz
Geschrieben von Khtz am 3. Dezember 2022 um 11:52

Das sollte dennoch funktionieren. Folgendes habe ich gerade beobachtet: Via toot habe ich einen Post geplant. Anschließend habe ich mit meinen Smartphone, auf dem Tusky installiert ist (das kann ebenfalls mit geplanten Beiträgen umgehen), in die geplanten Beiträge gesehen. Siehe da: Der via toot geplante Post erscheint auch bei Tusky als geplanter, aber noch nicht veröffentlichter Beitrag. Somit scheint toot den Beitrag direkt zum Server zu senden, dieser kümmert sich dann um die planmäßige Veröffentlichung.

(Warum man dann allerdings diese Funktionalität nicht direkt über das Webinterface nutzen kann, erschließt sich mir nicht ganz...)

Marco
Geschrieben von Marco am 11. Dezember 2022 um 19:18

Danke fürs klarstellen. War mir aus dem Artikel heraus nicht klar ob schedule-at ein "toot" (client) feature, oder ein Mastodon (server) feature ist. Und ja, schade supported das web UI dies nicht.

(Nicht an Khtz gerichtet:) Danke fürs down-voten?

Khtz
Geschrieben von Khtz am 1. Dezember 2022 um 12:29

Somit erklären sich die ganzen geplanten Test-Toots 😆

Danke für den Tip, toot hatte ich vor einiger Zeit mal installiert, jedoch komplett vergessen.

FaBE
Geschrieben von FaBE am 21. Januar 2023 um 21:22

Noch ein Hinweis: Die Schedule-Befehle sind erst seit Version 0.31 vollständig implementiert. Nicht alle Distros und Paketverwaltungen haben die aktuellste Version. Die bekommt man besten über Homebrew.