Multi-Instance, Multi-Account - MastodonHelper mit einem kleinen Update

Bisher konnte der MastodonHelper nur für einen Account auf einer Instanz konfiguriert werden und auch die access-token wurden so gespeichert. Das habe ich geändert.

Für einen Test auf der Mastodon-Instanz, auf der ich beheimatet bin, musste ich Toots über einen bestimmten Zeitraum erstellen. Das wollte ich nicht mit meinem regulären Account machen, also habe ich einen neuen Account angelegt (und den als Bot gekennzeichnet). Die Sichtbarkeit der Toots war nicht wichtig (daher habe ich die nicht gelistet) und Follower waren auch nicht wichtig.

Nun war aber der MastodonHelper zwar grundsätzlich mal dafür angedacht mehr als einen Account nutzen zu können, aber es fehlten noch die passenden Implementationen.

Das habe ich mit dem letzten Commit erledigt.

In der mastobot-config.yaml kann man nun unter dem Abschnitt instances nicht nur default konfigurieren, sondern mehrere Abschnitte hinterlegen.

Das kann so aussehen:

instances:
  default:
    url: https://social.tchncs.de
    username: ~  
    login: true
  mybot_on_tchncs:
    url: https://social.tchncs.de
    username: [email protected]  
    login: true

Die Default Konfig bleibt, wie ihr es eingerichtet habt. Dazu können beliebig weitere Instanzen mit Usern hinzugefügt werden.

Das muss man aber dann auch explizit im Python Script dann so aufrufen. Dazu gibt es den neuen Parameter instance_id (der mit default vorbelegt ist):

mastodon = mastobot.MastodonHelper.open_or_create_app(
    config_yaml='mastobot-config.yaml',
    instance_id="mybot_on_tchncs",
    login=True
)

Da login=True gesetzt ist, wird ein Account-Login über den Username gefordert. Ihr meldet euch im Terminal also einmal an. Der Access-Token eurer Anmeldung wird dann im home-Ordner gespeichert. Das bedeutet, bei weiteren Aufrufen des Script gibt es keine Interaktion mehr: das Script meldet sich automatisch mit dem Access-Token an.

Ich musste dafür auch die Dateinamen der Dateien ändern, die die secrets und tokens speichern. Das passt aber weiter zu dem bisherigen Verhalten von dem MastodonHelper.

Man kann also weiterhin auch den einfachen Aufruf nutzen (was die default-Konfiguration nutzt):

mastodon = mastobot.MastodonHelper.open_or_create_app(
    config_yaml='mastobot-config.yaml',
    login=True
)