Mein erster Mastodon Bot

Ein süsser kleiner Roboter

So einen Bot erstellen wir jetzt. Also fast. (Bild von Alexandra_Koch auf Pixabay)

Neulich hatte ich die Idee, einen Mastodon Bot zu erstellen, der zweimal am Tag dazu einlädt, das Vaterunser zu beten. So schwer kann es ja nicht sein, einen Bot zu erstellen, dachte ich mir. Und wie immer gilt, wenn man weiss wie, dann geht es ganz einfach … 😉

Gerne teile ich darum hier mein erarbeitetes Wissen mit dir.

Also als Erstes brauchst du ein Mastodon-Konto. Wähle dazu einen für dich passenden Server auf joinmastodon.org aus und registriere dich dann dort. Beim frisch erstellten Konto setzt du bei "Dieses Profil ist automatisiert" noch ein Häkchen. 

Dann installierst du auf einem Rechner, der immer läuft, den toot - Mastodon CLI client. Ich habe toot via Docker auf meinem Raspberry Pi installiert. Vielleicht mache ich dazu mal noch eine separate Anleitung. Du kannst aber toot einfach via Terminal auf einem Linux-Rechner oder via Homebrew auch auf einem Mac installieren. Wenn die Installation abgeschlossen ist, kannst du "toot login" im Terminal eingeben. Darauf wirst du aufgefordert, die URL zu deiner Mastodon Instanz einzugeben. Das sieht dann so aus:

$ toot login
Enter instance URL [https://mastodon.social]: https://io.mwl.io
This authentication method requires you to log into your Mastodon instance in
your browser, where you will be asked to authorize toot to access your
account. When you do, you will be given an authorization code which you need
to paste here.

Als Nächstes kopierst du den generierten Link in deinen Browser. Darauf erhälst du im Browser einen Authorization Code den du wiederum kopierst und im Terminal eingibst. Die Frage "Open Link in default browser?" kannst du davor einfach mit n beantworten. 

Login URL:
https://io.mwl.io/oauth/authorize/?response_type=code&redirect_uri=...
Open link in default browser? [Y/n]: n
Authorization code: ...
✓ Successfully logged in.

Ab sofort kannst du nun von deinem Terminal aus einen Tröt versenden. Mach mal einen Test:

toot post "hello there"

Wenn du jetzt in deinem Mastodon Konto nachschaust, wirst du da deinen soeben gesendeten Tröt finden. Soweit so gut. Jetzt wollen wir aber ja, dass automatisch Tröts gesendet werden. Darum kümmern wir uns jetzt.

Erstelle dazu pro unterschiedlicher Tröt, der versendet werden soll, eine Textdatei. Ich nutze dafür den Editor Nano.

nano nachricht1.txt

Im Editor, der sich jetzt öffnet, kannst du deinen Text inklusiv Tags eingeben. Mit [Control]+X und dann Y kannst du Nano beenden und die Datei speichern.

Als Nächstes erstellen wir einen Script. Das machen wir wieder mit Nano.

nano script1.sh

Hier geben wir nun folgenden Text ein

#!/bin/sh
cat /nachricht1.txt | toot post

Pro Textdatei erstellen wir einen Script und mit folgendem Befehl machen wir die Scripte ausführbar.

chmod +x script1.sh

Wenn du testen möchtest, ob dein Script funktioniert, dann gib folgenden Befehl ein.

./script1.sh

Wenn alles geklappt hat, wirst du auf Mastodon deinen neuen Tröt finden.

Jetzt können wir mit Cron noch die Zeitpunkte festlegen, wann welcher Script und damit auch der Tröt rausgehauen werden soll. Gib dafür folgendes ein:

crontab -e

Hier können wir nun festlegen, ob der Tröt zum Beispiel alle 6 Stunden gesendet werden soll, oder jeden Tag zu einer festen Uhrzeit. Ich zum Beispiel will täglich meinen Tröt 1 um 6.30 Uhr und meinen Tröt 2 um 21 Uhr versenden. Mein Eintrag sieht dann so aus.

30 6 * * * /script1.sh
00 21 * * * /script2.sh

Um die richtigen Werte zu finden, empfehle ich dir zum Beispiel den Cron expression generator.

Ok, damit hätten wir es geschafft. Wir haben ein Mastodon Konto eröffnet, den toot - Mastodon CLI client installiert, einen oder mehrere Tröts in Textdateien erfasst, jeweils einen Script dazu erstellt und dann auch alles per Cron automatisiert.  Wenn du alles richtig gemacht hast, dann werden zu der von dir festgelegten Zeit die von dir gewünschten Tröts gesendet. 

Evtl. lohnt es sich auch noch kurz, zu prüfen, ob die Uhrzeit deines Rechners stimmt. Bei mir war zuerst die Zeitzone noch falsch eingestellt. 

Sollte einer der Befehle oben nicht gehen, kannst du versuchen, "sudo" voranzustellen, also zum Beispiel sudo chmod +x script1.sh.

Kommentare: 0

Interesse an einer Diskussion? Schreibe einen Kommentar.

Image




0 / 5000

Die E-Mail-Adresse wird nicht veröffentlicht noch an Dritte weitergegeben. In deinem Text kannst du *Kursivschrift*, **Fettschrift** und [Links](http://example.org) verwenden. Der Kommentar wird moderiert und so bald wie möglich freigeschaltet.