[PYTHON] Quand j'ai créé un Discord Bot, mes camarades de classe ont détruit mon ordinateur

Le titre est incroyable, mais le contenu est l'histoire de la création normale d'un Discord Bot.

La phrase de ce problème

if not message.author.id == client.user.id:
        ms = message.content  #jugement de la commande d'image
        ms = ms[:6]  #Le jugement est effectué en supprimant uniquement les six premiers caractères de tous les messages
        if ms == "!image":
            overlap = 0
            ms = (message.content[7:])  #ms n'est qu'un message(!Raser l'image)
            filepath1 = "./downloads"  #Pour rejoindre plus tard
            files1 = os.listdir(filepath1)  #J'ai mis tous les noms de répertoires dans des fichiers
            leng = len(files1)  #Déterminez la longueur du tableau de fichiers
            i = 0

            for i in range(leng):
                if ms == files1[i]:
                    overlap = 1
                    break
                i += 1

    if overlap == 1:
        print("J'ai utilisé une image locale sans grattage")  #Pour confirmation
        filepath = './downloads/' + ms + "/"  #Où se trouve le fichier
        files = os.listdir(filepath)  #J'ai mis le nom du contenu du fichier dans une variable
        files = files[0]  #Puisqu'il entre dans un tableau, c'est le premier d'entre eux
        path1 = filepath + files  #Générer le chemin final de l'image
        await message.channel.send(file=discord.File(path1))  #Envoyer l'image

    else:
        print("J'ai gratté car je ne pouvais pas voir l'image localement")  #Pour confirmation
        response = google_images_download.googleimagesdownload()  #Bibliothèque de récupération d'images Google
        arguments = {"keywords": ms, "limit":1,"print_urls":True}#Mot de recherche et nombre de feuilles spécifié
        paths = response.download(arguments)  #Grattage,
        print(paths)  #Journal de sortie
        ms = (message.content[7:])
        filepath = './downloads/' + ms + "/"  #Générer le chemin quel fichier dans le fichier
        files = os.listdir(filepath)  #J'ai mis le nom du contenu du fichier dans une variable
        files = files[0]  #Puisqu'il entre dans un tableau, c'est le premier d'entre eux
        path1 = filepath + files  #Générer le chemin final de l'image
        print(path1)
        await message.channel.send(file=discord.File(path1))  #Envoyer l'image

Puisque les caractères envoyés par l'utilisateur sont placés dans le chemin, l'utilisateur peut spécifier où les enregistrer! !! !! Mon camarade de classe l'a découvert et le contenu de mon ordinateur a été foiré. Des fichiers inutiles ont été créés à divers endroits, le pire est que "..." ← Un fichier avec ce nom a été créé. Ce fichier que je ne comprends pas semble être un bogue dans Windows. "..." Lorsque vous ouvrez ceci, le répertoire précédent s'ouvre. Donc, si vous avez ce fichier dans Desktop, lorsque vous l'ouvrez, vous trouverez Desktop à l'intérieur. De plus, le fichier ne peut pas être supprimé normalement, même avec l'invite de commande Windows ou rm ... '' ... Alors je l'ai effacé avec Cygwin. C'était difficile à effacer. ___ Vous devez absolument arrêter d'exécuter ces services sur votre PC principal ___ Sera ** aux méchants

organisation des fichiers

DiscordBot/  ├ discordbot.py  └ img/   ├ hare.png   ├ harekumorri.png   ├ jikoku.png   ├ kumori.png  └ downloads

Environnement d'exécution

discord.py


import datetime
import io
import os
import time

import aiohttp
import discord
import requests
import schedule
from discord.ext import commands
from google_images_download import google_images_download
from PIL import Image, ImageDraw, ImageFont, ImageTk

#Remplacez par le jeton d'accès de votre bot
TOKEN = "Mon jeton"

#Générer les objets nécessaires à la connexion
client = discord.Client()

#Traitement qui fonctionne au démarrage
@client.event
async def on_ready():
    #Une notification de connexion sera affichée dans le terminal après le démarrage
    print('Vous êtes maintenant connecté')

