Da wir in Python programmieren, müssen wir zunächst ** Python ** vorbereiten. Um MastodonBot zu erstellen, benötigen Sie außerdem eine Bibliothek [^ 2] zum Erwerb der API [^ 1], die von einer erstaunlichen Person namens ** mastodon.py ** erstellt wurde. Bereiten Sie die Bibliothek mit ** pip ** vor, was die Installation der Python-Bibliothek vereinfacht. Grundsätzlich ist pip verfügbar, wenn Sie Python installieren. Es ist notwendig, ein ** Zugriffstoken ** im Bot-Code vorzubereiten, um zu bestimmen, welche Instanz [^ 3] und welches Konto sich verhalten soll. Damit
1-1. Python 1-2. pip 2. ** mastodon.py (Bibliothek) ** 3. ** Zugriffstoken **
Ist notwendig. Bereiten wir uns in der richtigen Reihenfolge vor.
https://www.python.org/downloads/ Laden Sie Python von dieser Site herunter und installieren Sie es. Grundsätzlich ist es die neueste Version, und Sie können die für das Betriebssystem Ihrer Umgebung (Windows, Mac usw.) herunterladen. Beginnen wir mit der zuvor installierten Datei und führen Sie das Setup durch. Aktivieren Sie etwas wie "Python 3.X.X zu PATH hinzufügen" und lassen Sie es durch PATH laufen. [^ 4] Drücken Sie dann Jetzt installieren.
Ich denke, die meisten Leute werden diesen Prozess durchlaufen, weil er im Grunde in Python installiert zu sein scheint. Lassen Sie uns überprüfen, ob der Pip richtig eingesetzt ist.
Starten Sie das im Betriebssystem bereitgestellte Terminal. Es ist die "Eingabeaufforderung" in Windows. Wenn Sie ein Windows-Benutzer sind, können Sie die Eingabeaufforderung starten, indem Sie "Ausführen durch Angeben einer Datei" mit "Win + R" starten und "cmd" eingeben. Wenn Sie nicht wissen, wie Sie starten sollen, googeln Sie bitte jeden einzelnen. (Verlassen)
Wenn Sie im Terminal python -m pip -V
eingeben (achten Sie darauf, den Fall nicht zu verwechseln) und die Version von pip herauskommt, ist pip bereits enthalten.
** Wenn pip nicht enthalten ist ** Bitte lesen Sie den folgenden Artikel. https://qiita.com/Chino_Kafuu/items/6be7aa6798c7d7dcc129
Geben Sie einfach pip install mastodon.py
in das Terminal ein. Pip ist bequem.
Bitte melden Sie sich bei dem Konto an, das Sie als Bot mit der Instanz betreiben möchten, die Sie als Bot betreiben möchten. Wenn Sie nicht wissen, was Sie sagen, greifen Sie mit Ihrem Browser auf Mastodon zu, das Sie immer verwenden. Drücken Sie auf Benutzereinstellungen (Zahnradsymbol) und dann auf die Registerkarte "Entwicklung". Es gibt eine Schaltfläche zum Erstellen einer neuen App. Drücken Sie sie also. Bitte wie der App-Name. Bitte beachten Sie jedoch, dass jeder den App-Namen sehen kann. Sie können das Zugriffstoken überprüfen, indem Sie den App-Namen speichern und erneut drücken. Mit diesem Zugriffstoken können Sie festlegen, dass sich das Konto wie gewünscht verhält.
Schließlich wurde die Umgebung für die Herstellung von Mastodon Bot fertiggestellt. Erstellen Sie einen Ordner für Bot, um die Organisation zu vereinfachen, und erstellen Sie dort eine Python-Datei wie MastodonBot.py. Wir werden den Bot-Code in diese Datei schreiben. Öffnen Sie diese Datei mit Ihrem bevorzugten Texteditor [^ 5]. Kopieren Sie zunächst den folgenden Code und fügen Sie ihn ein, um das Zugriffstoken und die URL zu ändern.
Bot.py
from mastodon import Mastodon, StreamListener
#Das Hauptverhalten von Bot wird hier beschrieben.
class Bot(StreamListener):
#Ein Ort, an dem sich Bot vorbereitet. Sogenannte Magie.
def __init__(self):
super(Bot, self).__init__()
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
pass
def Login():
mastodon = Mastodon(
access_token = "*******************", #Legen Sie den Zugriffstoken ab, den Sie gerade hier erhalten haben.
api_base_url = "https://mastodonexample.com" #Schreiben Sie hier die URL der Mastodon-Instanz
)
return mastodon
def LTLlisten(mastodon):
bot = Bot()
mastodon.stream_local(bot)
#Verarbeitung zum Anmelden
mastodon = Login()
LTLlisten(mastodon)
Die Funktion on_update in diesem Code wird gelesen, wenn die LTL (lokale Zeitleiste) ausgeführt wird. Und die Informationen des neuen Toots, die zu LTL geflossen sind, werden der Statusvariablen als JSON-Datei zugewiesen [^ 6]. Wir werden den Pass-Teil in diesem Code neu schreiben und ihn hinzufügen, um den Bot-Prozess zu erstellen! !!
Lassen Sie uns zunächst den Text des neuen Toots im Terminal anzeigen. Lassen wir die Informationen im Text im Status weg. Sie können die Informationen des Textes erhalten, indem Sie "status [" content "]" schreiben. Lassen Sie es uns mit der Druckfunktion anzeigen.
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
print(status['content'])
Wenn Sie dies im Terminal tun, wird der Text im Terminal angezeigt. Aber wenn ich es mir ansehe
<p> Yaharo </ p>
Es hat ein HTML
-Tag wie dieses. Python hat eine Methode namens replace, die einen Teil der Zeichenfolge ersetzt. Verwenden wir es, um das
-Tag zu entfernen.
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
print(content)
Wenn Sie es so schreiben, verschwindet das
-Tag und der Text sieht besser aus.
Damit können die Informationen im Text extrahiert werden.
Lassen Sie uns endlich einen Papagei-Rückgabe-Bot machen.
Es gibt eine Funktion, die den Bot zum Tooten bringt. Es ist mastodon.toot ()
.
Wenn Sie eine Zeichenfolge in this () einfügen, wird der Satz mit einem Toot versehen.
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
mastodon.toot('Das ist interessant!') #Bitte tun Sie dies nicht, da es ärgerlich ist, wenn Sie es so ausführen, wie es ist.
Mit diesem Code wird jedoch jedes Mal, wenn jemand toot, etwas zu einem nervigen Bot. Lassen Sie uns die Bedingungen für die Bewegung festlegen und steuern.
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if 'interessant?' in content:
mastodon.toot('Das ist interessant!')
Ist die bedingte Anweisung "interessant für den Inhalt der Zeichenfolge"? Die Bedingung ist, ob `enthalten ist oder nicht. Jetzt ist es kein nerviger Bot mehr. Lassen Sie uns den Text, den Sie gerade erhalten haben, notieren!
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if '!Parrot' in content:
mastodon.toot(content) #Bitte tun Sie dies nicht, da es ärgerlich ist, wenn Sie es so ausführen, wie es ist.
Ich habe einen befehlsähnlichen Auslöser vorbereitet, mit dem der Bot wie ein Bot reagiert. Wenn Sie es jedoch so ausführen, wie es ist, wird es schwierig. (Es ist ärgerlich, aber Sie können es sehen, wenn Sie es versuchen.) Was wird passieren? Wenn der Bot neu aufgerufen wird, bewegt sich die LTL. Lesen Sie daher die Funktion on_update erneut. Der Körper sollte "! Parrot" enthalten, damit der Bot auf den Toot des Bots reagiert. Wiederholen Sie diesen Vorgang und verursachen Sie für immer eine Endlosschleife, bis der Bot stoppt. Lassen Sie uns dies verhindern. Es gibt mehrere Problemumgehungen, aber ich zeige Ihnen eine davon.
Bot.py
#Wenn sich in der lokalen Zeitleiste des Kontos eine Bewegung befindet, wird das darin enthaltene Verhalten mit den Informationen des neuen Toots gelesen.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if '!Parrot' in content:
content = content.replace('!Parrot', '')
mastodon.toot(content)
Entfernen wir den Triggerteil aus der zuvor eingeführten Ersetzungsmethode. Wenn ein Toot mit der Zeichenfolge '! Parrot' in die LTL fließt, wird er jetzt als Papagei zurückgegeben. Damit ist der Papageienrückgabe-Bot abgeschlossen! !! !!
Zusätzlich zu mastodon.toot ()
gibt es viele Funktionen, die es Bot ermöglichen, sich auf verschiedene Arten zu verhalten.
Wenn Sie mit Bezug auf die Referenz hier studieren, können Sie Ihren Lieblingsbot erstellen.
Japanische Übersetzung mastodon.py Referenz
Ist Ihre Bestellung ein Mastodon Bot? Für Erstbenutzer, die jetzt umziehen möchten ☕ https://qiita.com/Chino_Kafuu/items/6be7aa6798c7d7dcc129
[^ 1]: Ein Tool-ähnliches, das Daten in einer Datei wie json [^ 6] zurückgibt, um die externe Manipulation der Daten zu erleichtern.
[^ 2]: Eine Datei, die verschiedene nützliche Funktionen in Python sammelt.
Funktionen können verwendet werden, indem Sie als "xxx importieren" oder "aus xxx importieren yyy, zzz" schreiben.
[^ 3]: Jeder Mastodon-Server.
[^ 4]: Wenn Sie den PATH übergeben und den Python-Befehl im Terminal verwenden, können Sie ihn einfach durch Schreiben von "Python" verwenden, ohne den Speicherort der Python-Datei zu schreiben. Betrachten Sie es als eine Magie, die nützlich sein wird, wenn Sie es nicht verstehen.
[^ 5]: Ein Tool zum Schreiben von Programmier- und anderem Code. Notepad ist ebenfalls im Texteditor enthalten, es gibt jedoch kostenlose und praktische Texteditoren wie VSCode, Vim, Atom. Verwenden wir also den gewünschten. Übrigens, wenn Sie Python herunterladen, scheint der Texteditor IDLE für Python enthalten zu sein.
[^ 6]: Eine der Methoden zur Beschreibung einer Datei, in der Daten gespeichert sind. Ich sehe es oft im Internet.