From 64f77acca53f794a15a858d6ee0086cd54291b12 Mon Sep 17 00:00:00 2001 From: AlexInCube Date: Sat, 6 Jul 2024 14:06:45 +0300 Subject: [PATCH] 3.0.0-dev-6 Reworked /report command, now it gives a link to issues or discussions. Removed modal handling. Command //setPrefix now accepts prefix with length of two characters. Added wiki page for Commands. Command audiodebug available only for overpowered user. --- README.md | 2 +- package.json | 2 +- src/commands/admin/setPrefix.command.ts | 4 +- src/commands/audio/audiodebug.command.ts | 3 + src/commands/info/report.command.ts | 38 ++---- src/events/interactionCreate.event.ts | 2 - .../interactionHandlers/modalsHandler.ts | 23 ---- src/locales/en/commands.json | 10 +- src/locales/ru/commands.json | 10 +- src/utilities/isOverpoweredUser.ts | 5 + wiki/API-Configure.md | 26 ++-- wiki/Commands.md | 129 ++++++++++++++++++ wiki/Setup.md | 57 ++++---- .../discord-dev-enable-intents.png | Bin .../discord-dev-selected-app.png | Bin .../spotify-dev-create-app.png | Bin .../{ => api-configure}/spotify-dev-main.png | Bin .../yandex-music-extension.png | Bin .../{ => api-configure}/yandex-music-uid.png | Bin wiki/images/commands/play-audioplayer.png | Bin 0 -> 21398 bytes wiki/images/commands/play-autocomplete.png | Bin 0 -> 58840 bytes wiki/images/commands/play-file.png | Bin 0 -> 10820 bytes wiki/images/commands/playing.png | Bin 0 -> 5157 bytes 23 files changed, 204 insertions(+), 107 deletions(-) delete mode 100644 src/events/interactionHandlers/modalsHandler.ts create mode 100644 src/utilities/isOverpoweredUser.ts rename wiki/images/{ => api-configure}/discord-dev-enable-intents.png (100%) rename wiki/images/{ => api-configure}/discord-dev-selected-app.png (100%) rename wiki/images/{ => api-configure}/spotify-dev-create-app.png (100%) rename wiki/images/{ => api-configure}/spotify-dev-main.png (100%) rename wiki/images/{ => api-configure}/yandex-music-extension.png (100%) rename wiki/images/{ => api-configure}/yandex-music-uid.png (100%) create mode 100644 wiki/images/commands/play-audioplayer.png create mode 100644 wiki/images/commands/play-autocomplete.png create mode 100644 wiki/images/commands/play-file.png create mode 100644 wiki/images/commands/playing.png diff --git a/README.md b/README.md index 743108e..fd7255b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Cool audiobot for Discord created by @Ale ## 🌟 Features - Command /alcotest which shows your alcohol count in blood -- Audioplayer based on [Distube](https://github.com/skick1234/DisTube) with buttons ![image](https://i.imgur.com/zqQ6ViY.png) +- Audioplayer based on [Distube](https://github.com/skick1234/DisTube) with buttons ![play-audioplayer](/wiki/images/commands/play-audioplayer.png) - Support YouTube, Spotify, Soundcloud, any HTTP-stream and Discord Attachments (/playfile support MP3/WAV/OGG) - Support Slash and Text commands (with customizable prefix per server using /setprefix) - Localization (English and Russian are currently supported) diff --git a/package.json b/package.json index dd0523d..dda26b6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aicbot", - "version": "3.0.0-dev-5", + "version": "3.0.0-dev-6", "description": "Discord Bot for playing music", "main": "build/main.js", "scripts": { diff --git a/src/commands/admin/setPrefix.command.ts b/src/commands/admin/setPrefix.command.ts index 3016f1f..4578798 100644 --- a/src/commands/admin/setPrefix.command.ts +++ b/src/commands/admin/setPrefix.command.ts @@ -9,7 +9,7 @@ export default function (): ICommand { text_data: { name: 'setprefix', description: i18next.t('commands:set_prefix_desc'), - arguments: [new CommandArgument('символ', true)], + arguments: [new CommandArgument('newprefix', true)], execute: async (message: Message, args: string[]): Promise => { const prefix: string = args[0]; if (!prefix) return; @@ -50,7 +50,7 @@ export default function (): ICommand { async function changePrefixTo(guild: Guild, prefix: string): Promise { if (prefix === '/' || prefix === '@' || prefix === '#') return i18next.t('commands:set_prefix_restrict_prefixes', { prefixes: '/ @ #' }) as string; - if (prefix.length > 1) return i18next.t('commands:set_prefix_length_error') as string; + if (prefix.length > 2) return i18next.t('commands:set_prefix_length_error') as string; await setGuildOption(guild, 'prefix', prefix); return i18next.t('commands:set_prefix_success_change', { prefix: prefix }) as string; } diff --git a/src/commands/audio/audiodebug.command.ts b/src/commands/audio/audiodebug.command.ts index 178938a..fcaa8be 100644 --- a/src/commands/audio/audiodebug.command.ts +++ b/src/commands/audio/audiodebug.command.ts @@ -1,6 +1,7 @@ import { ICommand } from '../../CommandTypes.js'; import { PermissionsBitField } from 'discord.js'; import { GroupAudio } from './AudioTypes.js'; +import { isOverpoweredUser } from '../../utilities/isOverpoweredUser.js'; export default function (): ICommand { return { @@ -8,6 +9,8 @@ export default function (): ICommand { name: 'audiodebug', description: 'Debug info about audioplayers', execute: async (message) => { + if (!isOverpoweredUser(message.author.id)) return; + await message.reply({ content: message.client.audioPlayer.playersManager.debug(), allowedMentions: { users: [] } diff --git a/src/commands/info/report.command.ts b/src/commands/info/report.command.ts index 858e725..ee33878 100644 --- a/src/commands/info/report.command.ts +++ b/src/commands/info/report.command.ts @@ -1,17 +1,13 @@ import { ICommand } from '../../CommandTypes.js'; import { - ActionRowBuilder, ChatInputCommandInteraction, Message, - ModalActionRowComponentBuilder, - ModalBuilder, PermissionsBitField, - SlashCommandBuilder, - TextInputBuilder, - TextInputStyle + SlashCommandBuilder } from 'discord.js'; import { GroupInfo } from './InfoTypes.js'; import i18next from 'i18next'; +import { generateSimpleEmbed } from '../../utilities/generateSimpleEmbed.js'; export default function (): ICommand { return { @@ -19,7 +15,7 @@ export default function (): ICommand { name: 'report', description: i18next.t('commands:report_desc'), execute: async (message: Message) => { - await message.reply(i18next.t('commands:report_text_error') as string); + await message.reply({ embeds: [generateReportEmbed()] }); } }, slash_data: { @@ -27,7 +23,7 @@ export default function (): ICommand { .setName('report') .setDescription(i18next.t('commands:report_desc')), execute: async (interaction: ChatInputCommandInteraction) => { - await interaction.showModal(generateModalWindow()); + await interaction.reply({ embeds: [generateReportEmbed()], ephemeral: true }); } }, group: GroupInfo, @@ -35,24 +31,12 @@ export default function (): ICommand { }; } -function generateModalWindow() { - const modal = new ModalBuilder() - .setCustomId('reportModal') - .setTitle(i18next.t('commands:report_modal_title')); - - const reportInput = new TextInputBuilder() - .setCustomId('reportInput') - .setLabel(i18next.t('commands:report_modal_text_label')) - .setStyle(TextInputStyle.Paragraph) - .setMinLength(20) - .setPlaceholder(i18next.t('commands:report_modal_text_placeholder')) - .setRequired(true); - - const firstActionRow = new ActionRowBuilder().addComponents( - reportInput +function generateReportEmbed() { + return generateSimpleEmbed( + i18next.t('commands:report_message', { + issueLink: 'https://github.com/AlexInCube/AlCoTest/issues/new/choose', + discussionLink: 'https://github.com/AlexInCube/AlCoTest/discussions/new?category=q-a', + interpolation: { escapeValue: false } + }) ); - - modal.addComponents(firstActionRow); - - return modal; } diff --git a/src/events/interactionCreate.event.ts b/src/events/interactionCreate.event.ts index 87cccd3..bc73dcb 100644 --- a/src/events/interactionCreate.event.ts +++ b/src/events/interactionCreate.event.ts @@ -1,7 +1,6 @@ import { BotEvent } from '../Types.js'; import { slashCommandHandler } from './interactionHandlers/slashCommandHandler.js'; import { autocompleteHandler } from './interactionHandlers/autocompleteHandler.js'; -import { modalsHandler } from './interactionHandlers/modalsHandler.js'; import { Client, Events, Interaction } from 'discord.js'; const event: BotEvent = { @@ -9,7 +8,6 @@ const event: BotEvent = { execute: async (client: Client, interaction: Interaction) => { await slashCommandHandler(interaction); await autocompleteHandler(interaction); - await modalsHandler(interaction); } }; diff --git a/src/events/interactionHandlers/modalsHandler.ts b/src/events/interactionHandlers/modalsHandler.ts deleted file mode 100644 index cb4a041..0000000 --- a/src/events/interactionHandlers/modalsHandler.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { submitReport } from '../../handlers/MongoSchemas/SchemaReport.js'; -import { Interaction } from 'discord.js'; -import i18next from 'i18next'; -import { ENV } from '../../EnvironmentVariables.js'; - -export async function modalsHandler(interaction: Interaction) { - if (!interaction.isModalSubmit()) return; - if (interaction.customId === 'reportModal') { - await interaction.reply({ - content: i18next.t('commands:report_modal_feedback') as string, - ephemeral: true - }); - - const reportInput = interaction.fields.getTextInputValue('reportInput'); - const overpoweredHuman = interaction.client.users.cache.get(ENV.BOT_DISCORD_OVERPOWERED_ID); - if (overpoweredHuman) { - await overpoweredHuman.send( - `New report from ${interaction.user.username} with ID: ${interaction.user.id}\n\n${reportInput}` - ); - } - await submitReport(interaction.user.id, reportInput); - } -} diff --git a/src/locales/en/commands.json b/src/locales/en/commands.json index c24db88..763f7f0 100644 --- a/src/locales/en/commands.json +++ b/src/locales/en/commands.json @@ -2,7 +2,7 @@ "set_prefix_desc": "Change prefix for TEXT commands and only for current server", "set_prefix_arg_newprefix_desc": "Don't forget to inform the other server members about the changed prefix", "set_prefix_restrict_prefixes": "You can't specify characters {{prefixes}} as a prefix", - "set_prefix_length_error": "The prefix cannot be longer than one character", + "set_prefix_length_error": "The prefix cannot be longer than two characters", "set_prefix_success_change": "Prefix successful changed on this server to {{prefix}}", "help_desc": "Commands list", "help_arg_command": "command name", @@ -56,12 +56,8 @@ "stop_success": "turned off the audioplayer", "alcotest_desc": "Writes the percentage of beer in your blood", "alcotest_success": "You are consisting of beer on the", - "report_desc": "Opens a modal window for sending a message to the developer", - "report_text_error": "Unfortunately, this command only works if it is called with /. So write /report", - "report_modal_title": "Creating a wish/complaint", - "report_modal_text_label": "What functionality to add or what to fix", - "report_modal_text_placeholder": "Describe clearly and precisely", - "report_modal_feedback": "Maybe I'll listen to you.", + "report_desc": "Return links to Github Issues or GitHub Discussions", + "report_message": "Create [Issue]({{issueLink}}) or [Discussion]({{discussionLink}})", "status_desc": "View bot status", "status_embed_title": "Bot status", "status_embed_bot_version": "Bot version", diff --git a/src/locales/ru/commands.json b/src/locales/ru/commands.json index b04bb00..7e64d87 100644 --- a/src/locales/ru/commands.json +++ b/src/locales/ru/commands.json @@ -2,7 +2,7 @@ "set_prefix_desc": "Меняет префикс для ТЕКСТОВЫХ команд и только для текущего сервера", "set_prefix_arg_newprefix_desc": "Не забудьте сообщить остальным участникам сервера об изменённом префиксе", "set_prefix_restrict_prefixes": "Нельзя указывать символы {{prefixes}} в качестве префикса", - "set_prefix_length_error": "Префикс не может быть длиннее одного символа", + "set_prefix_length_error": "Префикс не может быть длиннее двух символов", "set_prefix_success_change": "Префикс на этом сервере успешно изменён на {{prefix}}", "help_desc": "Список команд", "help_arg_command": "название команды", @@ -56,12 +56,8 @@ "stop_success": "выключил(-а) плеер", "alcotest_desc": "Пишет процент пива в твоей крови", "alcotest_success": "Вы состоите из пива на", - "report_desc": "Открывает окно для отправки сообщения разработчику", - "report_text_error": "К сожалению эта команда работает только если она вызвана через /. Так что напишите /report", - "report_modal_title": "Создание пожелания/жалобы", - "report_modal_text_label": "Какой функционал добавить или что исправить", - "report_modal_text_placeholder": "Описывайте ясно и чётко", - "report_modal_feedback": "Возможно я к тебе прислушаюсь", + "report_desc": "Возвращает ссылки на Github Issues или Github Discussions", + "report_message": "Создайте [Issue]({{issueLink}}) или [Discussion]({{discussionLink}})", "status_desc": "Просмотр состояния бота", "status_embed_title": "Состояние бота", "status_embed_bot_version": "Версия бота", diff --git a/src/utilities/isOverpoweredUser.ts b/src/utilities/isOverpoweredUser.ts new file mode 100644 index 0000000..72f35ee --- /dev/null +++ b/src/utilities/isOverpoweredUser.ts @@ -0,0 +1,5 @@ +import { ENV } from '../EnvironmentVariables.js'; + +export function isOverpoweredUser(userId: string): boolean { + return userId === ENV.BOT_DISCORD_OVERPOWERED_ID; +} diff --git a/wiki/API-Configure.md b/wiki/API-Configure.md index 001d281..4c13f4c 100644 --- a/wiki/API-Configure.md +++ b/wiki/API-Configure.md @@ -2,7 +2,7 @@ > Don't share this API data with anyone because you can get compromised. > If this happens, reset the tokens and get them again. -## Discord Developer Portal (required) +# Discord Developer Portal (required) 1. Open the [Discord Developer Portal](https://discord.com/developers/applications) and log into your account. 2. Click on the "New Application" button. @@ -10,7 +10,7 @@ You should see a page like this: -![discord-dev-selected-app](./images/discord-dev-selected-app.png) +![discord-dev-selected-app](images/api-configure/discord-dev-selected-app.png) You can edit your application's name, description, and avatar here. Once you've done that, then congratulations—you're now the proud owner of a shiny new Discord bot! You're not entirely done, though. @@ -19,9 +19,9 @@ You can edit your application's name, description, and avatar here. Once you've 6. Press "Reset token" button and copy token. 7. Also enable all "Privileged Gateway Intents" -![discord-dev-enable-intents](./images/discord-dev-enable-intents.png) +![discord-dev-enable-intents](images/api-configure/discord-dev-enable-intents.png) -## YouTube Cookie (optional) +# YouTube Cookie (optional) Preferable to provide cookies for YouTube. This will allow you to play 18+ videos and bypass YouTube rate limiting error (429 Error). I highly recommend that you create a new Google account from which you can get the cookie. @@ -37,38 +37,38 @@ I highly recommend that you create a new Google account from which you can get t 4. Click on the extension icon and click "Export" button. 5. Create file yt-cookies.json and paste cookie in this file -## Yandex Music (optional) +# Yandex Music (optional) If you do not provide token and UID, Yandex Music will not work at all. > [!WARNING] > If your bot is outside Russia VDS, you must have a Yandex Plus subscription to play songs. -### Token +## Token 1. Login into [Yandex](https://passport.yandex.ru/auth) account. 2. Download [browser extension](https://chromewebstore.google.com/detail/yandex-music-token/lcbjeookjibfhjjopieifgjnhlegmkib) -This must look like this ![yandex-extension](./images/yandex-music-extension.png) +This must look like this ![yandex-extension](images/api-configure/yandex-music-extension.png) 3. Click "Скопировать токен" button. -### UID +## UID 1. Login into [Yandex](https://passport.yandex.ru/auth) account. 2. You can retrieve uid by opening [Yandex Mail](https://mail.yandex.ru) and copy uid from the url in the address bar. -![yandex-uid](./images/yandex-music-uid.png) +![yandex-uid](images/api-configure/yandex-music-uid.png) -## Spotify (optional) +# Spotify (optional) Spotify Module can work without provided data, but for more stability better provide custom application data. > [!WARNING] > If you want to fetch playlist with more than 100 songs, this API data is required! 1. Login in [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) -2. Press "Create app" button![Spotify Dev Main](images/spotify-dev-main.png) -3. Fill the fields like this![Spotify Dev Create App](./images/spotify-dev-create-app.png) +2. Press "Create app" button![Spotify Dev Main](images/api-configure/spotify-dev-main.png) +3. Fill the fields like this![Spotify Dev Create App](images/api-configure/spotify-dev-create-app.png) 4. Press "Save" 5. On the redirected page, press "Settings" 6. On "Basic Information" section copy Client ID. 7. Under the Client ID field, press "View Client Secret" and copy Client Secret. -## Soundcloud (optional) +# Soundcloud (optional) 1. Go to [SoundCloud](https://soundcloud.com) and login. 2. Open up the dev tools (Right-click -> inspect) and go to the Network tab. diff --git a/wiki/Commands.md b/wiki/Commands.md index e69de29..574ddd8 100644 --- a/wiki/Commands.md +++ b/wiki/Commands.md @@ -0,0 +1,129 @@ +# About command system +Bot supports slash and text command systems. + +## Slash commands +Nothing special, start writing / and select command from the list + +## Text commands +If a bot owner does not change the default prefix in .env.production file, the prefix is // + +> [!NOTE] +> If bot prefix conflicting with another bot on server, +> administrator can set the second text prefix for server using [/setPrefix](#setprefix) command + +# Commands list +## Admin +It Can be used only by server administrators (people who have a role with "Administrator" permission) + +### setPrefix +Changes bot prefix for the server + +Example: /newPrefix $$ + +Prefix symbols cannot be symbols: / @ #, because these symbols reserved for Discord purpose. +Prefix length cannot be longer than two symbols. + +## Audio + +The bot philosophy built around audioplayer to reduce commands using. + +Use [/play](#play) or [/playfile](#playfile) to spawn audioplayer +![play-audioplayer](images/commands/play-audioplayer.png) + +Most of the time of using bot, you need only add songs by [/play](#play) or [/playfile](#playfile) + +When any message created in chat where audioplayer is spawned, +bot will recreate the player so that the player is always at the bottom of the chat room. + +> [!NOTE] +> Highly recommended to create a text channel for the bot + +> [!WARNING] +> Audio commands which change audioplayer state require audioplayer and be with bot in the same voice channel to exist. +> Also this kind of commands needs to be written in the same channel where audioplayer was spawned. + +### play + +Example: /play https://open.spotify.com/track/46gSk82duJtX3TTA182ruG?si=c668ab77755f4d88 + +Spawn audioplayer in a text channel if not exists. +Accept songs/playlist from links. +Support searching on YouTube +when you write something like this ![play-autocomplete](images/commands/play-autocomplete.png) + +### playfile + +Do the same things as play command, but accept MP3/WAV/OGG files instead of text/links + +![play-file](images/commands/play-file.png) + +### playing + +Return the current playback time of the song +![playing](images/commands/playing.png) + +### download + +Accept links you songs and return mp3 file in a text channel where the command is called. + +Example: /download https://www.youtube.com/watch?v=60ItHLz5WEA + +### jump + +If your queue has a large count of songs, you can jump to the desired song. +To get the number of songs you want, press the button in audioplayer to get a queue songs list. + +Example: /jump 4 + +### previous + +Returns to previous played/skipped song in queue + +### rewind + +Allow you to change the current playback time. +Accept time in HH:MM:SS or MM:SS or SS format. + +Example: 1:02:32 + +### shuffle + +Shuffle the next songs in the queue + +### skip + +Skip current playing song + +### stop + +Kill the audioplayer + +### audiodebug + +Give the current count of spawned audioplayers + +> [!NOTE] +> This command supported only by text command system +> Also you must be overpowered user. + +## Fun + +### alcotest +Generate random number for 0 to 100 + +## Info + +### help +Return the command list or certain command description + +Command list example: /help +Certain command example: /help play + +### inviteLink +Return the link for inviting the bot. Give the link to the administrator on another server. + +### status +Return bot status data, about: OS, Ram Usage, Cpu Model, Cpu Usage, AICoTest Version, Servers Count. + +### report +Return links to GitHub Issues or GitHub Discussions. diff --git a/wiki/Setup.md b/wiki/Setup.md index 9937cea..351960c 100644 --- a/wiki/Setup.md +++ b/wiki/Setup.md @@ -1,34 +1,36 @@ -## ⚙️ Configure .env +# ⚙️ Configure .env + You can use Docker Compose or install all dependencies and source code locally. -But in both cases, you need to configure .env file. +But in both cases, you need to configure .env file. Also you need retrieve token, client id and enable intents on Discord Developer Portal. - Create file .env.production - Fill all fields in .env.production. If the field is marked as (Optional), you can skip it. -- (Required) To get Discord Token and enable intents, follow the [Discord Developer Portal](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#discord-developer-portal-required) section. +- (Required) To get Discord Token and enable intents, follow the [Discord Developer Portal](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#discord-developer-portal-required) section. - (Optional) To get Spotify Secret and ID, follow the [Spotify](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#spotify-optional) section. - (Optional) To get Yandex Music token, follow the [Yandex Music](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#yandex-music-optional) section. - (Optional) To get SoundCloud token, follow the [Soundcloud](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#soundcloud-optional) section. -| Name | Example | Description | Required? | -|------------------------------|-----------------------|-------------------------------------------------------------------------|-----------| -| `BOT_VERBOSE_LOGGING` | false | The bot will give more information to the console, useful for debugging | ❌ | -| `BOT_COMMAND_PREFIX` | // | Used only for text commands | ✔️ | -| `BOT_LANGUAGE` | en | Supported values: en ru | ❌ | -| `MONGO_URI` | mongodb://mongo:27017 | The public key for sending notifications | ✔️ | -| `MONGO_DATABASE_NAME` | aicbot | Database name in MongoDB | ✔️ | -| `BOT_DISCORD_TOKEN` | ODEzNzUwMTY1N... | Token from Discord Developer Portal | ✔️ | -| `BOT_DISCORD_CLIENT_ID` | 813750165783... | Application ID from Discord Developer Portal | ✔️ | -| `BOT_DISCORD_OVERPOWERED_ID` | 29016845994426.... | This need to retrieve reports in direct message | ✔️ | -| `BOT_SPOTIFY_CLIENT_SECRET` | | Used when the Spotify module cannot get the credentials automatically | ❌ | -| `BOT_SPOTIFY_CLIENT_ID` | | Used when the Spotify module get the credentials automatically | ❌ | -| `BOT_YANDEXMUSIC_TOKEN` | | Provide to enable Yandex Music module | ❌ | -| `BOT_YANDEXMUSIC_UID` | | Provide to enable Yandex Music module | ❌ | -| `BOT_SOUNDCLOUD_CLIENT_ID` | | Provide to fetch more data with SoundCloud Go+ account | ❌ | -| `BOT_SOUNDCLOUD_TOKEN` | | Provide to fetch more data with SoundCloud Go+ account | ❌ | - -## 🐋 Run in Docker (recommended) +| Name | Example | Description | Required? | +|------------------------------|-----------------------|---------------------------------------------------------------------------|-----------| +| `BOT_VERBOSE_LOGGING` | false | The bot will give more information to the console, useful for debugging | ❌ | +| `BOT_COMMAND_PREFIX` | // | Used only for text commands | ✔️ | +| `BOT_LANGUAGE` | en | Supported values: en ru | ❌ | +| `MONGO_URI` | mongodb://mongo:27017 | The public key for sending notifications | ✔️ | +| `MONGO_DATABASE_NAME` | aicbot | Database name in MongoDB | ✔️ | +| `BOT_DISCORD_TOKEN` | ODEzNzUwMTY1N... | Token from Discord Developer Portal | ✔️ | +| `BOT_DISCORD_CLIENT_ID` | 813750165783... | Application ID from Discord Developer Portal | ✔️ | +| `BOT_DISCORD_OVERPOWERED_ID` | 29016845994426.... | Discord bot owner user ID, required for having more bot control for owner | ✔️ | +| `BOT_SPOTIFY_CLIENT_SECRET` | | Used when the Spotify module cannot get the credentials automatically | ❌ | +| `BOT_SPOTIFY_CLIENT_ID` | | Used when the Spotify module get the credentials automatically | ❌ | +| `BOT_YANDEXMUSIC_TOKEN` | | Provide to enable Yandex Music module | ❌ | +| `BOT_YANDEXMUSIC_UID` | | Provide to enable Yandex Music module | ❌ | +| `BOT_SOUNDCLOUD_CLIENT_ID` | | Provide to fetch more data with SoundCloud Go+ account | ❌ | +| `BOT_SOUNDCLOUD_TOKEN` | | Provide to fetch more data with SoundCloud Go+ account | ❌ | + +# 🐋 Run in Docker (recommended) + > [!NOTE] > Using Docker provides the auto-update feature @@ -37,15 +39,18 @@ Also you need retrieve token, client id and enable intents on Discord Developer - Follow the [Configure .env](#-configure-env) section and copy .env.production in folder with docker-compose.yml etc. - (Optional) Follow the [YouTube Cookie](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#-youtube-cookie-optional) section and copy yt-cookies.json in the folder with docker-compose.yml etc. - Your file structure must be like this + ``` AICoTest/ ├─ .env.production ├─ docker-compose.yml ├─ yt-cookies.yml ``` -- Run command ```docker-compose up --detach --force-recreate``` from folder with files -## 🖥️ Run locally (if you are not a developer, this way is no sense) +- Run command `docker-compose up --detach --force-recreate` from folder with files + +# 🖥️ Run locally (if you are not a developer, this way is no sense) + - Install [Node.js 22](https://nodejs.org/en/download/prebuilt-installer) or higher - Install [Python 3.12](https://www.python.org/downloads/) - Install C++ compiler. Follow this [guide](https://github.com/nodejs/node-gyp#on-windows) @@ -54,15 +59,19 @@ AICoTest/ - Follow the [Configure .env](#-configure-env) section and copy .env.production in folder with repository. - (Optional) Follow the [YouTube Cookie](https://github.com/AlexInCube/AlCoTest/wiki/API-Configure#-youtube-cookie-optional) and copy yt-cookies.json in the folder with repository. - Install Node.js packages in the folder with repository + ```npm npm install ``` + - Compile bot + ``` npm run build ``` + - Run the bot + ``` npm run production ``` - diff --git a/wiki/images/discord-dev-enable-intents.png b/wiki/images/api-configure/discord-dev-enable-intents.png similarity index 100% rename from wiki/images/discord-dev-enable-intents.png rename to wiki/images/api-configure/discord-dev-enable-intents.png diff --git a/wiki/images/discord-dev-selected-app.png b/wiki/images/api-configure/discord-dev-selected-app.png similarity index 100% rename from wiki/images/discord-dev-selected-app.png rename to wiki/images/api-configure/discord-dev-selected-app.png diff --git a/wiki/images/spotify-dev-create-app.png b/wiki/images/api-configure/spotify-dev-create-app.png similarity index 100% rename from wiki/images/spotify-dev-create-app.png rename to wiki/images/api-configure/spotify-dev-create-app.png diff --git a/wiki/images/spotify-dev-main.png b/wiki/images/api-configure/spotify-dev-main.png similarity index 100% rename from wiki/images/spotify-dev-main.png rename to wiki/images/api-configure/spotify-dev-main.png diff --git a/wiki/images/yandex-music-extension.png b/wiki/images/api-configure/yandex-music-extension.png similarity index 100% rename from wiki/images/yandex-music-extension.png rename to wiki/images/api-configure/yandex-music-extension.png diff --git a/wiki/images/yandex-music-uid.png b/wiki/images/api-configure/yandex-music-uid.png similarity index 100% rename from wiki/images/yandex-music-uid.png rename to wiki/images/api-configure/yandex-music-uid.png diff --git a/wiki/images/commands/play-audioplayer.png b/wiki/images/commands/play-audioplayer.png new file mode 100644 index 0000000000000000000000000000000000000000..ad93649f1fa6c109b40fc3f0a4025a5c2046f888 GIT binary patch literal 21398 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 literal 0 HcmV?d00001 diff --git a/wiki/images/commands/play-file.png b/wiki/images/commands/play-file.png new file mode 100644 index 0000000000000000000000000000000000000000..aff33964faccac6c19bf158ffa1e57962bd7c98c GIT binary patch literal 10820 zcmb_?c{r4B*!CF4Huj|v4T^*^WX~?iz7t_Wky5gay_gwfNfZgmzAKU}V_&mJ*>_{# z_kI5!^!pv}@xI^je&72Y-ye?SnPvOb;W+tNQa}QC5_cV%Gx=rj%CvrLmb7eY zo0XntMa0U?oORmVoL2j$x|UGuW|`i%JdcuiulnuSax8M~psE!>| zYECgo2(qUNg5JH(_Q6}}Y2n=HdoqNj&8Mm7J}D_u3Q-O6M!Zia28l;B+|`{F`h5k&-sARMf7}SpK_4a{0h0SFzl62q z>(U7Drg{qoJq&4}yBo^L$$P@f{eyTP1p-+=%B?_O1B1j_aUc*o8VUk|PY-fiAkRWZ z50C9mHt3IbdcR0cxVRp!c4~P$#j4T!w@IgzAIg$TgJ$)%a5)G8kBycD0z~=Q!NPM+YIDPL;Tg6-Udl^pnG#ob{om z8?~U{KUbTv{3gxhd_*R0rslYbZ4D)BBS=2ld?PE2^!qdjX3fe zgd_`YgvPaby?XqxWBe=OR>4dN-)c&xOvxk14&0=BX^82QTlv#g(OOIWkLEhLI5h{I zQwpcLruVLpTt&BRPpNBu64)ybn!oFwG?de4^Yn*U#LgDwv zhV>6iP$Nwr2in&ugGl7=&^>^0H*KCkBt8hd&>!#_S&j&G%W6^gh0a5#xep2kuaxKUIeszXV4+Sv0e>SdOt#o^w~xa>c2(@4j65%V8ucVM0;MA zac!hJl6A!SLhF+8t`-5%r1c zpsdUdv#fSobn2e9N%Qts6;0LHPY&vvW5cu&disNoFE0b~DZ=o?#ajZD6PJ!ybGUKB?qPBnV|_*%;D^()7TFM?z}J%lAvoG%@3 zsiD);B1pmkbAxG}zzG6KYw*~Mo;i(EO-B)H4>i|zf30}Ga|+@Nh`Hu8WJ~l&H&62e zj}RDu?<93FjI*pHGfTIXv}^Jg9b0%4gKB63w^}gV$wa#6Tb5wvWEHiV%fxsAif z5hECy5QATx1FwvKUm=y_G!F+dUx&&R1fr>e0HpapIly3`VGSBYpgLwC|K&h15Qymi z=YjbTXdIi6j73+}?#x{nTwHgsFG=Ab=_jd_gjdZ9%3rmmeJo?_PxO!JxsVHNQWuVs zVe>IsahXZHN{pescWD@0O3*I?J=zPG`m#%t3kVt}wc%T42M)quq@1=!xPQj}ngkiR zK@_$qYm_v?INnd2++_xL@I^%E#H9SgOV!VK1OTj3`2y$3O+mNE=f*g^Bo~{^jy(GKy|+wC6Nb38nxoAS za&CN(v_3o*hz#wa7pOsD%;p;;U%Tz2a~1H4pTw|66{MFedLl7hEYyM}@o-P^NC=21 z>FH$b335Y1?^b^vYGyS&;YiBC7ky)`SSWdLQ;T(Ac-}^;uH(RWeFnA_`t@zuN3b3q zYz}8F$KGNzJXpD)b+p7kF`W`j)dV4`%<#s8TdE*c5>hD0T(|4WJ^qOUZwTy;FfalY zHIl%TCKi|?u?)ZD|edX2D91ty)aY6 zFkeO%)2bDc09vT zrsfxMAaU}uk?a|O;m@CGBtYZ_19;paL??n5sQ3tBAd;H@fJp$WRV4~EPgjk})qxO3 zDS_S-_P~va5ugz82I)r(l=%Hvdk6)293kn2(|2QRSNjSfUYGGCr@!PgR%hXyyQu^u zXQKrCa`uEXNpmj7>hFx_`;b@ zXgnr;^-}0ywVX2n%A9(+8Kr-JIAVL6}Yz__;HXyQalK)-= zO(2x5f&kG_$6KTYnUf;%*@TZcR#)htz*!({R1aJm3DvJ-6P+M* zeE&!IKdFq>LJk~mLsY~SrXaZe+16oXjh?s%;^)RJoT~X=5WJ<@Rv?i$hqug_d@8-X zFRn_Tr?+wB1~A)W7^*vKC)|NCFgTFJ zyYpO%pM4l8Mjq$Il?RMlXTf@z2oHW_#C}njJdQjPs_C^xN$qL2`-kAVX^GvN?Xmr(mUdoazXoI^!Ep^Z=B z&S+SWI(;Z5gXql=L5s zgROGeYmjnNzEC+lKubnZN&&{OC(ih-x1X~Jze?rwJ*ver6OGYT8!|)j+=YXaEZa;0qKXjnz`RZt)h#&91-a z07!$zT&oMVE9qZWTE)>JR_D3uu+Z~8y=mb>aNpcwpZa3|iA6FM4$1%*AA-=GaWv-U z7)oBlhXzx37fuReqPPg~7!!*r4dDV6$sdR@ZH7cbtdv#mu01A_Y8U28{5S6bfYvG| z%;U|Qyf-%GX=6^)6`<&P-)cyD`*9>{4qU4=1%zL^-1Jd~p*+(k_L?4~yeop9-*%Pb+6w-<>mXo~8 zu4vyr2-*3-b2pnRgSL9(CQ!iSEqs7A3UGIcr!S*R^k%?jO<3^x>C=e#%zy)zb=r~U zQ8&0Bb^=WNg&ZS!pf`1d*R zISkaJkOE9~X;98{qJM=t{e zX#+*9tI4l{XaCF8D8iuRJ4e0MVJC&4SW+0#d4QQbkqNJ2p9T;ef8xM_h=8C5mm_dJ z$2-B#Sx_`xCkABy29t*Sb!PjwHi!{>-*;l*UcXbGt|jPO#;(%;yU(*=VnhJqoET1{ zL3y49r?45ra{sLe0T_2*Zf6X4$_@KP9O#VZnI4T}$L!^O|Hg6GkpN=AP>i1=fZ9Wo$y=Ic-hoWz*M$Dx@#kBC zr$_c>jHR#$vcskJglUze));P@uBPA}#M&vq%W63Oovzhu@pO=cFe$~x2uLd=giT!k zyf*CCwL%ELPyi`sF0sla&*4W?j&Hm3tH&u(Jd~6H#(ib=k31TR)_QJ_;pm0e--PWh zbIm%hru@d#lQQ%4`G{J_lD-rpXMoLC(3*mXbE_dCpOpeO7Qj8i0>3dB+QmDTIp5Kd zqz{XA&I##djcLLXSB3_m0^BVa{~p@_m2mTQ+O#efx}=THMcdKV{gZZV>LhnHe8!UG zWfBM#I4H=Mzqs8o>?B!In3eu;JP^(y`F69#-C z+KhGN$FFrlv@$oaJ-CclJLC^p%T`FGI_EUOq z2FJavN)a$}V-PSWK)wN(jQ|j@Ksqu>y^Es4(K7HTTh_hiBDLjuy|(gQPW=r#)dH0Q z2qEC#5JnAWV!nKdoBX#4JF#NIxgsDXW!2FokqKr`VIOmN2AjXym-@;Wc&ir>Dovzo zh7U=E4H0V)Ch@Jc!Y@nAKe3|Y5xJQ+(&t=3|>tiD@Rwc1C6c`3LC zs0s{F^hua%;o(yENC>wazcP93x;k*4$rc)6sn)|JN<)@0*gDC{1x?6V4WebWdr!t+ z{NpU!eThQL8!?fh7tR^^bNR9WjoT%v%VlmiPbJT3g;lyy>mx+5`mpZCdQ;t*v|)Pa zX3kNj;D0WqE|LCC8IA=id4^L#4yft6bt!Ow@L5j(Z$;FfS!~$rV7+{Vm|MB?P`GV#cLpI3#tQb-3*-E289!?GjL>%Qcl|^#x*BF>OyDShmpGS zkg%;x!B-voS<{})Z6>zAiUxu%le+ z!sKv%YVBq0;f?O>W>GW585ni^9yaCO5&P(t8gH`Lv?TBJ)FP;qbKWdW^J|lSVR(lc zi_}zRKi`2FA&<3Q^$U^d;uG-tZ@I`{&MKx|yDWaRr}eSTUcM$yEtGltYNJQLQ>v8H z6+cxQT}Q9Eh-vAT>42QNv5>g!EX6Bp^&KYE%t4t!?fpjGgL;OGv3t$Z1-7YdH&lYO zV%Oz4M8wu3jwZo|W+t>&5oI~E&B-C1#raOn)l`Pok7P1A-J9w=mgBt2p`!PsXP+97 z3pq^0Nd#$iLq6RO3Z?!OI<0G;cH??x@lHaToI_`YsG+xADie8PSQiRcqSjF+n11D{ zptqda9kN?DqdIhuW!$$e^W0y+9d>Azs2(#6RN`=X8}h$I@6%0V=dMzgmq$QY6y5Wh zV-8BxroZs$!5E9SP(9B-&l=F(H`XYvY7ismI4||`eZBB~SNVp-xkHAal8(naPFhY9 z&WINVd{cqL6uv=EU<{tT!it%0`+T>$wlf~58@IT#jZHL}1dtLZ8wBKnr1WcmJ-%UscT%ULzp_4NHerSF!9q}WunvQzna z4hp1KKls2$;Eu@YEBD@TT|bc4c*T!0yeO`=0^U!%D}D0v4=t|SZJLfJkZlW*{mqWy z!fB#v+RJx%I4}N|Y^{rWsHE~>S^ZC%fsdt?1=2OrvrKMq#ejyoZ{(8}xwV!?cL6jC zihT~-b;Nv2&zN$-BtpvuAr38$5o-`a*z5pAufxgu4dqXfraY3wm2A>0X-J^vx7;a( zqMU+8EbjeQj|lT<>q>6>Ht$jdRi?3>QautK|CJ?bL;NQ0Fw9v=(&MlIT2>GJPJ??#>{B4|kGhc2N*T|K05v#^^~DwYOBZKu zkY?_6=PO+>5em(%DC^&mx^4Q>Vyc`Zf~8z2{(&ivHT^u*n@bdxIz|A;(!WKJ1~R65 zN~(%^$fUjaD!9n11fmss#D+ZYbS%tVndsiAmSj%kYEqDJrnK(ws?QK=#LI>O4->#n zt&-IP+WxOMzRrK7^fWZXndHiYU`D5{C%q2>)b^h_dE40^6!q8PxYH{Iwii9qjzA}S zrrDWH%P#QTuURDlt1LX5wEHfpDgq6^xdnpxf=mT)fC77BJ@_ZWVJ(w~UN7<^Y9~MP z%_wsf#9p4X3gXj(FRo%Y!GRE@1c1&)0=2Jxp_eFbhYRN|Q)Q-*LN;)VMQvF2!K_X8 z+M!Ix?k}|;MQ$V6UHzuU*-n`48K!0}vaV63C#LW6{%kCBX%v1xE#qfRUGmx-xHg_K z3qd2hqGyIheKOu^<`1A8EfX%!?@xVf(A~2WAiMO|`+91LT+>+ax=WhkAhTo%ijEV>>hNK%bO41{~-f*!i4$khkWcxy1q#A zLGwIvG&d@c34umiB6s2v7^}ZgHcCfMwtG>Il%=q+3$XE z0Xn%r7u*1)7%fYI^Bb9sTxxa0m|W>pW8R;1!>m8P92V&o>7aftmaun`Go9VW&h?(G zn9A4OnF-%puKM&pVXa>Mr8crb>fh!n(Gz*%MxRB2<*nq4&Exu`vNV*o*7UIx0u{BO@EH+ddabaIsx z7I2dA+~>xe&RJZ}mH_BLfl$zuQy=EPj|pf3!rpP(PXpo*(IwU^S{Tf9>(eM5s7B?` zDR9%sI8W+t8zJtV7Gx^mK7aji1Vp2mL8ohwLf&+aqL)UyWW(ssLwx`B(y5dBxl6GV zL~%J!M^5`66E#d)!$+Y(bq@|^r%?YathjCPhdVb|8o}=JGT+eCPT&J+P1O&MyG?J` z=)IJ#^m*s{_Nvpc7Z#(HnMCf6M5R9cV);zNYA|GY{%FG+1?=l=h|RSd4#KO+n}*%+ z)XK8jkhaevTGIRTU;WB7u~pwYA$1#%>ceRTM@HDMF&p5qt87#6CuDPy)@H+|F0Qq| zP5Z}V7A*yw^VI(r>zu1x3J#)q#)Lyd2|;)_JQ#!q1Tu*9zdOJtUiMlK^EP&$X8U1x zq~J31Xl0Z{ZoSg6B=e#67T)=B?!_Ch;8$a*kzA>5ZdPqIy^)CfA2ojyzeo$U1~o*eR59`>IcD>5-{?{>2D?*8f|tBlHv%Tn5PHm`(ocj={<7oyzv^QP?h zJQs!;?++S&9pPyl&}4gh4W2~w{W%fcNqhL?lS9}^tB=b&yff7u!4$$Q&a!C=UeQwX z!#DibFBnBsqzP~oA)HzYL*wmJns8uu-p(JH&y627M>pvnka z{UnspH-`-jPy7AI+udV3t4wV{rYz9_?czhF16I8oIL8ndIg`^()*f}+OCI*z zJ2p?0)v5jYxWsJ7qtc|vYod5VWae1^pf0@jsq7KKTzjL|&8x=9cM?klRxO4)EwVrOcjDpk_yhetQ9%F8WQO>-@u4*Y7%@%vVJ z^LZbAsO;WmLJ698p@5}mawlwPVd+3&jUcO`_DU<{>2;wDfsG3{?(JybI?>l_*CP%= zBKq#-{wPo0i0GY`i5EsVpd1%V$n*?{iY^1eh)7NGuLs(% z3yRv*N^-+!P!d)(PE_yaq0T#%3n#huu6cB;3?Hqm+lTk|S>^{_U0#J(9&tpgFJPYv zJ&s2l&NTP3 ztgtg8VzF&b~8m}g*+$IMYi0hV0h(*EJ|e6rSF{k zK-PYX<^tlufJ5n8a%qoM5i%LPb#d?$xt&d3v7*NyP^ zA|3Z0H{WdR;OFJ8&T1{tH~Tg`+c>yxft;{v_Q&;g8Q;@UoL-*-(-F)iAH-DDx9|zh zO!tV+-+R&mM41j*TJ;;^u*QK9DT>=q3Ko4$={dd;p5A>EqTpr_&QwyBi_9%IzqSSM z$?=XX6cQXwQxaZET;khf)6KY{=J}?>ZXoZdC-%ia+EJHvPR3U*y+f~cVe;Ukc(3Ve z^n8pFGg_~7H2z%wwD~Q}g z+tx}a$^^GOm$4Q>(B-Y|_i=G7(aL_;RIDCnLvy8!fq!Tzz`j2C5m(_UKZe*>_|yFj zS?QiK>4cOqPU?WDeN3$^*iP0SfShBNC`c|y!G^gpR1mKw!ymyGdc4N@6qi+USK6{q zN!$3sl_gE2_ro#q|>cAvDuRNKURF6JNyE-9Pfd^<4(<8@fisRgj>roUP~%Fb?Pa#Ui0Ujjf^FyZ-yv( z(uw`x&&?S(vkX?R53xS=R;Q6HHf~+l#*B^*n9Kti1pe zeqeLFWyd;`&H`*nogqj$AEC{*E0F8TjW;x}4|jqQ@THmut+q{YR% z$@Fb63lo+-nEPI{x4tqH%6-!FOl;QidZ*Cb*tZZ5-*K?))E~M8XujS3PXMUF+go499M+_+Gd}3%d`*y$RDxzb-c?g)7+vbl>ti@T3u$(_p^@2-_T$CBiik$TZ>h+TOHy&<#j?iKi;*11u-*sTZAn@ zGqIl<{McTpN4VV|Fo`r7Y_612I>@Zm+IkQ|dz_gTS0O&N{jx)RoikBFwA9Eam8oc{z#IAM~n#ZYX=u<#!?4vfJ5$lS|nwKeC}j2?-R>69LM92IyW8eP!^Fp*!W zOq#dVqK+`DtotX&K|T=zNNHOW555de~dOgMuu>uqB=C zmh$LED@aOM0gL0Vj>+l@wi<0HLNj*f3)HfcoliPu;3RCZ#-(_T3Xn{+PcI*e&izPk zQ29QP?&|mi;pQ}_YNM`eGGSun9xOp@A!$z_aH{>j9zVV{aa1)3`OvpLdc%Jln;#L~ zm9FhUX_%={P2UGG1*r!(2bwc3HDUa>`-{7Du|KK+V# ztz;Y8JLwp1O*dSs)hSriO6}{dsj+FXFq~wGz8kO%xugR89{k!XA33 z{^s)zJ{lF2yD?F9Vn_~RFFE^gkPsGpQ4*6*2oh%@gh|PA`TafQlsT!1`hNbkAs#GD z2?~%8M!pmGc-|4UCM5!@%48~)6Y#iUOaiK-0=$TKyN6Iq-VPjd+v@8eAT$%f m|EVSVziFHP<30EjLP|&Mp9eR876D&}f>abW@8sMz$Nn$P!^MsO literal 0 HcmV?d00001 diff --git a/wiki/images/commands/playing.png b/wiki/images/commands/playing.png new file mode 100644 index 0000000000000000000000000000000000000000..ffebf5cce48c58509c8864d86f0a9b07e94c692e GIT binary patch literal 5157 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