File size: 7,173 Bytes
bc96bf6
 
ec24045
f218229
 
 
fe363c4
 
ec24045
bc96bf6
 
 
 
ec24045
 
 
fe363c4
ec24045
fe363c4
 
ec24045
fe363c4
 
ec24045
fe363c4
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
 
ec24045
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
ec24045
bc96bf6
ec24045
 
bc96bf6
ec24045
bc96bf6
 
 
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
bc96bf6
ec24045
 
fe363c4
ec24045
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
import re, time
from os import environ
from Script import script 
import logging



logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

id_pattern = re.compile(r'^.\d+$')

def is_enabled(value, default):
    """
    Check if a given value is enabled based on common enable/disable keywords.
    """
    if value.strip().lower() in ["on", "true", "yes", "1", "enable", "y"]: 
        logger.debug(f"Value '{value}' is enabled.")
        return True
    elif value.strip().lower() in ["off", "false", "no", "0", "disable", "n"]: 
        logger.debug(f"Value '{value}' is disabled.")
        return False
    else: 
        logger.debug(f"Value '{value}' does not match known patterns, returning default '{default}'.")
        return default

# PyroClient Setup 
API_ID = int(environ['API_ID'])
logger.info(f"API_ID loaded: {API_ID}")

API_HASH = environ['API_HASH']
logger.info(f"API_HASH loaded.")

BOT_TOKEN = environ['BOT_TOKEN']
logger.info(f"BOT_TOKEN loaded.")

# Bot settings
WEB_SUPPORT = bool(environ.get("WEBHOOK", 'True')) # for web support on/off
logger.info(f"WEB_SUPPORT set to: {WEB_SUPPORT}")

PICS = (environ.get('PICS' ,'https://graph.org/file/01ddfcb1e8203879a63d7.jpg https://graph.org/file/d69995d9846fd4ad632b8.jpg https://graph.org/file/a125497b6b85a1d774394.jpg https://graph.org/file/43d26c54d37f4afb830f7.jpg https://graph.org/file/60c1adffc7cc2015f771c.jpg https://graph.org/file/d7b520240b00b7f083a24.jpg https://graph.org/file/0f336b0402db3f2a20037.jpg https://graph.org/file/39cc4e15cad4519d8e932.jpg https://graph.org/file/d59a1108b1ed1c6c6c144.jpg https://te.legra.ph/file/3a4a79f8d5955e64cbb8e.jpg https://graph.org/file/d69995d9846fd4ad632b8.jpg')).split()
logger.info(f"PICS loaded: {PICS}")

UPTIME = time.time()
logger.info(f"UPTIME set to: {UPTIME}")

# Admins, Channels & Users
CACHE_TIME = int(environ.get('CACHE_TIME', 300))
logger.info(f"CACHE_TIME set to: {CACHE_TIME}")

ADMINS = [int(admin) if id_pattern.search(admin) else admin for admin in environ.get('ADMINS', '').split()]
logger.info(f"ADMINS loaded: {ADMINS}")

CHANNELS = [int(ch) if id_pattern.search(ch) else ch for ch in environ.get('CHANNELS', '0').split()]
logger.info(f"CHANNELS loaded: {CHANNELS}")

auth_users = [int(user) if id_pattern.search(user) else user for user in environ.get('AUTH_USERS', '').split()]
logger.info(f"AUTH_USERS loaded: {auth_users}")

AUTH_USERS = (auth_users + ADMINS) if auth_users else []
logger.info(f"Final AUTH_USERS set: {AUTH_USERS}")

auth_channel = environ.get('AUTH_CHANNEL')
auth_grp = environ.get('AUTH_GROUP')

AUTH_CHANNEL = int(auth_channel) if auth_channel and id_pattern.search(auth_channel) else None
logger.info(f"AUTH_CHANNEL set to: {AUTH_CHANNEL}")

AUTH_GROUPS = [int(ch) for ch in auth_grp.split()] if auth_grp else None
logger.info(f"AUTH_GROUPS set to: {AUTH_GROUPS}")

# MongoDB information
DATABASE_URL = environ.get('DATABASE_URL', "")
logger.info(f"DATABASE_URL loaded: {DATABASE_URL}")

DATABASE_NAME = environ.get('DATABASE_NAME', "Cluster0")
logger.info(f"DATABASE_NAME set to: {DATABASE_NAME}")

FILE_DB_URL = environ.get("FILE_DB_URL", DATABASE_URL)
logger.info(f"FILE_DB_URL set to: {FILE_DB_URL}")

FILE_DB_NAME = environ.get("FILE_DB_NAME", DATABASE_NAME)
logger.info(f"FILE_DB_NAME set to: {FILE_DB_NAME}")

COLLECTION_NAME = environ.get('COLLECTION_NAME', 'Telegram_files')
logger.info(f"COLLECTION_NAME set to: {COLLECTION_NAME}")

# Filters Configuration 
MAX_RIST_BTNS = int(environ.get('MAX_RIST_BTNS', "10"))
logger.info(f"MAX_RIST_BTNS set to: {MAX_RIST_BTNS}")

START_MESSAGE = environ.get('START_MESSAGE', script.START_TXT)
logger.info(f"START_MESSAGE loaded: {START_MESSAGE}")

BUTTON_LOCK_TEXT = environ.get("BUTTON_LOCK_TEXT", script.BUTTON_LOCK_TEXT)
logger.info(f"BUTTON_LOCK_TEXT loaded: {BUTTON_LOCK_TEXT}")

