Исходник Handmade [Discord] bot - V2

ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Discord bot using discord.py v1.5.1

Скачать -
Пожалуйста, авторизуйтесь для просмотра ссылки.


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

Функционал бота: картиночки эротического содержания были удалены, хе-хе
1615566705970.png

1615566730182.png

1615566753256.png
Информация
!help - вывод всех команд
!ping - вывод задержки клиента
!anime - вывод топа списка пользователя Шикимори
Развлечение
!ecchi - рандом картинка из папки ecchi
!foot - рандом картинка из папки foot
!joke - случайно сгенерированная шутка (1-18 - темы шутки)
Модерирование
!clear - очистка текущего текстового канала (с лимитом дискорда)
!temp_category_set - установить id категории для системы 'Temp Rooms'
!temp_rooms_set -установить id генератора комнат для системы 'Temp Rooms'
Музыка
!play - проигрывание музыки
!loop - зацикливание проигрываемой музыки
!remove - удаление трека по номеру
!shuffle - перемешивание списка
!volume - установка громкости проигрывателя
!queue - очередь треков
!skip - пропустить текущий трек
!stop - остановить проигрывание музыки
!pause - пауза проигрывания
!resume - воспроизведение проигрывания
!current - информация о текущем треке
!leave - покинуть голосовой канал
!playlist_help - помощь по плейлистам
!playlist - информация о плейлисте
!playlist_create - создание нового плейлиста
!playlist_delete - удаление существующего плейлиста
!playlist_add - добавление трека в плейлист
!playlist_play - добавление плейлиста в очередь
!playlist_remove - удаление трека из плейлиста
!playlist_rename - переименовывание плейлиста
!playlists - все плейлисты
!playlists_my - плейлисты, созданные автором сообщения
!playlists_update - обновление списка плейлистов
Рандом
!roll - случайное число от 0 до 100 в виде emoji
!coin - монетка (с 3-мя состояниями (обычные+ребро))
Игры
!кнб - игра Камень Ножницы Бумага
!casino_help - помощь по азартным играм
!profile - информация о вашем профиле
!top - топ игроков (по рейтингу)
!bonus - получение бонуса
!blackjack - игра в блекджек
!slot - игра в слоты (барабанный слот)

Из интересного:
— Temp Rooms:
Создание временных комнат для всех желающий участников. Создатель комнаты может управлять комнатой. Настройка комнат для каждого сервера - простыми командами, настройки записываются в отдельный файл, связанный с гитхабом для удобного авто-обновления с возможность забыть о потере файла из-за временных директорий (например, Heroku).
— Playlists:
Создание и полное управление плейлистами. Автоматическое обновление на гитхабе.
— Система профилей:
У каждого пользователя сервера будет отдельный профиль (Без заезжанных лвлов). Примитивная система экономики (способ заработка= бонус/игра в азартные игры), лёгкая доработка на свой вкус. Существует система рейтинга и редкой валюты.
— Cистема специального канала:
В конфиге бота вы сможете установить настройку, которая позволит взаимодействовать с ботом лишь в отведённом для него канале.

Здесь расписаны, разумеется, не все интересные аспекты данного бота, т.к на это ушло бы огромное кол-во времени.

Настройка

Основная настройка происходит в файле \settings\config.py :
Выпустите бота, скопируйте токен, id в соответствующие поля файла.
Создайте (если не было), аккаунт гитхаб и выпустите спец. токен (я выпустил со всеми правами) и скопируйте его в поле GITHUB
Префикс можете сами поменять в поле PREFIX
Поле CUSTOM_CHANNEL отвечает за спец. возможность взаимодействия с ботом в отдельном канале - установите True для включения данной функции и укажите имя данного канала ниже.

На Github создайте 2 репозитория (можете сделать их приватными), у одного из репозитория название - playlists, у другого - users.
В репозиторий playlists поместите файл
playlists\default.json
В репозиторий users поместите 2 файла: files\users.json и files\servers.json


