Все секреты компьютера для новичка и профессионала

Как сделать bot для Discord на Python, правила написания и установки помощника

Как сделать bot для Discord на Python, правила написания и установки помощника

Discord с каждым днем становится все более востребованным среди киберспортсменов, любителей компьютерных развлечений и тех, кто привык общаться в сети в тематических чатах. Вместе с повышающимся спросом меняется и функционал мессенджера – появились и подписки на Nitro, и функция бустинга серверов. Сейчас же спрос растет на разработку bot (ботов) для Discord на Python. Как все работает, какие команды писать и чем полезен бот – инструкции ниже!

screenshot_1

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

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

  • Авторизация. На официальном сайте Discord предстоит или зарегистрироваться, или авторизоваться, заполнив ряд текстовых полей.
  • Интеграция. Далее – переход на страницу с тематическим контентом для мессенджера и выбор пункта «New Application» в правом верхнем углу.

screenshot_2

  • Выбор. Следующие шаги связаны непосредственно с наименованием бота (предстоит выбрать название), активацией (пункт «Bot» в меню слева) и выбором настроек (желательно ничего не менять, в особенности поля, связанные с «Public bot» и «Require OAuth2 Code Grant»).

screenshot_3

  • Токен. После базовой подготовки и до загрузки дополнительных модулей («Module») и API необходимо лишь скопировать «Токен» («Token»), который появится в разделе «Build-A-Bot» после всех действий, описанных выше. Если с копированием (или переносом комбинации) возникнут проблемы, то проще воспользоваться кнопкой «Regenerate» и обновить «Токен».

screenshot_4

Приглашение бота на свой сервер

Если с перечисленными выше действиями не возникло проблем, то дальше и вовсе достаточно повторить лишь пять несложных действий.

  • Сначала предстоит подготовить URL-ссылку приглашения на вкладке «OAuth2», выбираемую в левой части интерфейса, а после – уже справа – установить галочку напротив пункта «Bot».

screenshot_5

  • Далее необходимо проставить галочки для Дискорда с разрешениями. Разрабатываемый на Питоне бот понадобится для рассылки сообщений, а потому выделить предстоит все, что связано с «Text Permissions», а еще – «View Channels».

screenshot_6

  • Если галочки проставлены, то сверху осталось нажать на «Copy» и скопировать ссылку.
  • Далее URL-адрес достаточно вставить в адресную строку браузера и нажать на «Enter».
  • После перехода появится предложение выбрать сервер, куда интегрировать бота, и кнопка «Авторизовать».

Как написать код для базового бота Discord с помощью библиотеки Discord.py

Разрабатывается бот на основе библиотеки для Python – Discord.ру, упрощающей многие действия и разрешающей загружать специальные модули и шаблоны, а не писать весь код вручную.

Создание реплик

Применять язык программирования Python проще в специальных редакторах кода (Sublime Text, Atom, Visual Code), но при разработке бота легче ориентироваться на специальный сервис Repl.it – специальную IDE, куда уже интегрирована необходимая библиотека discord.py. Достаточно нажать на «Start Coding», а после – ввести комбинацию «import discord» в верхней части main.py. Дальнейшие действия не понадобится – Repl.it без лишних вопросов справится с разверткой необходимой информации и подготовит почву для дальнейшего кода.

Вдохновляющие цитаты

Перед тем, как создать список вдохновляющих цитат, предстоит интегрировать новый модуль Python и ввести «get_quote ()», необходимый для использования запросов из URL-адреса API и возвращения найденных в списке сообщений. Дополнительно понадобится модуль «requests» и еще одна команда – «json.loads()».

Текущий промежуточный код выглядит следующим образом:

screenshot_7

screenshot_8

Грустные слова

