[PYTHON] J'ai fait un robot discord

Déclencheur

Je fais généralement un RPA localement avec du sélénium ou du pyautogui et j'automatise le travail qui comporte de nombreuses procédures ennuyeuses </ s> et cause des erreurs humaines, mais ce sera gênant si cela ne continue pas à fonctionner en ligne. Mais je ne sais pas comment y arriver.

J'ai essayé de toucher Django et Flask, mais je ne comprends toujours pas ce que c'est, alors je l'ai fait avec un discordbot pour le TRPG de ma connaissance et j'ai appris en jouant.

Bot Discord pratique en Python (explication discordante) Il y a un dieu, alors je l'ai utilisé comme référence.

Traitement de base

discord.py


Abréviation
if message.content == '/yagi':
    result = "Mmm"
    await message.channel.send(result)

Avec cela, j'ai pu essentiellement renvoyer une réponse à la commande. Ensuite, vous pouvez répondre à la commande / yagi.

Et s'il y a un jet de dés -Spécifier une commande ・ Ecrire le processus ·revenir Vous pouvez le compléter avec. (Pensée amateur)

Essayez de lancer les dés

discord.py


Abréviation
    s = message.content
    dicecheck  = re.match('^/[1-9]{1}[D]', s)
    if dicecheck:
        dice = 1
    else:
        dice = 0

S'il est écrit comme / nDN, il est jugé qu'il s'agit d'un jet de dé.

discord.py


Abréviation
    if dice > 0:
        await message.channel.send('Ne le manquez pas!')
        i = 0
        count = int(message.content[1:2]) + 1
        dim = int(message.content[3:])
        lst = []
        for i in range(1, count):
             rand_num =  random.randint(1, dim)
             lst.append(rand_num)
        await message.channel.send(lst)
  • Promettez que n est 1 à 9 et N est votre numéro préféré dans nDN. C'est assez brutal, mais je vais mettre en place un processus pour lancer un dé N-side n fois. Est-ce que le hasard renvoie des nombres vraiment aléatoires? Je vais quitter la perspective cardocept pour le moment.

Oh, jetons un sort magique qui disparaîtra.

J'ai essayé de le déployer.

キャプチャ.PNG

Ouais, je touche. C'est pourquoi j'ai pu le faire sans problème jusqu'à présent, je vais donc essayer de voir si le sélénium fonctionne avec le bot déployé dans heroku.

Essayez d'utiliser du sélénium

discord.py


Abréviation
    options = Options()
    options.binary_location = '/app/.apt/usr/bin/google-chrome'
    options.add_argument('--headless')
    options.add_argument('--disable-gpu')
    browser = webdriver.Chrome(options=options)
    browser.implicitly_wait(10)

En conséquence, j'ai pu accepter cela. (L'ajout de sélénium et de chrome à heroku est requis séparément) Après cela, je sens que je ferai de mon mieux pour find_element.

Ensuite, vous pouvez faire une belle soupe, non? Quand

Essayez une belle soupe

discord.py


Abréviation
elif message.content == '/Secouer':
    res = requests.get('http://www.jma.go.jp/jp/quake/00000000093.html')
    soup = BeautifulSoup(res.text, 'html.parser')
    result = soup.select_one('table.textframe').get_text(strip=True)
    await message.channel.send(result)
  • On suppose que les informations sismiques de l'Agence météorologique seront extraites de l'échantillon. Maintenant, ce n'est pas grave si un tremblement de terre se produit pendant la session! Ne paniquez pas / secouez-le et vous le saurez! Je veux dire que ça n'a pas tremblé Reconnaître.

Après cela, j'ai pensé qu'il serait pratique d'ouvrir un navigateur, mais webbrowser.open_new est inutile (naturellement ...) Alors, trichons en en faisant une URL si quelque chose comme le format URL de Discord est écrit ici. Il suffit de bouger!

Je veux ouvrir un navigateur

discord.py


Abréviation
elif message.content == '/Chercher':
    await message.channel.send("https://www.google.co.jp")

Solution. Le muscle résout tout.

Ainsi, même un amateur qui ne connaissait pas heroku ou ne se déplaçait pas du tout pouvait le faire. Qiita est le meilleur ...

Après cela, vous pouvez l'étendre en rendant la partie de commande floue ou en y ajoutant un traitement. Je ne fais pas de TRPG, donc je ne sais pas quelle est la fonction ...

Recommended Posts

J'ai fait un robot discord
J'ai fait un wikipedia gacha bot
〇✕ J'ai fait un jeu
Quand j'ai créé un Discord Bot, mes camarades de classe ont détruit mon ordinateur
J'ai créé un bot de lecture de chat Discord en imitant l'apparence
J'ai fait un robot de remplacement de tampon avec une ligne
Made Mattermost Bot avec Python (+ Flask)
Faisons un robot Discord.
J'ai fait un texte Python
J'ai créé un bot Discord en Python qui se traduit quand il réagit
[AWS] J'ai créé un BOT de rappel avec LINE WORKS
J'ai fait un Twitter BOT avec GAE (python) (avec une référence)
J'ai créé un bot de livre de compte de ménage avec LINE Bot
J'ai essayé de faire LINE BOT avec Python et Heroku
J'ai créé un script de traduction basé sur CUI (2)
J'ai fait une loterie avec Python.
J'ai créé un script de traduction basé sur CUI
J'ai créé un démon avec Python
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)
J'ai créé un nouveau compartiment AWS S3
J'ai créé un docset de tableau de bord pour Holoviews
J'ai fait un programme de gestion de la paie en Python!
J'ai fait un compteur de caractères avec Python
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
J'ai créé un robot Twitter qui marmonne le Pokémon capturé par #PokemonGO
J'ai créé un bot Twitter avec Go x Qiita API x Lambda
J'ai fait un script pour afficher des pictogrammes
J'ai fait un bot mou qui m'informe de la température
J'ai fait un jeu de vie avec Numpy
J'ai fait un générateur Hanko avec GAN
J'ai créé un outil d'estampage automatique du navigateur.
Après avoir étudié Python3, j'ai créé un Slackbot
J'ai fait un jeu rogue-like avec Python
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une bibliothèque pour l'assurance actuarielle
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
J'ai créé un fichier de dictionnaire python pour Neocomplete
J'ai fait une prévision météo de type bot avec Python.
J'ai créé un outil utile pour Digital Ocean
J'ai fait un truc fou appelé tuple typé
J'ai créé un outil de collecte de configuration de routeur Config Collecor
J'ai fait un simple portefeuille de Bitcoin avec pycoin
J'ai créé un téléchargeur pour l'expression distribuée par mot
J'ai créé un outil pour compiler nativement Hy
J'ai créé un outil pour obtenir de nouveaux articles
J'ai essayé d'utiliser Linux avec Discord Bot
J'ai fait un graphique de nombres aléatoires avec Numpy
Nous avons créé un produit de prévention du télétravail.
J'ai fait un simple lecteur RSS ~ Edition C ~
J'ai créé un programme cryptographique César en Python.
J'ai fait un jeu de cueillette avec Python
Création du wrapper d'API Qiita Python "qiipy"
J'ai créé un LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
Discord Bot Memorandum ① Création de bot
J'ai créé un Line Bot qui utilise Python pour récupérer les e-mails non lus de Gmail!