- изменение скрипта on_voice_state_update - добавление кулдауна
- изменение в пре-процессинге include
- исправления (
/clear_queue) + рефакторинг VoiceCog - добавление Grok нейросети по упоминанию бота в сообщении
- исправления некорректной загрузки скриптов (импорт скриптов из скриптов мог вызывать ошибку на Linux)
- "протухание" аудио потоков и резкое переключение на следующий трек (абсолютный рандом)

Это частный дискорд бот поддерживающий скриптинг и имеющий базу данных, написанную на Tortoise-ORM.
На данный момент: база данных - SQLite, версия Python - 3.12, версия Discord API - 2.5.*
Большая часть взаимодействий будет реализована через Discord API 2.0, начиная простыми app_commands, привязанными к
профилю бота на сервере и заканчивая тотальным переносом всего на discoed.ui, что должно улучшить работу с ботом
В этой главе я обозначил список уже имеющихся функций, планируемых и тех, что сейчас находятся в разработке
Script Engine (IN PROGRESS)
Скрипты позволяют легко настроить поведение бота как для всех серверов, так и для определённого сервера, позволяя полностью сменить логику или создать свою.\
В данный момент идёт работа над: увеличением безопасности скриптов для сервера и возможности создавать скрипты привязанные к определённому серверу.\
- скрипты событий;
- библиотеки и вызываемые скрипты;
- система выполнения скриптов из discord;
- база данных;
- guild_only скрипты;
- абстрагирование скриптов от основной программы;
- отделение зоны видимости скриптов от программы;
- улучшение безопасности использования
Discord APIв скриптах;
Voice commands (PARTIAL FINISHED)
Это простые команды голосовых каналов, позволяющие создать динамический, временный канал, позвать туда бота и
попросить проиграть какое-то видео с YouTube.\
В данный момент идёт работа над: настройками создания временных каналов как для админа (добавление нового или его удаление), так и для пользователя, создающего его (например настраиваемое имя канала).\
- Для воспроизведения аудио:
(FINISHED)- основные, для работы с каналами;
- простое воспроизведение аудио;
- очередь воспроизведений;
(HAS ERRORS)
- Для оперирования каналами:
(PARTIAL FINISHED)- фабрики каналов и временные каналы;
- данные пользователя, фабричных и временных каналов;
- настройки каналов и пользователей;
(STARTED)
Администрирование: (STARTED)
Тут нечего говорить - администрирование сервера это управление каналами, участниками имеющими туда доступ и ролями, дающими пользователям взаимодействовать с этими каналами. Помимо этого бот сможет позволить легко создавать оповещения в разные каналы и настраивать стандартные оповещения (по типу создания нового временного канала или входа пользователя на сервер).\
В данный момент идёт работа над: простейшими командами для управления разными объектами и участниками, помимо этого
ведётся работа над созданием мини API для создания скриптов, что позволит как улучшить стандартные команды, так и
создать guild_only скрипты.
- Команды:
(STARTED)- управления каналами;
(STARTED) - управления ролями;
- управления участниками;
(STARTED) - API для добавления кастомных команд в
guild_onlycogs;(STARTED)
- управления каналами;
- Функции:
(NOT STARTED)- оповещения;
- наказания для участников (привязка к правилам);
Как по моему мнению - дискорд это самая социально выраженная социальная сеть из всех, начиная от разных каналов(чатов) и серверов(сообществ/каналов), заканчивая делениями на разные социальные статусы, которые тут реализованы ролями. Я хочу помочь администрации и не только ей улучшить автоматизировать все эти аспекты, позволяя создавать оповещения или автоматически выдавать роль в зависимости от ранга пользователя или его достижений на сервере.\
Сейчас работа не начата совсем, но в скоре планируется начать с достижений и оповещений.\
- уровни;
- оповещения;
- достижения;
- события;
Помимо этого бот имеет огрмный пул команд для сложных взаимодействий с ним. Все команды из этого списка доступны лишь определённому списку пользователей и в большинстве своём не отображаются в чате. Вот сами команды и их описание:
Запускает меню прямого управления ботом, в большей части связанного с классом бота
bottoolsпрямые приказы боту, связанные с его работой
- хотрелоад бота -
/restart_bot [time] [interval] - остановка работы -
/close_bot [time] [interval] - хотрелоад cogs -
/reload_cogs [cog_list]
- хотрелоад бота -
test_toolsкоманды для тестирования, пока что реализованы только проверки работоспособности отлова ошибок
- простая ошибка
Exception("TEST ERROR")-/test_drop_exc - проверка отлова ошибок HTTP (
HTTP 400), -/test_drop_http [force]
- простая ошибка
Команда для работы с лог-системой
- кнопка
остановитьдинамически меняется, в зависимости от текущего статуса логирования -/turn_logging получить логивыдаёт имеющийся список логов -/get_logs

