[Python] Создание Discord-бота на Python. Часть 1
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Версии, которые стоят у автора
SPL
Версия 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 discord
from discord.ext import commands
from 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, для получения токена
Полный код
SPL
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, для получения токена
Должно получится так:
Бонусный туториал!
Сделаем вывод случайных картинок с лисами
Для этого импортируем еще пару библиотек:
import json
import 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
===========
Похожие новости:
- [JavaScript, Node.JS, Интерфейсы, Программирование] Наилучшие практики создания REST API (перевод)
- Релиз JPype 1.0, библиотеки для доступа к Java-классам из Python
- [Node.JS, PHP, Perl, Python, Информационная безопасность] Трюки с переменными среды (перевод)
- [IT-компании, JavaScript, Python, Управление разработкой] Практики хорошего code review, или что такое code review за 15 минут. Доклад Никиты Соболева на DUMP в Казани
- [DevOps, Python, Анализ и проектирование систем, Искусственный интеллект, Машинное обучение] Общий обзор архитектуры сервиса для оценки внешности на основе нейронных сетей
- [Финансы в IT] Разбор: как разрыв Apple и Intel скажется на акциях компаний
- [PostgreSQL, Python, Администрирование баз данных] PgGraph — утилита для архивации и поиска зависимостей таблиц в PostgreSQL
- [Twitter API, Информационная безопасность] Twitter взломали. Пострадали аккаунты Apple, Барака Обамы, Билла Гейтса и множества других звезд твиттера
- [JavaScript, Python, Программирование, Разработка веб-сайтов] Надоел JavaScript — используй браузерный Python (перевод)
- [Django, IT-инфраструктура, Разработка под Linux, Системное администрирование] Как мы автоматизировали весь жизненный цикл серверов
Теги для поиска: #_python, #_python, #_api, #_discord.py, #_python
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:07
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Версии, которые стоят у автораSPLВерсия 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 discord
from discord.ext import commands from 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, для получения токена
Полный кодSPLimport 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, для получения токена Должно получится так: Бонусный туториал! Сделаем вывод случайных картинок с лисами Для этого импортируем еще пару библиотек: import json
import 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 =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 23-Ноя 01:07
Часовой пояс: UTC + 5