Русский
Русский
English
Статистика
Реклама

Из песочницы Создание Discord-бота на Python. Часть 1

Версии, которые стоят у автора

Версия Python: 3.8.2
Версия discord.py: 1.3.3


Приветствую, хабровчане и другие пользователи интернета. Сегодня я начну цикл статей, посвящённых созданию Discord-бота с помощью библиотеки discord.py. Мы рассмотрим создание как и примитивного бота, как и "продвинутого" бота с модулями. В этой статье мы сделаем стандартную команду и ещё одну небольшую команду. Начнём!


Создание бота и получение токена


Для того, чтобы добавить бота на сервер нужно создать свое приложение и во вкладке General Information скопировать Client ID.



Здесь заменяем CLID на ранее скопированный Client ID.


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

Во вкладке Bot создаём бота и копируем токен.



Написание кода


Устанавливаем саму библиотеку.


pip install discord

Создаём файл config.py (так удобнее), и создаём там словарь.


settings = {    'token': 'Ваш токен',    'bot': 'Имя бота',    'id': Client ID бота, без кавычек,    'prefix': 'Префикс бота'}

Создаём main-файл, название может быть любое.
Импортируем библиотеки и наш файл конфига:


import discordfrom discord.ext import commandsfrom config import settings

Создаём "тело" бота, название может быть любое:


bot = commands.Bot(command_prefix = settings['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, для получения токена

Полный код
import discordfrom discord.ext import commandsfrom config import settingsbot = 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, для получения токена

Должно получится так:



Бонусный туториал!


Сделаем вывод случайных картинок с лисами
Для этого импортируем еще пару библиотек:


import jsonimport requests

Приступим к написанию команды.


@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

Должно получится так:



Конец


На этом 1 часть закончена. Скоро будет опубликована 2 часть.

Источник: habr.com
К списку статей
Опубликовано: 17.07.2020 16:20:19
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Python

Api

Discord.py

Категории

Последние комментарии

© 2006-2021, personeltest.ru