В статье рассматривается вопрос реализации веб-приложения обработки данных Discord-бота. Раскрыто и типизировано понятие Discord-бот, рассмотрены способы взаимодействия между пользователем и ботом. Результатом авторских исследований является сравнение нескольких методов разработки Discord-ботов и веб-приложений для взаимодействия с ними.
Ключевые слова: чат-боты, Discord, мессенджер, IP-телефония, автоматизация, API, веб-приложение.
Объектом исследования является использование чат-ботов для решения рутинных задач в среде социальных сетей. Предметом выступают боты приложения Discord, особенностью которых является гибкая настройка с помощью специального веб-приложения.
- Обзор приложения Discord
Discord — бесплатный мессенджер с поддержкой IP-телефонии и видеоконференций, предназначенный для использования различными сообществами по интересам[d1]. Он представляет собой платформу, состоящую из двух основных частей: личных сообщений и серверов. Личные сообщения могут быть тет-а-тет, а могут быть беседами не более чем по 10 человек. В них возможно переписываться и созваниваться. Однако ряд функций, который есть у серверов, в личных сообщениях недоступен.
Серверы — набор текстовых и голосовых каналов. Канал в данном случае является местом, где пользователи могут взаимодействовать друг с другом посредством текстового или голосового чата. Ограничений на количество людей, находящихся на сервере, нет. Ключевая особенность серверов — наличие системы ролей. Каждую роль можно настраивать под определённые каналы, разрешать или запрещать к ним доступ. Помимо ролей, серверы Discord обладают и другими не менее важными функциями, такими как демонстрация экрана, настройка уведомлений (для каждого канала можно настроить свои параметры), автоматическая модерация, блокировка пользователей и прочими.
- Описание Discord -ботов
Discord-боты — это автоматизированные учетные записи Discord. Они работают непосредственно с Discord API. Визуально боты отличаются от пользователей тегом «BOT» рядом с именем. Всего существует 3 типа ботов: серверные боты, селфботы, пользовательские боты. На данный момент, селфботы и пользовательские боты противоречат Условиям предоставления услуг Discord, поэтому далее будут рассматриваться только серверные боты.
Серверные боты
Серверные боты называются так из-за места их расположения. Действительно, чтобы начать взаимодействовать с серверными ботами, их сначала необходимо пригласить на сервер. Для этого нужно открыть ссылку авторизации бота, после чего выбрать свой сервер и указать боту необходимые права. Часто ссылки авторизации расположены в веб-приложении бота, где его также можно настроить. Но возможно использование популярных сайтов, обозревающих ботов, чтобы опубликовать ссылку авторизации своего бота. Для удаления бота с сервера, его необходимо «выгнать», либо «заблокировать» на сервере, как любого другого пользователя.
Функционал ботов
По функционалу боты в основном делятся на два типа: боты общего назначения и специализированные боты. В целом, боты общего назначения похожи друг на друга. Часто они помогают в модерации сервера, имеют разные опции развлекательного характера, такие как мини-игры, воспроизведение музыки, система уровней. Специализированные боты сосредоточены вокруг одной задачи. Например, есть специальные боты, выполняющие функции встроенного календаря.
- Обзор способов взаимодействия между пользователем и Discord-ботом
Можно выделить два способа взаимодействия с Discord-ботами: через текстовый канал и через панель управления веб-приложения бота.
Взаимодействие через текстовый канал
Взаимодействие через текстовый канал — самый простой способ взаимодействия с Discord-ботом. Он заключается в написании команд боту в текстовом канале. Обращаться к боту можно через префикс, либо через обращение.
Префикс — символ или несколько символов, которые пишутся перед самой командой. Обычно префикс задан изначально, но некоторые боты позволяют его изменить вручную.
Обращение — встроенная функция Discord, которая позволяет обращаться к любому пользователю или целой роли, используя символ «@».
Взаимодействие через панель управления веб-приложения бота
Данный способ взаимодействия основан на использовании панели управления веб-приложения бота. Панель управления представляет собой интерактивное меню, с которым пользователь может работать, вписывая и утверждая параметры. Чтобы получить возможность использовать панель управления, пользователю требуется авторизоваться в веб-приложении бота через данные своего аккаунта Discord, а затем добавить бота на свой сервер. После этих процедур пользователю открывается панель управления бота на конкретном сервере. Помимо настройки бота, некоторые веб-приложения позволяют задать выполнение команд напрямую через них вместо использования текстового канала. Таким образом, можно задавать команды боту, не заходя в Discord.
- Анализ способов разработки Discord-ботов
Существует два известных способа разработки Discord-ботов:
– используя библиотеку для взаимодействия с Discord API;
– используя приложение для создания Discord-ботов.
Библиотеки для взаимодействия с Discord API
Согласно официальному форуму разработчиков, всего существует 42 библиотеки для взаимодействия с Discord API [1]. Библиотека по своей сути является расширением для языка программирования. Для каждого популярного языка есть своя библиотека, а в некоторых случаях даже несколько. На сайте Open Source Libs, известным за свой реестр существующих библиотек к любому программному обеспечению, существует рейтинг библиотек для работы с Discord API, среди которых самыми популярными библиотеками являются discord.js, discord.py, DiscordGo и Discord.Net [2].
Анализируя существующие библиотеки по описанию, обновлениям и отзывам, можно сделать вывод, что функционал библиотек почти ничем не отличается, некоторая разница между библиотеками заключается в использовании разных языков программирования для реализации бота. Вдобавок к этому, библиотеки отличаются степенью реализации Discord API, однако практически все популярные библиотеки обновляются вовремя.
Таким образом, при выборе библиотеки для работы с Discord API разработчик в первую очередь должен руководствоваться своими предпочтениями. Но в случае, если у него нет каких-либо предпочтений по языкам программирования, ему стоит обратиться к библиотеке discord.js. Данная библиотека является наиболее популярной, её установило более 250 тысяч человек [3], и, соответственно, по ней есть множество руководств и инструкций по реализации Discord-бота.
Приложения для создания Discord-ботов
Обычно приложения для создания Discord-ботов ограничены по функционалу для неподготовленных к программированию пользователей, а само программирование включает в себя использование библиотек для взаимодействия с Discord API. Тем не менее, они могут ускорить процесс разработки ботов, а некоторые по своей сущности напоминают фреймворки, потому что изначально предоставляют шаблон пустого бота, который можно дорабатывать.
Можно выделить несколько популярных приложений для разработки Discord-ботов. Ими являются Autocode, Bot Designer For Discord и Discord Bot Maker.
Сравнение способов разработки Discord -ботов
Основным преимуществом использования библиотек на фоне приложений является отсутствие каких-либо рамок проекта, за которые нельзя выходить. Это пригодится для создания продукта со своими особенностями, например, с кастомизированной панелью управления.
Приложения для создания Discord-ботов также могут быть приняты к рассмотрению в том случае, если начинающий разработчик ботов заинтересован в развитии своих навыков программирования или хочет получить быстрое представление о Discord API.
- Анализ способов разработки веб-приложений
Самостоятельная разработка
При самостоятельной разработке написание веб-приложения требует серьезных знаний не только по языкам программирования, но и пониманию архитектуры, алгоритмов и структур данных, бизнес-процессов и многому другого, а это значит, что и увеличится время разработки. В ходе создания веб-приложения с нуля, на выходе получится уникальный продукт, который будет решать поставленные задачи и не тратить время на лишние процессы. Самостоятельная разработка позволяет создавать проекты любой сложности с индивидуальным дизайном и широкими возможностями продвижения. В отличие от CMS, продвинуть в естественном поиске самостоятельно разработанный сайт намного легче [4].
Разработка с использованием фреймворка
Фреймворк, как правило, содержит только базовые программные модули, а все специфичные для проекта компоненты реализуются разработчиком на их основе. Тем самым достигается не только высокая скорость разработки, но и большая производительность и надёжность решений.Разработка без использования платформы может быть правильным решением только в двух случаях — либо проект совсем простой и не требующий дальнейшего развития, либо очень нагруженный и требует очень низкоуровневой оптимизации. Во всех других случаях разработка на программной платформе быстрее и качественнее [5].
Разработка через систему управления содержимым
CMS (Content management system) или система управления содержимым — это базовый каркас и набор дополнительных инструментов и надстроек, который позволяет не только создать веб-сайт или веб-приложение, но и поддерживать его работу, обновлять контент и взаимодействовать с пользователями. Все CMS имеют панель управления с относительно дружелюбным интерфейсом. Любая CMS может позволить создать даже очень сложные решения с глубокой вложенностью страниц, но и у них есть свои особенности.
Достоинствами почти всех систем управления содержимым являются бесплатный доступ, удобное управление контентом, готовые решения. Однако и серьезные недостатки у CMS тоже есть. Ими являются уязвимость сайта, требования знаний к верстке и программированию для создания нешаблонного сайта [6].
Сравнение способов разработки веб-приложений
В целом, среди рассмотренных способов разработки веб-приложений много отличий. Так, самостоятельная разработка подойдет для тех разработчиков, кто готов пожертвовать временем и ресурсами ради быстродействия и уникальности. CMS подойдет для проектов без особенностей в реализации. А разработка с использованием фреймворка представляет собой среднее между разработкой «с нуля» и системой управления содержимым. Она имеет некий каркас для ускорения работы, но является более гибким способом разработки, нежели разработка в CMS. Исходя из полученных фактов, можно сделать вывод, что использование CMS для реализации веб-приложения обработки данных Discord-бота является наименее практичным способом. Разработчику для такой цели стоит выбирать между самостоятельной разработкой и разработкой с использованием фреймворка, в зависимости от масштаба проекта и доступных ресурсов.
Литература:
1. Community Resources. — Текст: электронный // Discord: [сайт]. — URL: https://discord.com/developers/docs/topics/community-resources (дата обращения: 20.12.2021).
2. Discord API. — Текст: электронный // Open Source Libs: [сайт]. — URL: https://opensourcelibs.com/libs/discord-api (дата обращения: 20.12.2021).
3. Библиотека discord.js. — Текст: электронный // GitHub: [сайт]. — URL: https://github.com/discordjs/discord.js (дата обращения: 20.12.2021).
4. Анна, Орлова 3 способа разработки веб-сайта / Орлова Анна. — Текст: электронный // vc.ru: [сайт]. — URL: https://vc.ru/dev/78714–3-sposoba-razrabotki-veb-sayta (дата обращения: 20.12.2021).
5. Фреймворки в веб-разработке. — Текст: электронный // Web Creator: [сайт]. — URL: https://web-creator.ru/articles/about_frameworks (дата обращения: 20.12.2021).
6. Коробочные системы управления сайтами — CMS. — Текст: электронный // Web Creator: [сайт]. — URL: https://web-creator.ru/articles/about_cms (дата обращения: 20.12.2021).
[d1]явно просится ссылка на источник