Creando un bot de Discord en Python. Parte 1

Versiones del autor

Versión de Python: 3.8.2

versión discord.py: 1.3.3



Saludos, Khabrovites y otros usuarios de Internet. Hoy comenzaré una serie de artículos dedicados a la creación de un bot de Discord usando la biblioteca discord.py. Consideraremos crear tanto un bot primitivo como un bot "avanzado" con módulos. En este artículo, haremos un comando estándar y otro pequeño comando. ¡Empecemos!



Creando un bot y obteniendo un token



Para agregar un bot al servidor, debe crear su propia aplicación y copiar el ID de cliente en la pestaña Información general.





Aquí reemplazamos CLID con el ID de cliente previamente copiado.



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


En la pestaña Bot, cree un bot y copie el token.





Codificación



Instale la propia biblioteca.



pip install discord


Cree un archivo config.py (esto es más conveniente) y cree un diccionario allí.



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


Creamos un archivo principal, el nombre puede ser cualquier cosa.

Importamos bibliotecas y nuestro archivo de configuración:



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


Crea un "cuerpo" de bot, el nombre puede ser cualquiera:



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


Comencemos a escribir el código principal.



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

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


Al final, lanzamos el bot usando:



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


Código completo
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,   


Debe tener un aspecto como este:





Tutorial de bonificación!



Hagamos una conclusión de imágenes aleatorias con zorros.

Para hacer esto, importamos un par de bibliotecas más:



import json
import requests


Comencemos a escribir el comando.



@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


Debe tener un aspecto como este:





el fin



Esto completa la Parte 1. Próximamente la parte 2.




All Articles