@client.event
async def on_message(message):

   #Ignorer si l'expéditeur du message est Bot
    if message.author.bot:
        return
    # 「/Traitement qui renvoie "Nyan" lorsque vous dites "neko"
    if message.content == '/neko':
        await message.channel.send('Nyan')
    if message.content == '/konn':
        t_now = datetime.datetime.now().time()
        t_now = str(t_now)
        t_now = t_now[:2]
        print(t_now)
        t_now = int(t_now)
        print(type(t_now))
        print(t_now)

        if 5 <= t_now < 12:
            await message.channel.send('Bonjour')


        elif 12 <= t_now < 18:
            await message.channel.send('Bonjour')

        elif 18 <= t_now < 24:
            await message.channel.send('Bonsoir')

        elif 0 <= t_now < 5:
            await message.channel.send('Il est tard le soir! Allons dormir!')

    if message.content == 'La météo de demain':
        url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'
        api_data = requests.get(url).json()
        weather = api_data['forecasts'][1]
        result = weather["telop"]
        await message.channel.send(api_data['title'] + '\n' 'La météo de demain' + result)
        if result == "Ensoleillé":
            await message.channel.send(file=discord.File('./img/hare.png'))
        elif result == "Nuageux":
            await message.channel.send(file=discord.File("./img/kumori.png "))
        else:
            await message.channel.send(file=discord.File("./img/harekumori.jpg "))

    if message.content == 'La météo d'aujourd'hui':
        url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'
        api_data = requests.get(url).json()
        weather = api_data['forecasts'][0]
        result = weather["telop"]
        await message.channel.send(api_data['title'] + '\n' 'Quel temps fait-il aujourd'hui' + result)
        if result == "Ensoleillé":
            await message.channel.send(file=discord.File('.\\img\\hare.png'))
        elif result == "Nuageux":
            await message.channel.send(file=discord.File(".\\img\\kumori.jpg "))
        else:
            await message.channel.send(file=discord.File(".\\img\\harekumori.png "))

    if message.content == 'Commande top secret>>Caca<<':
        await message.channel.send('https://i.gzn.jp/img/2017/10/19/golden-unko-jewelry/00_m.jpg')

   # if message.content == 'Non':
   #     ar1t = (
   #           '```(≧Д≦)' + '\n' +
 # '....................... ,,, z = ~' '+' 彡 ,, '+' \ n '+
 # '...................., i' ............ "':';:; tsu;, '+' \ n '+
 # '................' '' '' '' ' n '+
 # '.........., / ....... `, Gumi .....:;:,' + '\ n' +
 # '......... / .......... = ヾ, ヾ = ;, z, .......... ‥; ヾ :: ミ' + '\ n' +
 # '....... / ........, r,' ... /. '`ヽ. ヽ. ヽ ........ \ n '+
 # '..... / ......,' -, .` ヽ ..................... ミ; :: 彡;: '+ '\ n' +
 # '...,' ....., Shi'` ヽ ʻi`! ................ ,, 彡; :: Shi: 彡 '+' \ n '+
 # '..; ....., ('  ̄` ヽ / '.............. Shi: Shi ;: Mi :: Shi "' + '\ n' +
 # '´ :::::. ヾ .....  ̄´ ..............' `, simi '+' \ n '+
 # ':::::::::::::. `: ヽ, .................:;
   #           'Nahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh```')
   #     await message.channel.send(ar1t)

    if client.user in message.mentions:
        reply = f'{message.author.mention}appelé?'
        await message.channel.send(reply)

    if message.content == 'Heures du jour':

        #Chargement des images
        img = Image.open("./img/jikoku.png ")
        #Créer une instance de dessin
        draw = ImageDraw.Draw(img)
        #Paramètres de police(Chemin du fichier de police et taille de la police)
        font = ImageFont.truetype("./fonts/BIZ-UDGothicB.ttc", 200)
        #Écrire des lettres

        dt = datetime.datetime.now()
        dt = str(dt)
        dt = (dt[11:-10])
        print(dt)

        draw.text((310, 250), dt, fill=(0, 0, 0), font=font)

        img.save("./img/jikoku1.png ")

        print("ok")

        await message.channel.send(file=discord.File(".\\img\\jikoku1.png "))

    if message.content == 'Augmentation d'impôt':
        await message.channel.send('https://pbs.twimg.com/media/EFUS5YlU0AIAwok?format=jpg&name=small')

    if message.content == 'kusa':
        await message.channel.send(file=discord.File('.\\img\\kusa.jpg'))

    if message.content == 'Enfant mignon':
        await message.channel.send(file=discord.File('.\\img\\1.jpg'))

    if message.content == "Comme c'est gentil":
        await message.channel.send(file=discord.File('.\\img\\good.png'))


    if not message.author.id == client.user.id:
        ms = message.content  #jugement de la commande d'image
        ms = ms[:6]  #Le jugement est effectué en supprimant uniquement les six premiers caractères de tous les messages
        if ms == "!image":
            overlap = 0
            ms = (message.content[7:])  #ms n'est qu'un message(!Raser l'image)
            filepath1 = "./downloads"  #Pour rejoindre plus tard
            files1 = os.listdir(filepath1)  #J'ai mis tous les noms de répertoires dans des fichiers
            leng = len(files1)  #Déterminez la longueur du tableau de fichiers
            i = 0

            for i in range(leng):
                if ms == files1[i]:
                    overlap = 1
                    break
                i += 1

    if overlap == 1:
        print("J'ai utilisé une image locale sans grattage")  #Pour confirmation
        filepath = './downloads/' + ms + "/"  #Où se trouve le fichier
        files = os.listdir(filepath)  #J'ai mis le nom du contenu du fichier dans une variable
        files = files[0]  #Puisqu'il entre dans un tableau, c'est le premier d'entre eux
        path1 = filepath + files  #Générer le chemin final de l'image
        await message.channel.send(file=discord.File(path1))  #Envoyer l'image

    else:
        print("J'ai gratté car je ne pouvais pas voir l'image localement")  #Pour confirmation
        response = google_images_download.googleimagesdownload()  #Bibliothèque de récupération d'images Google
        arguments = {"keywords": ms, "limit":1,"print_urls":True}#Mot de recherche et nombre de feuilles spécifié
        paths = response.download(arguments)  #Grattage,
        print(paths)  #Journal de sortie
        ms = (message.content[7:])
        filepath = './downloads/' + ms + "/"  #Générer le chemin quel fichier dans le fichier
        files = os.listdir(filepath)  #J'ai mis le nom du contenu du fichier dans une variable
        files = files[0]  #Puisqu'il entre dans un tableau, c'est le premier d'entre eux
        path1 = filepath + files  #Générer le chemin final de l'image
        print(path1)
        await message.channel.send(file=discord.File(path1))  #Envoyer l'image

    if message.content == "Histoire":
        files1 = os.listdir("./downloads")
        await message.chnanel.send(files1)
        print("Commande historique")

    if message.content == "!helpC":
        await message.channel.send("rien de spécial")
        
#Lancez Bot et connectez-vous au serveur Discord
client.run(TOKEN)

Recommended Posts

Quand j'ai créé un Discord Bot, mes camarades de classe ont détruit mon ordinateur
J'ai fait un robot discord
J'ai créé un bot Discord en Python qui se traduit quand il réagit
J'ai fait un wikipedia gacha bot
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
J'ai fait mon chien "Monaka Bot" avec Line Bot
J'ai créé un Bot LINE avec Serverless Framework!
Made Mattermost Bot avec Python (+ Flask)
〇✕ J'ai fait un jeu
[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
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
Faisons un robot Discord.
J'ai fait ma propre langue. (1)
J'ai fait un texte Python
J'ai fait ma propre langue (2)
J'ai fait un script pour dire bonjour à mon Koshien
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)
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 bot mou qui m'informe de la température
J'ai créé un site d'apprentissage C ++
J'ai fait un Line-bot avec Python!
J'ai créé ma propre bibliothèque Python
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
[Python] J'ai créé un robot qui me dit la température actuelle lorsque j'entre un nom de lieu sur LINE
[Langage C] Ma locomotive est trop lente ~ J'ai fait une commande sl ~
J'ai créé un nouveau compartiment AWS S3
J'ai créé un docset de tableau de bord pour Holoviews
J'ai touché "Orator" alors j'ai fait une note
J'ai fait un compteur de caractères avec Python
Débutant: j'ai créé un lanceur à l'aide d'un dictionnaire
J'ai fait un interlocuteur comme Siri
J'ai fait une carte hexadécimale avec Python
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 LINE BOT qui renvoie une image de riz terroriste en utilisant l'API Flickr
Un mémo sur lequel je suis tombé par hasard en faisant une citation RT sur Twitter Bot
J'ai créé un robot LINE qui envoie des images recommandées tous les jours à l'heure
[Python] J'ai créé un LINE Bot qui détecte les visages et effectue le traitement de la mosaïque.
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
En Python, j'ai créé un LINE Bot qui envoie des informations sur le pollen à partir des informations de localisation.
Une histoire à laquelle j'étais accro après la communication SFTP avec python