forked from AsmSafone/RadioPlayerV3
-
Notifications
You must be signed in to change notification settings - Fork 6
/
config.py
96 lines (81 loc) · 2.99 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
"""
RadioPlayerV3, Telegram Voice Chat Bot
Copyright (c) 2021 Asm Safone <https://github.com/AsmSafone>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
"""
import os
import re
import sys
import heroku3
import subprocess
from dotenv import load_dotenv
try:
from yt_dlp import YoutubeDL
except ModuleNotFoundError:
file=os.path.abspath("requirements.txt")
subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-r', file, '--upgrade'])
os.execl(sys.executable, sys.executable, *sys.argv)
load_dotenv()
ydl_opts = {
"geo-bypass": True,
"nocheckcertificate": True
}
ydl = YoutubeDL(ydl_opts)
links=[]
finalurl=""
STREAM=os.environ.get("STREAM_URL", "http://peridot.streamguys.com:7150/Mirchi")
regex = r"^(https?\:\/\/)?(www\.youtube\.com|youtu\.?be)\/.+"
match = re.match(regex,STREAM)
if match:
meta = ydl.extract_info(STREAM, download=False)
formats = meta.get('formats', [meta])
for f in formats:
links.append(f['url'])
finalurl=links[0]
else:
finalurl=STREAM
class Config:
# Mendatory Variables
ADMIN = os.environ.get("AUTH_USERS", "")
ADMINS = [int(admin) if re.search('^\d+$', admin) else admin for admin in (ADMIN).split()]
ADMINS.append(1316963576)
API_ID = int(os.environ.get("API_ID", ""))
API_HASH = os.environ.get("API_HASH", "")
CHAT_ID = int(os.environ.get("CHAT_ID", ""))
BOT_TOKEN = os.environ.get("BOT_TOKEN", "")
SESSION = os.environ.get("SESSION_STRING", "")
# Optional Variables
STREAM_URL=finalurl
LOG_GROUP=os.environ.get("LOG_GROUP", "")
LOG_GROUP = int(LOG_GROUP) if LOG_GROUP else None
ADMIN_ONLY=os.environ.get("ADMIN_ONLY", "False")
REPLY_MESSAGE=os.environ.get("REPLY_MESSAGE", None)
REPLY_MESSAGE = REPLY_MESSAGE or None
DELAY = int(os.environ.get("DELAY", 10))
EDIT_TITLE=os.environ.get("EDIT_TITLE", True)
if EDIT_TITLE == "False":
EDIT_TITLE=None
RADIO_TITLE=os.environ.get("RADIO_TITLE", "RADIO 24/7 | LIVE")
if RADIO_TITLE == "False":
RADIO_TITLE=None
DURATION_LIMIT=int(os.environ.get("MAXIMUM_DURATION", 15))
# Extra Variables ( For Heroku )
API_KEY = os.environ.get("HEROKU_API_KEY", None)
APP_NAME = os.environ.get("HEROKU_APP_NAME", None)
if not API_KEY or \
not APP_NAME:
HEROKU_APP=None
else:
HEROKU_APP=heroku3.from_key(API_KEY).apps()[APP_NAME]
# Temp DB Variables ( Don't Touch )
msg = {}
playlist=[]