Перед тем, как настраивать реакции бота на «печальные» сообщения, необходимо подготовить простейшую связку-список, которая станет триггером для бота и приведет к выводу дальнейших обнадеживающих сообщений. Добавлять грустные слова предстоит после переменной client:

  • sad_words = [«depressed», «unhappy», «miserable»].
  • Кроме латиницы поддерживается и кириллица: те же [«sad», «depressed»] мгновенно меняются на [«грустно», «депрессивно»].

Обнадеживающие сообщения

После генерации списка необходимы обнадеживающие «ответы». А именно за списком sad_words предстоит добавить конструкцию следующего типа:

screenshot_9

Как и в случае с «грустным» списком, допустима кириллица и привычные выражения, вроде «Взбодрись!». Главное – соблюдать синтаксис – использовать скобки, кавычки.

Настройка событий

Discord основан на событиях, реализованных в мессенджере разными способами, но простейший пример – сообщение. Когда пользователи оставляют в чате хотя бы букву или смайлик, появляется возможность «отреагировать» на произошедшее событие. Почему бы не подготовить бота, способного ответить на появляющееся сообщение?

Весь код, частично позаимствованный из официальной документации discord.py, выглядит так:

screenshot_10

Подробности к коду следующие:

  • Фразу os.getenv('TOKEN') необходимо заменить «Токеном», выданным в браузере (подробности – выше).
  • Client необходим для связи с Discord. А @client.event() регистрирует происходящие события.
  • Строки «import discord» и «import os» импортируют ряд библиотек, необходимых для работы.
  • Когда боту приходит сообщение, вызывается событие «on_message()»;
  • Затем происходит проверка содержимого с помощью «message.content». Если там содержится «$hello», то бот автоматически ответит «Hello!».

screenshot_11

Запуск бота

Активируется bot для Discord в Repl.it с помощью соответствующей кнопки в интерфейсе онлайн-среды. А вот в редакторах кода предстоит написать «py3 main.py» или «python3 main.py». Если действия проделаны корректно, то добавленное в чат с ботом сообщение «$hello» приведет к появлению фразы «Hello!».

screenshot_12

Как улучшить бота

Сделать bot для Дискорда – половина дела. Важно не останавливаться на достигнутом и осваивать новые инструменты и шаблоны. Например, не помешает интегрировать в бота механизм «реагирования» на печальные или даже безнадежные сообщения, пересылаемые пользователями. Вариантов реализовать идею несколько.

Во-первых, не помешает функция «$inspire», способная выводить заготовленную цитату (в том числе и вдохновляющую) из заранее организованного списка после добавления пользователями соответствующей команды.

Как отвечать на сообщения

Последний шаг – вынужденное обновление бота и добавление связки из списков с командами, и новой функции. Весь алгоритм действий выглядит следующим образом:

  1. Импорт модуля random и добавление строки «import random» в верхнюю часть кода;
  2. После необходимо обновить функцию «on_message()» для проверки сообщений, содержащих слова из заранее подготовленного списка «sad_words».

screenshot_13

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

Информационный портал IT Техник
Вам помогло? Поделитесь с друзьями - помогите и нам!
Поделиться
Отправить
Класснуть
Линкануть
Вотсапнуть
Запинить
Комментарии к статье: 1
Добавить комментарий


Граватар rredragon
rredragon

Зачем писать токен и использовать OS, если можно в JSON файл все поместить и подключить к главному коду. Так-же не понятно зачем использовать event если есть @bot.command :/

Ответить
Наш Youtube-канал
Канал Telegram

Прямой эфир