FORCE_SUB_TEXT = environ.get('FORCE_SUB_TEXT', script.FORCE_SUB_TEXT)
logger.info(f"FORCE_SUB_TEXT loaded: {FORCE_SUB_TEXT}")

WELCOM_PIC = environ.get("WELCOM_PIC", "")
logger.info(f"WELCOM_PIC set to: {WELCOM_PIC}")

WELCOM_TEXT = environ.get("WELCOM_TEXT", script.WELCOM_TEXT)
logger.info(f"WELCOM_TEXT loaded: {WELCOM_TEXT}")

PMFILTER = is_enabled(environ.get('PMFILTER', "True"), True)
logger.info(f"PMFILTER set to: {PMFILTER}")

G_FILTER = is_enabled(environ.get("G_FILTER", "True"), True)
logger.info(f"G_FILTER set to: {G_FILTER}")

BUTTON_LOCK = is_enabled(environ.get("BUTTON_LOCK", "True"), True)
logger.info(f"BUTTON_LOCK set to: {BUTTON_LOCK}")

RemoveBG_API = environ.get("RemoveBG_API", "")
logger.info(f"RemoveBG_API set to: {RemoveBG_API}")

# URL shortener
SHORT_URL = environ.get("SHORT_URL")
logger.info(f"SHORT_URL set to: {SHORT_URL}")

SHORT_API = environ.get("SHORT_API")
logger.info(f"SHORT_API set to: {SHORT_API}")

# Others
IMDB_DELET_TIME = int(environ.get('IMDB_DELET_TIME', "300"))
logger.info(f"IMDB_DELET_TIME set to: {IMDB_DELET_TIME}")

LOG_CHANNEL = int(environ.get('LOG_CHANNEL', 0))
logger.info(f"LOG_CHANNEL set to: {LOG_CHANNEL}")

SUPPORT_CHAT = environ.get('SUPPORT_CHAT', 'MKN_BOTZ_DISCUSSION_GROUP')
logger.info(f"SUPPORT_CHAT set to: {SUPPORT_CHAT}")

P_TTI_SHOW_OFF = is_enabled(environ.get('P_TTI_SHOW_OFF', "True"), True)
logger.info(f"P_TTI_SHOW_OFF set to: {P_TTI_SHOW_OFF}")

PM_IMDB = is_enabled(environ.get('PM_IMDB', "True"), True)
logger.info(f"PM_IMDB set to: {PM_IMDB}")

IMDB = is_enabled(environ.get('IMDB', "True"), True)
logger.info(f"IMDB set to: {IMDB}")

SINGLE_BUTTON = is_enabled(environ.get('SINGLE_BUTTON', "True"), True)
logger.info(f"SINGLE_BUTTON set to: {SINGLE_BUTTON}")

CUSTOM_FILE_CAPTION = environ.get("CUSTOM_FILE_CAPTION", "{file_name}")
logger.info(f"CUSTOM_FILE_CAPTION set to: {CUSTOM_FILE_CAPTION}")

BATCH_FILE_CAPTION = environ.get("BATCH_FILE_CAPTION", None)
logger.info(f"BATCH_FILE_CAPTION set to: {BATCH_FILE_CAPTION}")

IMDB_TEMPLATE = environ.get("IMDB_TEMPLATE", script.IMDB_TEMPLATE)
logger.info(f"IMDB_TEMPLATE loaded: {IMDB_TEMPLATE}")

LONG_IMDB_DESCRIPTION = is_enabled(environ.get("LONG_IMDB_DESCRIPTION", "False"), False)
logger.info(f"LONG_IMDB_DESCRIPTION set to: {LONG_IMDB_DESCRIPTION}")

SPELL_CHECK_REPLY = is_enabled(environ.get("SPELL_CHECK_REPLY", "True"), True)
logger.info(f"SPELL_CHECK_REPLY set to: {SPELL_CHECK_REPLY}")

MAX_LIST_ELM = environ.get("MAX_LIST_ELM", None)
logger.info(f"MAX_LIST_ELM set to: {MAX_LIST_ELM}")

FILE_STORE_CHANNEL = [int(ch) for ch in (environ.get('FILE_STORE_CHANNEL', '')).split()]
logger.info(f"FILE_STORE_CHANNEL set to: {FILE_STORE_CHANNEL}")

MELCOW_NEW_USERS = is_enabled(environ.get('MELCOW_NEW_USERS', "True"), True)
logger.info(f"MELCOW_NEW_USERS set to: {MELCOW_NEW_USERS}")

PROTECT_CONTENT = is_enabled(environ.get('PROTECT_CONTENT', "False"), False)
logger.info(f"PROTECT_CONTENT set to: {PROTECT_CONTENT}")

PUBLIC_FILE_STORE = is_enabled(environ.get('PUBLIC_FILE_STORE', "True"), True)
logger.info(f"PUBLIC_FILE_STORE set to: {PUBLIC_FILE_STORE}")

LOG_MSG = "{} Iꜱ Rᴇꜱᴛᴀʀᴛᴇᴅ....✨\n\n🗓️ Dᴀᴛᴇ : {}\n⏰ Tɪᴍᴇ : {}\n\n🖥️ Rᴇᴏᴩ: {}\n🉐 Vᴇʀꜱɪᴏɴ: {}\n🧾 Lɪᴄᴇɴꜱᴇ: {}\n©️ Cᴏᴩʏʀɪɢʜᴛ: {}"
logger.info(f"LOG_MSG template set.")