команда для взаимодействия со скрипт-движком. Делится на 2 - панель разработчика и админа сервера. Первая не поменялась, а вторая немного изменённая его версия.
запуститьдинамически меняется в зависимости от режима выполнения, сам режим выполнения позволяет выполнять скрипты прямо из сообщения в дискорд -/turn_exec_modeобновить скрипты- обновляет скрипты, перезагружая их либо с базы данных, либо с файлов -/update_scripts [from_db]выполнить скрипт- выполняет скрипт с заданными параметрами -/exec_script [name] [kwargs] [from_db]
просмотр скриптов- позволяет просмотреть скрипты из базы данных исходя из фильтров, для каждого скрипта выдаёт Embed с заголовком и тремя полями - именований, статуса и типа, помимо этого, выдаёт 3 файла, 2 когда (raw & compiled) и ещё один с env, что позволяет сделать необходимые действия.


обновить скрипты- обновляет guild only скриптывыполнить скрипт- работает аналогично кнопке из меню скриптов разработчиков, что тоже помогает в работе со скриптами
- пройдите на портал Discord dev portal
- создайте новый проект и настройте его
- Bot (https://discord.com/developers/applications/ID_ВАШЕГО_БОТА/bot)
- Presence Intent - On
- Server Members Intent - On
- Message Content Intent - On
- скопируйте токен в .env файл как
GUARD_BOT_API_KEY, взять тот-же токен ещё раз не выйдет, он будет новый
- OAuth2 (https://discord.com/developers/applications/ID_ВАШЕГО_БОТА/oauth2)
- OAuth2 URL Generator
- bot - On
- application.commands - On
- скопируйте ссылку для установки бота, так вы найдёте своего бота во всём списке приложений Discord
- OAuth2 URL Generator
- Bot (https://discord.com/developers/applications/ID_ВАШЕГО_БОТА/bot)
- создайте новый проект и настройте его
- зайдите на портал Google Console Cloud
- создайте новый проект
- select a project
- New project (настройте название если хотите)
- У меня включено, но я не уверен необходимо ли это
Этот шаг может быть излишним, но в моих планах подключение бота к официальным сервисам + я не до конца разобрался с работойGoogle Console Cloud, возможно он задействует этот API при работе вOAuth 2.0 Client ID. Так же я не могу вспомнить, настраивается ли это при создании Client ID, UI меняется после создания первого Client ID, либо я опять что-то напутал- найдите и включите расширение YouTube Data API v3
- в меню credentials создайте новый API токен и скопируйте
его
в .env, как
GOOGLE_CONSOLE_CLOUD_YOUTUBE_API_KEY- укажите в качестве правила
YouTube Data API v3, так токен будет привязан только к этому сервису
- укажите в качестве правила
- создайте новый аккаунт Google (на всякий случай)
- При первом запуске бот подгрузит токен и откроет браузер, а в консоль выведет ссылку для входа, зайдите с
этого
аккаунта Google и подтвердите вход, если у вас не выходит, попробуйте добавить почту, привязанную к аккаунту в
Audience -
Test users
- При первом запуске бот подгрузит токен и откроет браузер, а в консоль выведет ссылку для входа, зайдите с
этого
аккаунта Google и подтвердите вход, если у вас не выходит, попробуйте добавить почту, привязанную к аккаунту в
Audience -
- откройте меню и зайдите в credentials
- создайте
OAuth 2.0 Client ID- укажите
DesktopAppв качестве типа проекта - можете настроить имя
- скачайте json файл с токен-ом для входа и поместите его в
secret/gc_client_secret_token.json, чтобы бот смог его найти
- укажите
- создайте
- создайте новый проект
- клонируйте репозиторий
git clone https://github.com/MarcT1me/GuardBot.git- зайдите в папку
cd GuardBot
- установите зависимости Python и запустите проект
pip install -r requiements.txt python ./main.py




