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.")