Введение
В связи с произошедшими в последние годы событиями,
различные мессенджеры, социальные сети и программы для аудио- и видеоконференций
стали быстро набирать популярность как среди рабочей сферы, так и среди
образования и даже обычных онлайн-встреч в кругу знакомых людей. Всё это стало
неотъемлемой частью нашей повседневной жизни. С каждым днём популярность
мессенджера Discord только набирает свои обороты, он насчитывает более 150
миллионов ежемесячных активных пользователей и более 300 миллионов
зарегистрированных аккаунтов, ежедневно
отправляется более 960 миллионов сообщений,
и платформа обрабатывает около 4
миллиардов минут разговоров.1
В Discord
существует возможность создания сервера, где можно собрать людей со схожими
интересами создав публичный сервер, или сделать сервер приватным для
ограниченного круга лиц, например, для Вашего рабочего коллектива. Чтобы
оптимизировать модерацию сервера, в мессенджер была добавлена функция создания
ботов. Боты – это программы-помощники, которые могут заниматься заданными в
программе функциями, такими как проигрывание музыки, фильтрация чата и т. п. Количество
таких ботов резко возросло за последний год, так, только за вторую половину
2022г. было зарегистрировано более 150 русскоязычных Discord-ботов,
что подчеркивает не только интерес пользователей, но и актуальность
разработки подобных ботов в целом.2 Пользователи активно пользуются
новыми возможностями мессенджеров в попытке повысить продуктивность собственных
устройств за счет отсутствия необходимости запускать несколько приложений. В
рамках заданной темы было решено рассмотреть проблему реализации музыкального
проигрывателя, который помог бы пользователям сэкономить время и ресурсы
устройства, а также сделал бы Discord удобным не только для
простого времяпровождения, но и для какой-либо работы.
Гипотеза
исследования заключается в рассмотрении возможности создания соответствующего
бота с помощью средств разработки
Цель:
создание бота с помощью языка Python
в среде VS code
Требуемые для
достижения цели задачи:
·
Выбрать язык для написания бота.
·
Ознакомиться с теоретической
частью.
·
Выполнить практическую часть.
·
Провести тесты бота.
·
Провести опрос пользователей
сервера.
Глава 1
Начать работу над проектом стоит с ознакомления с
теоретической частью и выбора языка программирования, на котором будет написан
бот. Мессенджером в нашем случае является Discord – это бесплатный мессенджер,
который позволяет вам обмениваться голосовым, видео и текстовым чатом с
друзьями, игровыми сообществами и разработчиками. У него сотни миллионов
пользователей, что делает его одним из самых популярных способов общения с
людьми в Интернете. Discord можно использовать практически на всех популярных
платформах и устройствах, включая Windows, macOS, Linux, iOS, iPadOS, Android,
а также в веб-браузерах.2
Выбирая язык программирования, стоит обратить внимание на Python, ведь это высокоуровневый
язык программирования общего назначения с динамической строгой типизацией и
автоматическим управлением памятью, ориентированный на повышение
производительности разработчика, читаемости кода и его качества, а также на
обеспечение переносимости написанных на нём программ. Python прост в
изучении, так как его синтаксис схож с синтаксисом английского языка, обладает
кроссплатформенностью, его можно сочетать с другими языками программирования.
Поэтому такой язык является подходящим для нас выбором.4
Далее предстоит определиться с выбором среды
программирования (IDE). Программу можно написать и в стандартном Python IDLE, однако для многих эта среда
разработки не является практичной. В интернете существует множество как
платных, так и бесплатных IDE, обычно они создаются сообществом энтузиастов. Моим выбором стала
среда разработки Visual Studio Code (далее VS Code). VS Code позволяет
легко писать, форматировать и редактировать код на разных языках, не только на Python. С его помощью можно
быстро создать проект и структуру файлов в нем, он подсвечивает синтаксис кода
и помогает автоматически править ошибки. В нем есть интегрированный терминал, возможности
для отладки и запуска кода на некоторых языках, установки расширений и
интеграции настроек из других IDE.5
Глава 2
Определившись с целью и требуемыми задачами, необходимо
перейти к установке Discord и настройке аккаунтов, а также выбранных нами языка
программирования и IDE. Установка Python на Ваш персональный компьютер предельно проста (для
операционной системы Windows):
1.
Для начала нужно перейти на
официальный сайт мессенджера (https://discord.com) и пройти регистрацию, после чего скачать клиент, нажав по кнопку
загрузки.
рис. 1
1.
Нужно создать аккаунт бота на
официальном сайте, предназначенном для этого(https://discord.com/developers/docs/).
2.
Используя программу Microsoft Store, установленную на ПК по
умолчанию, найти с помощью поиска язык программирования python и выполнить установить
его, нажав на кнопку.
рис. 1.1
Если используется версия Windows на которой нет Microsoft Store, то необходимо перейти
на официальный сайт Python (http://www.python.org) и скачать его, нажав на кнопку с названием и версией во вкладке Downloads
рис. 1.2
3.
В качестве проверки установки
можно написать в командную строку “python”, если установка прошла успешно, то выведется информационное
сообщение:
рис. 1.3
Следующий шаг заключается в установке выбранной среды
программирования, в нашем случае это VS Code. Его
можно установить выше описанным методом с использованием Microsoft Store, или же скачать с
официального сайта приложения (http://code.visualstudio.com) и установить. В конкретных настройках нет особой необходимости,
базовые настройки являются вполне комфортными, однако можно изменить тему интерфейса
на своё усмотрение.
Далее предстоит скачать FFmpeg, который будет необходим для работы бота в дальнейшем. FFmpeg —
набор свободных библиотек с открытым исходным кодом, которые позволяют
записывать, конвертировать и передавать цифровые аудио- и видеозаписи в
различных форматах. Его можно скачать с официального сайта (http://ffmpeg.org), после установки нужно перенести файлы с расширением .exe из архива, настраивать и запускать
ничего не требуется.6
Перед непосредственным написанием кода следует скачать
необходимые библиотеки, в нашем случае это:
·
PyNaCl
·
discord.py
·
youtube_dl
·
os (встроенная библиотека для
работы с операционной системой, не требует установки)
Для их установки нужно перейти в командную строку и
задать последовательные команды:
·
pip install pynacl
·
pip install discord.py
·
pip install youtube_dl
Также обязательным условием является импортирование
данных из этих библиотек, которое указывается с помощью кода:
рис. 2
Первым делом нужно создать переменную с токеном бота,
чтобы запускать его. Токен – ключ, представляющий из себя набор символов,
который содержит в себе информацию аккаунта и позволяет управлять ей. Его можно
получить на том же сайте, где был создан аккаунт бота. Его нужно внести в
отдельную переменную: рис. 2.1
Обязательным также является введение переменной, которая
в себе будет содержать настройки для FFmpeg:
рис. 2.2
Основным методом кода является функция воспроизведения
музыки и зацикливание этого процесса. В этом методе прописаны: загрузка видеозаписи
с помощью библиотеки youtube_dl,
конвертирование её формата из mp4 в mp3 с помощью FFmpeg и последующее зацикливание аудиозаписи, а также вывод временного информационного
баннера (на момент воспроизведения) с названием выбранной видеозаписи.
рис. 2.3
Информационные баннеры имеют своё название - “Имбеды”,
они создаются с помощью библиотеки discord.py и
содержат в себе:
·
Заголовок
·
Верхний колонтитул
·
Основной текст сообщения
·
Нижний колонтитул
рис. 2.4
Все команды бота написаны по одному условному шаблону –
функции, которые будет выполнять команда, и имбед с небольшим количеством
информации, связанной с командой.
Однако, команда add несёт в себе важный функционал, заключающийся в
поиске видеозаписи по прямой ссылке с видеороликом на youtube или по ключевым словам,
а также добавление этих видеозаписей в список воспроизведения.
рис. 2.5
Отдельно стоит выделить команду, вызывающую меню
помощи-ознакомления, которое содержит список команд и краткое описание их
функций, такая команда имеет название help (без учёта префикса):
рис. 2.6
Итоговый результат метода в мессенджере выглядит подобным образом:
рис. 2.7
Глава 3
Тестирование является важной частью проектной работы,
подтверждающей актуальность проделанного. В нашем случае тестирование будет
происходить на одном из публичных серверов пользователей дискорд. Цель –
узнать, как часто будет использоваться бот и является ли внедрение музыкального
бота на публичный Discord-сервер эффективным решением.
По прошествии недели с момента внедрения бота на сервер
был проведен опрос среди его участников. В опрос были включены такие вопросы:
1. Пользовались ли вы Discord-ботом? (Ответы: “да” или “нет” )
2. Было ли это решение для Вас эффективным? (Ответы: “да” или “нет” )
3. Если ответ на вопрос 2 – “да”, то по какой причине? (Вопрос со
свободным ответом)
4. Если ответ на вопрос 2 – “нет”, то по какой причине? (Вопрос со свободным
ответом)
По итогам опроса были сделаны выводы:
·
Большая часть опрошенных (82 %)
хотя бы раз пользовалась Discord-ботом
·
Большая часть опрошенных (70 %)
посчитали внедрение бота эффективным решением
·
Самыми частыми ответами на
вопрос 3 являлись: “Значительная экономия времени” и “Удобство за счёт работы
только в одном мессенджере”
·
Основным ответом на вопрос 4
являлось: “Отсутствие необходимости к использованию бота”
Заключение
Подводя общие итоги проекта, можно сделать вывод, что Discord-боты только начинают
развиваться и набирать свою популярность, но они уже пользуются широким
спросом, что подчёркивает новизну проекта. А исходя из проведённых тестирования
и опроса, мы делаем вывод, что люди активно используют ботов и считают их
эффективным решением, призванным сделать использование мессенджера более
комфортным.
В ходе проделанной работы была достигнута поставленная
цель, а также выполнены задачи, необходимые для достижения этого. Подобные боты
могут быть успешно созданы с помощью средств разработки и использоваться в
соответствующих целях, что подтверждает мою гипотезу.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.