ONesVC_bot / config /config.py
BinaryONe
Minor Changes
cfcdccd
#
# Copyright (C) 2021-2022 by TeamYukki@Github, < https://github.com/TeamYukki >.
#
# This file is part of < https://github.com/TeamYukki/YukkiMusicBot > project,
# and is released under the "GNU v3.0 License Agreement".
# Please see < https://github.com/TeamYukki/YukkiMusicBot/blob/master/LICENSE >
#
# All rights reserved.
import re
import sys
from os import getenv
from dotenv import load_dotenv
from pyrogram import filters
load_dotenv()
# Get it from my.telegram.org
API_ID = int(getenv("API_ID", ""))
API_HASH = getenv("API_HASH")
## Get it from @Botfather in Telegram.
BOT_TOKEN = getenv("BOT_TOKEN")
# Database to save your chats and stats... Get MongoDB:- https://telegra.ph/How-To-get-Mongodb-URI-04-06
MONGO_DB_URI = getenv("MONGO_DB_URI", None)
# Custom max audio(music) duration for voice chat. set DURATION_LIMIT in variables with your own time(mins), Default to 60 mins.
DURATION_LIMIT_MIN = int(
getenv("DURATION_LIMIT", "60")
) # Remember to give value in Minutes
# Duration Limit for downloading Songs in MP3 or MP4 format from bot
SONG_DOWNLOAD_DURATION = int(
getenv("SONG_DOWNLOAD_DURATION_LIMIT", "180")
) # Remember to give value in Minutes
# You'll need a Private Group ID for this.
LOG_GROUP_ID = int(getenv("LOG_GROUP_ID", ""))
MEMBERS_GROUPS = getenv("MEMBERS_GROUPS")
# A name for your Music bot.
MUSIC_BOT_NAME = getenv("MUSIC_BOT_NAME")
#OWNER_ID = int(getenv("OWNER_ID", ""))
# Your User ID.
OWNER_ID = list(map(int, getenv("OWNER_ID", "").split())) # Input type must be interger
# Get it from http://dashboard.heroku.com/account
HEROKU_API_KEY = getenv("HEROKU_API_KEY")
# You have to Enter the app name which you gave to identify your Music Bot in Heroku.
HEROKU_APP_NAME = getenv("HEROKU_APP_NAME")
# For customized or modified Repository
UPSTREAM_REPO = getenv(
"UPSTREAM_REPO",
"https://github.com/TeamYukki/YukkiMusicBot",
)
UPSTREAM_BRANCH = getenv("UPSTREAM_BRANCH", "master")
# GIT TOKEN ( if your edited repo is private)
GIT_TOKEN = getenv("GIT_TOKEN", None)
# Only Links formats are accepted for this Var value.
SUPPORT_CHANNEL = getenv(
"SUPPORT_CHANNEL", None
) # Example:- https://t.me/TheYukki
SUPPORT_GROUP = getenv(
"SUPPORT_GROUP", None
) # Example:- https://t.me/YukkiSupport
# Set it in True if you want to leave your assistant after a certain amount of time. [Set time via AUTO_LEAVE_ASSISTANT_TIME]
AUTO_LEAVING_ASSISTANT = getenv("AUTO_LEAVING_ASSISTANT", None)
# Time after which you're assistant account will leave chats automatically.
AUTO_LEAVE_ASSISTANT_TIME = int(
getenv("ASSISTANT_LEAVE_TIME", "5400")
) # Remember to give value in Seconds
# Time after which bot will suggest random chats about bot commands.
AUTO_SUGGESTION_TIME = int(
getenv("AUTO_SUGGESTION_TIME", "5400")
) # Remember to give value in Seconds
# Set it True if you want to delete downloads after the music playout ends from your downloads folder
AUTO_DOWNLOADS_CLEAR = getenv("AUTO_DOWNLOADS_CLEAR", None)
# Set it True if you want to bot to suggest about bot commands to random chats of your bots.
AUTO_SUGGESTION_MODE = getenv("AUTO_SUGGESTION_MODE", None)
# Set it true if you want your bot to be private only [You'll need to allow CHAT_ID via /authorise command then only your bot will play music in that chat.]
PRIVATE_BOT_MODE = getenv("PRIVATE_BOT_MODE", None)
# Time sleep duration For Youtube Downloader
YOUTUBE_DOWNLOAD_EDIT_SLEEP = int(getenv("YOUTUBE_EDIT_SLEEP", "3"))
# Time sleep duration For Telegram Downloader
TELEGRAM_DOWNLOAD_EDIT_SLEEP = int(getenv("TELEGRAM_EDIT_SLEEP", "5"))
# Your Github Repo.. Will be shown on /start Command
GITHUB_REPO = getenv("GITHUB_REPO", None)
# Spotify Client.. Get it from https://developer.spotify.com/dashboard
SPOTIFY_CLIENT_ID = getenv("SPOTIFY_CLIENT_ID", None)
SPOTIFY_CLIENT_SECRET = getenv("SPOTIFY_CLIENT_SECRET", None)
# Maximum number of video calls allowed on bot. You can later set it via /set_video_limit on telegram
VIDEO_STREAM_LIMIT = int(getenv("VIDEO_STREAM_LIMIT", "3"))
# Maximum Limit Allowed for users to save playlists on bot's server
SERVER_PLAYLIST_LIMIT = int(getenv("SERVER_PLAYLIST_LIMIT", "30"))
# MaximuM limit for fetching playlist's track from youtube, spotify, apple links.
PLAYLIST_FETCH_LIMIT = int(getenv("PLAYLIST_FETCH_LIMIT", "25"))
# Cleanmode time after which bot will delete its old messages from chats
CLEANMODE_DELETE_MINS = int(
getenv("CLEANMODE_MINS", "5")
) # Remember to give value in Seconds
# Telegram audio and video file size limit
TG_AUDIO_FILESIZE_LIMIT = int(
getenv("TG_AUDIO_FILESIZE_LIMIT", "104857600")
) # Remember to give value in bytes
TG_VIDEO_FILESIZE_LIMIT = int(
getenv("TG_VIDEO_FILESIZE_LIMIT", "1073741824")
) # Remember to give value in bytes
# Chceckout https://www.gbmb.org/mb-to-bytes for converting mb to bytes
# If you want your bot to setup the commands automatically in the bot's menu set it to true.
# Refer to https://i.postimg.cc/Bbg3LQTG/image.png
SET_CMDS = getenv("SET_CMDS", True)
# You'll need a Pyrogram String Session for these vars. Generate String from our session generator bot @YukkiStringBot
STRING1 = getenv("STRING_SESSION", None)
STRING2 = getenv("STRING_SESSION2", None)
STRING3 = getenv("STRING_SESSION3", None)
STRING4 = getenv("STRING_SESSION4", None)
STRING5 = getenv("STRING_SESSION5", None)
# __ ___ _ _ ___ _______ __ __ _ _ _____ _____ _____ ____ ____ _______
# \ \ / / | | | |/ / |/ /_ _| | \/ | | | |/ ____|_ _/ ____| | _ \ / __ \__ __|
# \ \_/ /| | | | ' /| ' / | | | \ / | | | | (___ | || | | |_) | | | | | |
# \ / | | | | < | < | | | |\/| | | | |\___ \ | || | | _ <| | | | | |
# | | | |__| | . \| . \ _| |_ | | | | |__| |____) |_| || |____ | |_) | |__| | | |
# |_| \____/|_|\_\_|\_\_____| |_| |_|\____/|_____/|_____\_____| |____/ \____/ |_|
### DONT TOUCH or EDIT codes after this line
BANNED_USERS = filters.user()
YTDOWNLOADER = 1
LOG = 2
LOG_FILE_NAME = "Yukkilogs.txt"
adminlist = {}
lyrical = {}
chatstats = {}
userstats = {}
clean = {}
autoclean = []
# Images
START_IMG_URL = getenv("START_IMG_URL", None)
PING_IMG_URL = getenv(
"PING_IMG_URL",
"assets/Ping.jpeg",
)
PLAYLIST_IMG_URL = getenv(
"PLAYLIST_IMG_URL",
"assets/Playlist.jpeg",
)
GLOBAL_IMG_URL = getenv(
"GLOBAL_IMG_URL",
"assets/Global.jpeg",
)
STATS_IMG_URL = getenv(
"STATS_IMG_URL",
"assets/Stats.jpeg",
)
TELEGRAM_AUDIO_URL = getenv(
"TELEGRAM_AUDIO_URL",
"assets/Audio.jpeg",
)
TELEGRAM_VIDEO_URL = getenv(
"TELEGRAM_VIDEO_URL",
"assets/Video.jpeg",
)
STREAM_IMG_URL = getenv(
"STREAM_IMG_URL",
"assets/Stream.jpeg",
)
SOUNCLOUD_IMG_URL = getenv(
"SOUNCLOUD_IMG_URL",
"assets/Soundcloud.jpeg",
)
YOUTUBE_IMG_URL = getenv(
"YOUTUBE_IMG_URL",
"assets/Youtube.jpeg",
)
SPOTIFY_ARTIST_IMG_URL = getenv(
"SPOTIFY_ARTIST_IMG_URL",
"assets/SpotifyArtist.jpeg",
)
SPOTIFY_ALBUM_IMG_URL = getenv(
"SPOTIFY_ALBUM_IMG_URL",
"assets/SpotifyAlbum.jpeg",
)
SPOTIFY_PLAYLIST_IMG_URL = getenv(
"SPOTIFY_PLAYLIST_IMG_URL",
"assets/SpotifyPlaylist.jpeg",
)
def time_to_seconds(time):
stringt = str(time)
return sum(
int(x) * 60**i
for i, x in enumerate(reversed(stringt.split(":")))
)
DURATION_LIMIT = int(time_to_seconds(f"{DURATION_LIMIT_MIN}:00"))
SONG_DOWNLOAD_DURATION_LIMIT = int(
time_to_seconds(f"{SONG_DOWNLOAD_DURATION}:00")
)
if SUPPORT_CHANNEL:
if not re.match("(?:http|https)://", SUPPORT_CHANNEL):
print(
"[ERROR] - Your SUPPORT_CHANNEL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if SUPPORT_GROUP:
if not re.match("(?:http|https)://", SUPPORT_GROUP):
print(
"[ERROR] - Your SUPPORT_GROUP url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if UPSTREAM_REPO:
if not re.match("(?:http|https)://", UPSTREAM_REPO):
print(
"[ERROR] - Your UPSTREAM_REPO url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if GITHUB_REPO:
if not re.match("(?:http|https)://", GITHUB_REPO):
print(
"[ERROR] - Your GITHUB_REPO url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if PING_IMG_URL:
if PING_IMG_URL != "assets/Ping.jpeg":
if not re.match("(?:http|https)://", PING_IMG_URL):
print(
"[ERROR] - Your PING_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if PLAYLIST_IMG_URL:
if PLAYLIST_IMG_URL != "assets/Playlist.jpeg":
if not re.match("(?:http|https)://", PLAYLIST_IMG_URL):
print(
"[ERROR] - Your PLAYLIST_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if GLOBAL_IMG_URL:
if GLOBAL_IMG_URL != "assets/Global.jpeg":
if not re.match("(?:http|https)://", GLOBAL_IMG_URL):
print(
"[ERROR] - Your GLOBAL_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if STATS_IMG_URL:
if STATS_IMG_URL != "assets/Stats.jpeg":
if not re.match("(?:http|https)://", STATS_IMG_URL):
print(
"[ERROR] - Your STATS_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if TELEGRAM_AUDIO_URL:
if TELEGRAM_AUDIO_URL != "assets/Audio.jpeg":
if not re.match("(?:http|https)://", TELEGRAM_AUDIO_URL):
print(
"[ERROR] - Your TELEGRAM_AUDIO_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if STREAM_IMG_URL:
if STREAM_IMG_URL != "assets/Stream.jpeg":
if not re.match("(?:http|https)://", STREAM_IMG_URL):
print(
"[ERROR] - Your STREAM_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if SOUNCLOUD_IMG_URL:
if SOUNCLOUD_IMG_URL != "assets/Soundcloud.jpeg":
if not re.match("(?:http|https)://", SOUNCLOUD_IMG_URL):
print(
"[ERROR] - Your SOUNCLOUD_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if YOUTUBE_IMG_URL:
if YOUTUBE_IMG_URL != "assets/Youtube.jpeg":
if not re.match("(?:http|https)://", YOUTUBE_IMG_URL):
print(
"[ERROR] - Your YOUTUBE_IMG_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if TELEGRAM_VIDEO_URL:
if TELEGRAM_VIDEO_URL != "assets/Video.jpeg":
if not re.match("(?:http|https)://", TELEGRAM_VIDEO_URL):
print(
"[ERROR] - Your TELEGRAM_VIDEO_URL url is wrong. Please ensure that it starts with https://"
)
sys.exit()
if not MUSIC_BOT_NAME.isascii():
print(
"[ERROR] - You've defined MUSIC_BOT_NAME wrong. Please don't use any special characters or Special font for this... Keep it simple and small."
)
sys.exit()