Также существует отдельная настройка системы профиля - зайдите в \tools\casino\controller.py и вверху вы найдёте некоторые переменные:

income - отвечает за систему накоплений (чем больше денег - тем больше бонус)
B_TIME - раз в какое кол-во секунд человек сможет получать бонус
B_DIAMONDS - какое кол-во спец. валюты (алмазов) сможет получать человек в бонусе

Для корректной работы музыкальной системы вам потребуется:
ffmpeg - установите buildpack/иное средство на ваш хостинг бота, либо напрямую поместите EXE файл ffmpeg(найдёте сами) в корневую директорию.
создать свои cookie ютуба и поместить их в файл tools\cookies.txt (для обхода некоторых видеороликов с возрастным ограничением). Не забывайте также обновлять модуль youtube-dl до последней версии!


Запуск происходит при помощи файла start.py
Не забудьте установить модули из текстовика requirements


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

Личный блог -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
take the shot sir, take it :'X
Начинающий
Статус
Оффлайн
Регистрация
8 Фев 2021
Сообщения
88
Реакции[?]
23
Поинты[?]
0
что значит Handmade? типа сделано с помощью рук? xD
 
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Что не крутится, то легит
Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2019
Сообщения
157
Реакции[?]
22
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
21 Фев 2017
Сообщения
37
Реакции[?]
4
Поинты[?]
0
не работает удаление комнаты после выхода
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
23 Мар 2019
Сообщения
4
Реакции[?]
0
Поинты[?]
0
Не работает, выдает такую ошибку - 1630775935909.png
что делать? Все модули установлены и в конфиге всё сделал
 
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Начинающий
Статус
Оффлайн
Регистрация
2 Мар 2021
Сообщения
30
Реакции[?]
5
Поинты[?]
0
Вау, отличная работа. Мне бы "на коленке" такое собирать !!:screamcat:
 
душнила
Пользователь
Статус
Оффлайн
Регистрация
19 Июн 2019
Сообщения
254
Реакции[?]
45
Поинты[?]
6K
Python:
# Есть ли права администратора у пользователя
def is_admin(ctx):
    return ctx.message.author.guild_permissions.administrator
Плохая идея давать права админа, лучше по ролям сделать
 
keep silence
Участник
Статус
Оффлайн
Регистрация
17 Дек 2018
Сообщения
546
Реакции[?]
201
Поинты[?]
0
Скачал ради папки "images". Автору добра, позитива, процветания и успехов, а также огромное спасибо!
 
Новичок
Статус
Оффлайн
Регистрация
28 Авг 2019
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Ошибка: An error occurred: Command raised an exception: DownloadError: [0;31mERROR:[0m uelHwf8o7_U: YouTube said: Unable to extract video data
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
3 Май 2021
Сообщения
260
Реакции[?]
48
Поинты[?]
40K
Гайс сорян что поднимаю такую старую тему.
Но кто знает как поставить этот FFMPEG. Скачал архив и в папку с ботом перебросил ffmpeg.exe.
Запускаю бота, пишет
ModuleNotFoundError: No module named 'ffmpeg'
UPD: решено
 
Последнее редактирование:
Новичок
Статус
Оффлайн
Регистрация
5 Янв 2023
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Поднимаю старую тему, и вопрос к автору:
При запуске ругается:


Гайс сорян что поднимаю такую старую тему.
Но кто знает как поставить этот FFMPEG. Скачал архив и в папку с ботом перебросил ffmpeg.exe.
Запускаю бота, пишет
ModuleNotFoundError: No module named 'ffmpeg'
UPD: решено
Как ты бота запускаешь?
 
ставь чайник, зажигай плиту
Эксперт
Статус
Оффлайн
Регистрация
22 Май 2020
Сообщения
1,444
Реакции[?]
1,092
Поинты[?]
10K
Сверху Снизу