--Faites un robot pour renvoyer le perroquet
Tout d'abord, puisque nous programmons en Python, nous devons préparer ** Python **. De plus, pour créer MastodonBot, vous avez besoin d'une bibliothèque [^ 2] pour obtenir l'API [^ 1] préparée par une personne incroyable appelée ** mastodon.py **. Préparez la bibliothèque en utilisant quelque chose appelé ** pip **, ce qui facilite l'installation de la bibliothèque Python. Fondamentalement, pip est disponible lorsque vous installez Python. Il est nécessaire de préparer un ** jeton d'accès ** dans le code du Bot pour déterminer quel compte [^ 3] de quelle instance se comportera comme écrit. Donc
1-1. Python 1-2. pip 2. ** mastodon.py (bibliothèque) ** 3. ** Jeton d'accès **
Est nécessaire. Préparons-nous dans l'ordre.
https://www.python.org/downloads/
Téléchargez et installez Python à partir de ce site. En gros, c'est la dernière, et vous pouvez télécharger celle pour le système d'exploitation de votre environnement (Windows, Mac, etc.).
Commençons le fichier installé plus tôt et effectuons la configuration. Cochez quelque chose comme Ajouter Python 3.X.X à PATH
et laissez-le passer par le PATH. [^ 4] Appuyez ensuite sur Installer maintenant.
Je pense que la plupart des gens passeront par ce processus car il semble être essentiellement installé en Python. Vérifions si le pip est correctement inséré.
Démarrez le terminal fourni dans le système d'exploitation. C'est "l'invite de commande" dans Windows. Pour les utilisateurs de Windows, démarrez «Exécuter en spécifiant un fichier» avec «Win + R» et tapez «cmd» pour l'exécuter, et vous pouvez démarrer l'invite de commande. Si vous ne savez pas comment démarrer, veuillez rechercher chacun d'eux sur Google. (Abandonné)
Si vous tapez python -m pip -V
(attention à ne pas confondre le cas) dans le terminal et que la version de pip sort, pip est déjà inclus.
** Si pip n'est pas inclus ** Veuillez vous référer à l'article suivant. https://qiita.com/Chino_Kafuu/items/6be7aa6798c7d7dcc129
Tapez simplement pip install mastodon.py
dans le terminal. pip est pratique.
Veuillez vous connecter au compte que vous souhaitez exploiter en tant que Bot avec l'instance que vous souhaitez exploiter en tant que Bot. Si vous ne savez pas ce que vous dites, veuillez accéder à Mastodon, que vous utilisez toujours, avec votre navigateur.
Appuyez sur Préférences utilisateur (icône d'engrenage) et appuyez sur l'onglet Développement
.
Il y a un bouton pour créer une nouvelle application, alors appuyez dessus. Veuillez aimer le nom de l'application. Cependant, veuillez noter que tout le monde peut voir le nom de l'application. Vous pouvez vérifier le jeton d'accès en enregistrant et en appuyant à nouveau sur le nom de l'application.
Vous pouvez utiliser ce jeton d'accès pour que le compte se comporte comme vous le souhaitez.
Enfin, l'environnement de création de Mastodon Bot est terminé. Créez un dossier pour Bot pour faciliter l'organisation et créez un fichier python comme MastodonBot.py. Nous écrirons le code Bot dans ce fichier. Ouvrez ce fichier avec votre éditeur de texte préféré [^ 5]. Tout d'abord, copiez et collez le code ci-dessous pour modifier le jeton d'accès et l'URL.
Bot.py
from mastodon import Mastodon, StreamListener
#Le comportement principal de Bot est décrit ici.
class Bot(StreamListener):
#Un endroit où Bot se prépare. La soi-disant magie.
def __init__(self):
super(Bot, self).__init__()
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
pass
def Login():
mastodon = Mastodon(
access_token = "*******************", #Placez le jeton d'accès que vous venez d'obtenir ici.
api_base_url = "https://mastodonexample.com" #Écrivez l'URL de l'instance Mastodon ici
)
return mastodon
def LTLlisten(mastodon):
bot = Bot()
mastodon.stream_local(bot)
#Traitement pour se connecter
mastodon = Login()
LTLlisten(mastodon)
La fonction on_update dans ce code est lue lorsque le LTL (chronologie locale) s'exécute.
Et les informations du nouveau toot qui ont coulé vers LTL sont affectées à la variable status sous forme de fichier json [^ 6].
Nous réécrirons la partie pass
dans ce code et l'ajouterons pour créer le processus Bot! !!
Tout d'abord, affichons le texte du nouveau toot dans le terminal.
Oublions les informations dans le texte dans le statut. Vous pouvez obtenir les informations du texte en écrivant status ['content']
.
Affichons-le avec la fonction d'impression.
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
print(status['content'])
Si vous faites cela dans le terminal, le texte apparaîtra dans le terminal. Mais quand je le regarde
<p> Yaharo </ p>
Il a une balise HTML
comme celle-ci. python a une méthode appelée replace qui remplace une partie de la chaîne. Utilisons-le pour supprimer la balise
.
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
print(content)
Si vous l'écrivez comme ceci, la balise
disparaîtra et le texte sera meilleur. Avec cela, les informations dans le texte peuvent être extraites. Faisons enfin un robot de retour de perroquet. Il y a une fonction qui rend le Bot toot. C'est «mastodon.toot ()». Si vous mettez une chaîne de caractères dans this (), la phrase sera tootée.
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
mastodon.toot('C'est intéressant!') #Veuillez ne pas le faire car ce sera ennuyeux si vous l'exécutez tel quel.
Cependant, avec ce code, chaque fois que quelqu'un toot, quelque chose devient un Bot ennuyeux. Fixons les conditions du mouvement et contrôlons-le.
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if 'intéressant?' in content:
mastodon.toot('C'est intéressant!')
L'instruction conditionnelle est-elle «intéressante dans le contenu de la chaîne»? La condition est de savoir si «est inclus ou non. Maintenant, vous n'êtes plus un bot ennuyeux. Let's toot le texte que vous venez de recevoir!
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if '!Parrot' in content:
mastodon.toot(content) #Veuillez ne pas le faire car ce sera ennuyeux si vous l'exécutez tel quel.
J'ai préparé un déclencheur de type commande que le Bot réagit comme un Bot. Cependant, si vous l'exécutez tel quel, ce sera difficile. (C'est ennuyeux, mais vous pouvez le voir lorsque vous l'essayez.) Que va-t-il se passer? Lorsque le Bot est nouvellement tooté, le LTL se déplacera, alors lisez à nouveau la fonction on_update. Le corps doit contenir «! Parrot», de sorte que le Bot réagit au toot du Bot. Répétez ceci et créez une boucle infinie pour toujours jusqu'à ce que le Bot s'arrête. Empêchons cela. Il existe plusieurs solutions de contournement, mais je vais vous en montrer une.
Bot.py
#S'il y a un mouvement dans la chronologie locale du compte, le comportement à l'intérieur est lu avec les informations du nouveau toot.
def on_update(self, status):
content = status['content'].replace('<p>', '').replace('</p>', '')
if '!Parrot' in content:
content = content.replace('!Parrot', '')
mastodon.toot(content)
Supprimons la partie déclencheur de la méthode de remplacement introduite précédemment. Lorsqu'un toot contenant la chaîne '! Parrot' s'écoule dans le LTL, il est maintenant renvoyé en tant que perroquet. Ceci termine le retour du perroquet Bot! !! !!
En plus de mastodon.toot ()
, il existe de nombreuses fonctions qui permettent à Bot de se comporter de différentes manières.
Si vous étudiez en référence à la référence ici, vous pourrez créer votre Bot préféré.
Référence mastodon.py traduction japonaise
Votre commande est-elle un robot Mastodon? Pour les nouveaux utilisateurs qui souhaitent déménager maintenant ☕ https://qiita.com/Chino_Kafuu/items/6be7aa6798c7d7dcc129
[^ 1]: Un outil semblable à un outil qui renvoie des données dans un fichier tel que json [^ 6] pour faciliter la falsification des données en externe.
[^ 2]: Un fichier qui rassemble diverses fonctions utiles en python.
Les fonctions peuvent être utilisées en écrivant comme «import xxx» ou «from xxx import yyy, zzz».
[^ 3]: Chaque serveur Mastodon.
[^ 4]: Si vous passez le PATH, lorsque vous utilisez la commande python dans le terminal, vous pouvez l'utiliser simplement en écrivant python
sans écrire l'emplacement du fichier python. Pensez-y comme une magie qui vous sera utile si vous ne la comprenez pas.
[^ 5]: Un outil utilisé pour écrire de la programmation et d'autres codes. Notepad est également inclus dans l'éditeur de texte, mais il existe des éditeurs de texte gratuits et pratiques tels que VSCode, Vim, Atom, alors utilisons celui que vous aimez. Au fait, lorsque vous téléchargez Python, il semble que l'éditeur de texte IDLE pour Python soit inclus.
[^ 6]: une des méthodes de description d'un fichier qui stocke des données. Je le vois souvent sur le Web.
Recommended Posts