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.
Angenommen ich
--schedule-at next week
und mach dann den Rechner aus für 2 Wochen - wird das rechtzeitig gepostet?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...)
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?
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.
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.