Den
Den
Если вы не разговариваете с соседом, то не думайте что му не с разговаривать.
Как пошагово исправить ошибку с кодом Нетфликс NW-6-403 и причины ее появления
Юля
Юля
Пожалуйтесь на них
Как работает служба техподдержки в Телеграме и как написать на горячую линию
Юля
Юля
Через 7 удалите акк
Как работает служба техподдержки в Телеграме и как написать на горячую линию
Юля
Юля
Если вы не будите в него заходить он удалится по установоенному вами таймеру
Как работает служба техподдержки в Телеграме и как написать на горячую линию
Юля
Юля
Никак
Как работает служба техподдержки в Телеграме и как написать на горячую линию
Мария
Мария
Отключите подписку!!!
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
бТщВ
Как активировать промо-код в Mvideo – инструкция и возможные проблемы
Она
Она
Мошенники
Как отписаться от платных услуг и подписок сервиса Creditory – инструкция
Мухаммад
Мухаммад
За то что вот вы обманываете людям берёте с них деньги Клянусь я подам на вас суд я доберусь до вашего офиса который мошенничество И вам будет нехорошо вы там написали можно получить 14.000 и сняли с моего карты 1 руб потом 499 руб Где мои деньги
Как можно отписаться от платных услуг сервиса Getzaemorg vyborg rus – инструкция
ковен
ковен
ору с комментов
Как отключить подписку сервиса Chatgram.me в Телеграме – инструкция
хЛ
Как отменить подписку на FastFiles Pro, если они списали деньги, и вернуть свои деньги
Ольга
Ольга
Отмените подписку
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Евгения
Евгения
Спасибо, полезная статья, получилось отписаться.
Что это за сервис Paywall, как отключить его подписку и отзывы людей
Виктор Абрамович гершман
Виктор Абрамович гершман
Как отписаться от платных услуг вanklire
Как отписаться от платных услуг и подписок сервиса BankLite.ru – инструкция
Виктор Абрамович гершман
Виктор Абрамович гершман
Я хочу отписатьсяот платнях услуг вan klite мой номер телефона 89025624010
Как отписаться от платных услуг и подписок сервиса BankLite.ru – инструкция
анна
анна
при попытке удаления пишет что такой программы не существует
Что это за программа Punkbuster Services и для чего она нужна, как удалить.
Галина
Галина
Я ни на что не подписывалась. А 08 июня у меня с карты произвели 6 списаний на общую сумму 2247 руб. Пришлите официальные документы на основании чего проведено списание. для обращения в соответствующие органы. Я пенсионер и инвалид 2 группы.
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Руслан
Руслан
Здравствуйте, я не слыш мой номер 79538503177 прошу разблокировать аккаунт Спасибо за огромное 🥺
Почему иногда блокируют номер телефона в Телеграме и как можно снять бан
Елена
Елена
Я ни на что не подписывалась! Верните деньги
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Клавдий
Клавдий
Прежде чем писать статью об электросетевой компании, автору следовало бы уразуметь, что МЭСК и МОЭСК это не одно и то же. Автор пишет про МОЭСК, но упорно обзывает её МЭСК, то есть аббревиатурой выдающих себя за неё жуликов.
Что это за организация Московская электросетевая компания, сфера деятельности
Наталия
Наталия
Подписку (всегда с автоматическим продлением) "дарят" Автоматически! В личном кабинете не видно! Будьте аккуратны! В моём случае - приложение показали(с загрузкой конечно), удалили, а подписка осталась... Целый год снимались средства!!!!!
Как отменить подписку сервиса «Где мои дети» и почему он списывает деньги
Ольга
Ольга
Отписаться от платных услуг
Как отписаться от платных услуг и подписок сервиса Youzaym и вернуть деньги
Асланбек
Асланбек
Приходят о кредите приходят сообщения от ретаил сол
Что значит, если от Retail Sol приходят СМС о кредите, и как это отключить
Асланбек
Асланбек
Как узнать о каком кредите приходят смм
Что значит, если от Retail Sol приходят СМС о кредите, и как это отключить
Анастасия
Анастасия
Отменила подписку, продолжают снимать деньги с карты, не спрашивая.
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Иван
Иван
t.me/BlumCryptoBot/app?startapp=ref_XyTu9CpCqJ Join me on Blum and let's earn together! Use my invite link to join the fun. 🌟
Что за приложение Blum в Telegram и как на нем заработать – тонкости и нюансы
Юлия
Юлия
Отписаться от платных услуг 89181659492
Как отписаться от платных услуг и подписок сервиса Youzaym и вернуть деньги
Светлана
Светлана
Как отменить подписку и вернуть деньги
Как можно отписаться от платных услуг сервиса Pse my-finance barnaul rus
Анастасия
Анастасия
Отключите подписку, и верните деньги! Писала вам на электронную почту не кто не отвечает, если не отключите подписку и не вернёте деньги пойду в полицию
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Галина
Галина
Отключите мне эту подписку , я ей ни когда не пользовалась ,а деньги списывает уже давно.
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
юоЛ
Как отключить подписку на сервис EvoCloud Moskva RUS и почему он списал деньги
Светлана
Светлана
Как вы отписались
Как можно отписаться от платных услуг и подписок сервиса Snackinhealth
Валентина
Валентина
Отписаться от платных услуг
Как можно отписаться от платных услуг и подписок сервиса Займы.рф (Zaimy.rf)
Ирина
Ирина
Вот я смотрю модератор оправдывает сайт а сколько таких людей как я за сегодня кинули на деньги они даже не стесняются я им сегодня этим мошейникам написала опять о покупке собачки и они со мной опять вели переписку ,а переписку ведут только по ватсапу,а когда поняли они и этот номер заблокировали
Leboard ru — что это за сайт, стоит ли его опасаться?
Ирина
Ирина
Надо в суд я так думаю подать наверно завтра просто седня в шоке сижу
Leboard ru — что это за сайт, стоит ли его опасаться?
Ирина
Ирина
Мне кажется те объявления какие опобликовывают нормальные люди перехватывают мошейники потом разводят людей как меня сегодня
Leboard ru — что это за сайт, стоит ли его опасаться?
Ирина
Ирина
Виктор, а меня там развели 15 000 какие были последние
Leboard ru — что это за сайт, стоит ли его опасаться?
Алламов уктам
Алламов уктам
Обратно деньги 1999 отключить payzaim
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Алламов уктам
Алламов уктам
Отключить payzaim обратно деньги 1999
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Алламов уктам
Алламов уктам
Отключить payzaim обратно деньги 1999
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Алламов уктам
Алламов уктам
Отключить payzaim обратно деньги 1999
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Алламов уктам
Алламов уктам
Обратно деньги можно 1999
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Алламов уктам
Алламов уктам
Обратно деньги 1999
Как отключить списывание средств PayZaim и можно ли вернуть деньги
Иван
Иван
Хуесосы
Как можно отменить подписку на сервис Vsegda love и вернуть свои деньги
Фдуч
Фдуч
Из за 4 городав держать в памяти этот мусор? У нас у всех тарифы по России - без роуминга. Ради чего этот мусор? В Китай я не собираюсь, чтоб 100% ощутить чудоработоспособность этой программы.
Что это за приложение Geniex Service – его плюсы и минусы, использование
Фдуч
Фдуч
Что то плюсов то и не обнаружил. Походу очередная лажа для слежки. Удаляю.
Что это за приложение Geniex Service – его плюсы и минусы, использование
надежда
надежда
стрельцова надежда константиновна тел 89609581851 т ребую отписать меня от рассылки я у вас ничего не выписывала и удалите мою карту с сайта иначе пойду в прокуратуру верните деньги которые списали с карты
Как отменить подписку на Юнону и почему она списывает деньги с карты
Анастасия
Анастасия
Отключите подписку я даже не знаю что это и кто вы!
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция
Олеся
Олеся
Такая же фигня, кругом одни мошенники. Ни какого договора не было вообще, что будут списывать и на что то подписаться!!!!
Как отменить подписку сервиса Safefile Tikhvin RUS и можно ли вернуть деньги
Татьяна
Татьяна
Пожалуйста отключите подписку
Как отписаться от платных услуг и подписок сервиса Tutorplace – инструкция