Création d'un bot Discord en Python. Partie 1

Versions de l'auteur

Python: 3.8.2

discord.py: 1.3.3



Salutations, Khabrovites et autres internautes. Aujourd'hui, je vais commencer une série d'articles consacrés à la création d'un bot Discord en utilisant la bibliothèque discord.py. Nous envisagerons de créer à la fois un bot primitif et un bot «avancé» avec des modules. Dans cet article, nous allons créer une commande standard et une autre petite commande. Commençons!



Créer un bot et obtenir un jeton



Pour ajouter un bot au serveur, vous devez créer votre propre application et copier l'ID client dans l'onglet Informations générales.





Ici, nous remplaçons CLID par l'ID client précédemment copié.



https://discordapp.com/oauth2/authorize?&client_id=CLID&scope=bot&permissions=8


Dans l'onglet Bot, créez un bot et copiez le jeton.





Codage



Installez la bibliothèque elle-même.



pip install discord


Créez un fichier config.py (c'est plus pratique) et créez-y un dictionnaire.



settings = {
    'token': ' ',
    'bot': ' ',
    'id': Client ID ,  ,
    'prefix': ' '
}


Nous créons un fichier principal, le nom peut être n'importe quoi.

Nous importons des bibliothèques et notre fichier de configuration:



import discord
from discord.ext import commands
from config import settings


Créez un bot "corps", le nom peut être n'importe lequel:



bot = commands.Bot(command_prefix = settings['prefix']) #       settings,      prefix.


Commençons à écrire le code principal.



@bot.command() #    pass_context,        .
async def hello(ctx): #      ctx.
    author = ctx.message.author #   author      .

    await ctx.send(f'Hello, {author.mention}!') #     ,    author.


À la fin, démarrez le bot avec:



bot.run(settings['token']) #    settings   token,   


Code complet
import discord
from discord.ext import commands
from config import settings

bot = commands.Bot(command_prefix = settings['prefix'])

@bot.command() #    pass_context,        .
async def hello(ctx): #      ctx.
    author = ctx.message.author #   author      .
    await ctx.send(f'Hello, {author.mention}!') #     ,    author.

bot.run(settings['token']) #    settings   token,   


Ça devrait ressembler à ça:





Tutoriel bonus!



Faisons une conclusion d'images aléatoires avec des renards

Pour ce faire, nous importons quelques bibliothèques supplémentaires:



import json
import requests


Commençons à écrire la commande.



@bot.command()
async def fox(ctx):
    response = requests.get('https://some-random-api.ml/img/fox') # Get-
    json_data = json.loads(response.text) #  JSON

    embed = discord.Embed(color = 0xff9900, title = 'Random Fox') #  Embed'a
    embed.set_image(url = json_data['link']) #   Embed'a
    await ctx.send(embed = embed) #  Embed


Ça devrait ressembler à ça:





la fin



Ceci termine la partie 1. Partie 2 à venir.




All Articles