Share This
Связаться со мной
Крути в низ
Categories
//Discord бот на Python

Discord бот на Python

19.09.2021Category : Python

В данной статье мы создадим Discord бот, используя при этом только Python.

Краткая информация о Discord для тех, кто еще о нем не знает

Discord — это, фактически, универсальная платформа голосового и текстового общения для геймеров.

Игроки, стримеры, студенты и разработчики используют Discord, чтобы обсуждать игры, отвечать на вопросы, общаться в чате во время игры в хорошем качестве, в том числе с членами своей команды. В нем даже есть игровой магазин с критическими отзывами и возможностью подписки. По сути, это центр игровых сообществ.

Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве мы остановимся на создании бота на Python.

Необходимые приготовления

Чтобы создать Discord бот, вам понадобится:

  1. Аккаунт в Discord и собственный сервер
  2. Python
  3. Устойчивое интернет-соединение во время всего процесса.

Что такое боты?

Бот (сокращение от «робот») — это программа, которая выполняет автоматические, повторяющиеся и заранее определенные задачи. Боты обычно имитируют человеческое поведение или подменяют его. Поскольку все их действия автоматизированы, они работают намного быстрее, чем обычные пользователи.

Боты очень часто используются для ответов на типовые вопросы, возникающие в различных сообществах. Они действуют как своего рода представители человека для выполнения различных функций. Основной особенностью такого бота является то, что он устраняет необходимость вручную отвечать каждому участнику и полностью автоматизирует данный процесс.

Для чего нужны чат-боты

Автоматизация ответов на основные вопросы

В любой области деятельности всегда есть вопросы, которые пользователи задают чаще всего. И на эти вопросы каждый раз надо давать одни и те же ответы. Лучшее решение в таком случае — чат-бот.

Ускорение рабочих процессов

Чат-боты, в отличии от людей, никогда не устают. Все люди могут работать только ограниченный период времени, в то время как у ботов таких ограничений нет. Использование чат-ботов в бизнесе хорошо дополняет работу людей, повышает производительность труда и сокращает человеческий труд.

Экономия денег и времени

При правильном использовании дружелюбного чат-бота привлечение клиентов происходит с минимальными затратами и максимальной эффективностью.

discord bot na python f32dece - Discord бот на Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

Пишем код для чат-бота

Сперва убедитесь, что на вашем компьютере установлен Python. Если его еще нет, то загрузите его с официального сайта.

Среду программирования можно использовать любую, какая вам больше нравится. Например, PyCharm, VS Code или Sublime.

Теперь идите на сайт Discord и откройте на нем Developer’s Section (раздел разработчика).

Теперь выберите опцию New application (новое приложение) в правом верхнем углу страницы и дайте вашему новому приложению имя. Как видите, можно даже добавить изображение к аватару вашего бота. Мы можем сделать это позже. Сейчас пойдем в раздел Bot (на странице слева) и выберем опцию Add bot (добавить бота).

Сделав это, перейдите в категорию OAuth2 и в секции scope выберите опцию bot. Далее идите в секцию Permissions и настройте разрешения по вашему выбору.

Затем откройте ссылку под секцией scope в новом окне и выберите сервер, на котором вы желаете видеть ваш бот.

После этого установим библиотеку discord.

Для этого введем следующую команду:

pip install discord

Вот официальный сайт, где есть вся необходимая информация по данной библиотеке. Здесь же мы только заметим, что эта библиотека поддерживает API acync/await.

После установки этой библиотеки откройте ваш редактор кода и создайте файл bot.py.

Основная задача нашего тестового бота будет состоять в том, чтобы давать ответ всем пользователям на их сообщение «Hello». Но вы, конечно, можете его настроить в соответствии с вашими потребностями.

Для начала импортируем необходимые библиотеки:

import discord from discord.ext import commands

Создадим переменную Client:

client = commands.Bot( command_prefix=" / " )

Обратите внимание, что вы можете выбрать любой префикс (например «>«, «.» и тому подобное).

Также имейте ввиду, что если вы хотите вызывать своего бота, ваша вызывающая команда должна иметь префикс, сохраненный в атрибуте command_prefix.

Например, в нашем случае, чтобы вызвать бота, нужно написать /hello, а не просто hello.

Напишем следующий код для определения статуса бота:

@client.event async def on_ready( ):            print("Bot is ready")

Это сообщение будет отображаться всякий раз, когда вы размещаете своего бота в сети. Вы также можете проверить статус бота из самого Discord.

Это сообщение подтверждает, что наш бот готов к использованию на сервере.

Теперь, когда бот готов к работе, мы можем ответить пользователям на их приветствие hello:

@client.event async def hello( ):           await ctx.send("Hi")

Эта функция задает условие, при котором, когда пользователь набирает /hello, бот отвечает hi.

Для запуска бота нам понадобится токен. Он находится в разделе Bot на сайте Discord. Мы заходили туда при создании бота.

client.run(" Token ")

Замените слово Token на ваш код. Сам токен находится рядом с аватором бота. Если вдруг его там нет, нажмите на надпись Click to Reveal Token. Это должно сработать.

Теперь настало время запустить нашего бота!

Откройте CMD и наберите следующую команду:

bot.py

Если так не выходит, то наберите вот это:

python bot.py

Если вы правильно выполнили все предыдущие шаги, то должны увидеть сообщение Bot is ready.

Теперь перейдем на наш сервер и введем тестовый запрос, который в нашем случае был /hello. Мы увидим, что наш бот отвечает нам Hi.

Точно таким же образом пишем бот для приветствия новых участников:

import os  import discord from dotenv import load_dotenv  load_dotenv() TOKEN = os.getenv('DISCORD_TOKEN')  client = discord.Client()  @client.event async def on_ready():     print(f'{client.user.name} has joined Discord!')  @client.event async def on_member_join(member):     await member.create_dm()     await member.dm_channel.send(         f'Hello {member.name}!! Welcome to Our Discord Server!'     )  client.run(TOKEN)

Возможные проблемы при создании бота

Все может быть не так просто, как это кажется на первый взгляд. Вы обязательно должны помнить о проблемах, с которыми можете столкнуться при создании бота. Некоторые из них мы перечислили ниже:

  1. Различные способы отправки текстовых сообщений. У всех людей есть свой стиль написания текстовых сообщений (короткие предложения, длинные предложения, несколько коротких предложений в разных сообщениях и так далее). Так что понять пользователя может быть непростой задачей.
  2. Пользовательские эмоции. Все мы люди, и всем нам свойственны эмоции. Наше поведение контролируется эмоциями. Мы чувствуем себя по-разному в разные моменты времени. И, кроме того, настроение постоянно меняется, и это отражается на сообщениях.
  3. Создание креативного и интерактивного пользовательского интерфейса (UI): Промежуток времени, за который можно привлечь внимание пользователя, очень невелик. Здесь в игру вступает диалоговый интерфейс. Его задача состоит в привлечении пользователей. То, как бот реагирует на сообщение пользователя, должно привлекать его внимание. Чем эффективнее мы это делаем, тем больше шансов, что бот снова будет востребован. Поэтому следует уделять особое внимание написанию ответов на запросы пользователей.

Заключение

Мы рассмотрели, как создать Discord бот на Python. Разумеется, это был простейший бот. Но вы, конечно же, можете написать свой собственный код и добавить множество различных функций, например OCR.

Спасибо за внимание и хорошего дня!

Перевод статьи «Build Your First Discord Bot Using Python».

  • 2 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2020 / All rights reserved

    Связаться со мной
    Close