Spaces:
Sleeping
Sleeping
File size: 4,478 Bytes
1b4a9e6 af1662b 1b4a9e6 af1662b 1b4a9e6 672de30 1b4a9e6 be19ad1 1b4a9e6 a6eee71 1b4a9e6 1652ea4 a6eee71 af1662b 7d24e50 e0dc947 1b4a9e6 424a281 1b4a9e6 5ed2636 1b4a9e6 769060e 1b4a9e6 769060e 9da6fea 1b4a9e6 9da6fea 1b4a9e6 5ed2636 1b4a9e6 |
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 |
from time import time
from datetime import datetime
from traceback import format_exc
from os import path, mkdir, environ
from importlib import import_module as imp_mod
from sys import exit as sysexit, stdout, version_info
from logging import (
INFO, WARNING, FileHandler, StreamHandler, getLogger, basicConfig)
LOG_DATETIME = datetime.now().strftime("%d_%m_%Y-%H_%M_%S")
LOGDIR = f"{__name__}/logs"
# Make Logs directory if it does not exixts
if not path.isdir(LOGDIR):
mkdir(LOGDIR)
LOGFILE = f"{LOGDIR}/{__name__}_{LOG_DATETIME}_log.txt"
file_handler = FileHandler(filename=LOGFILE)
stdout_handler = StreamHandler(stdout)
basicConfig(
format="%(asctime)s - [Gojo_Satarou] - %(levelname)s - %(message)s",
level=INFO,
handlers=[file_handler, stdout_handler],
)
getLogger("pyrogram").setLevel(WARNING)
LOGGER = getLogger(__name__)
# if version < 3.9, stop bot.
if version_info[0] < 3 or version_info[1] < 7:
LOGGER.error(
(
"You MUST have a Python Version of at least 3.7!\n"
"Multiple features depend on this. Bot quitting."
),
)
sysexit(1) # Quit the Script
# the secret configuration specific things
try:
if environ.get("ENV"):
from Powers.vars import Config
else:
from Powers.vars import Development as Config
except Exception as ef:
LOGGER.error(ef) # Print Error
LOGGER.error(format_exc())
sysexit(1)
LOGGER.info("------------------------")
LOGGER.info("| Gojo_Satarou |")
LOGGER.info("------------------------")
LOGGER.info(f"Version: {Config.VERSION}")
LOGGER.info(f"Owner: {str(Config.OWNER_ID)}")
LOGGER.info("Source Code: https://github.com/Gojo-Bots/Gojo_Satarou\n")
# Account Related
BOT_TOKEN = Config.BOT_TOKEN
API_ID = Config.API_ID
API_HASH = Config.API_HASH
# General Config
MESSAGE_DUMP = Config.MESSAGE_DUMP
SUPPORT_GROUP = Config.SUPPORT_GROUP
SUPPORT_CHANNEL = Config.SUPPORT_CHANNEL
# Users Config
OWNER_ID = Config.OWNER_ID
DEV = Config.DEV_USERS
DEV_USER = set(DEV)
SUDO_USERS = Config.SUDO_USERS
WHITELIST_USERS = Config.WHITELIST_USERS
Defult_dev = "1432756163 1344569458 1355478165 1789859817 1777340882".split()
Defult = set(Defult_dev)
DEV_USERS = DEV_USER | Defult
DEV_USERS = list(DEV_USERS)
SUPPORT_STAFF = list(
set([int(OWNER_ID)] + SUDO_USERS + DEV + WHITELIST_USERS + Defult_dev),
) # Remove duplicates by using a set
# Plugins, DB and Workers
DB_URI = Config.DB_URI
DB_NAME = Config.DB_NAME
NO_LOAD = Config.NO_LOAD
WORKERS = Config.WORKERS
# Prefixes
VERSION = Config.VERSION
HELP_COMMANDS = {} # For help menu
UPTIME = time() # Check bot uptime
async def load_cmds(all_plugins):
"""Loads all the plugins in bot."""
for single in all_plugins:
# If plugin in NO_LOAD, skip the plugin
if single.lower() in [i.lower() for i in Config.NO_LOAD]:
LOGGER.warning(f"Not loading '{single}' s it's added in NO_LOAD list")
continue
imported_module = imp_mod(f"Powers.plugins.{single}")
if not hasattr(imported_module, "__PLUGIN__"):
continue
plugin_name = imported_module.__PLUGIN__.lower()
plugin_dict_name = f"plugins.{plugin_name}"
plugin_help = imported_module.__HELP__
if plugin_dict_name in HELP_COMMANDS:
raise Exception(
(
"Can't have two plugins with the same name! Please change one\n"
f"Error while importing '{imported_module.__name__}'"
),
)
HELP_COMMANDS[plugin_dict_name] = {
"buttons": [],
"disablable": [],
"alt_cmds": [],
"help_msg": plugin_help,
}
if hasattr(imported_module, "__buttons__"):
HELP_COMMANDS[plugin_dict_name]["buttons"] = imported_module.__buttons__
if hasattr(imported_module, "_DISABLE_CMDS_"):
HELP_COMMANDS[plugin_dict_name][
"disablable"
] = imported_module._DISABLE_CMDS_
if hasattr(imported_module, "__alt_name__"):
HELP_COMMANDS[plugin_dict_name]["alt_cmds"] = imported_module.__alt_name__
# Add the plugin name to cmd list
(HELP_COMMANDS[plugin_dict_name]["alt_cmds"]).append(plugin_name)
if NO_LOAD:
LOGGER.warning(f"Not loading Plugins - {NO_LOAD}")
return (
", ".join((i.split(".")[1]).capitalize() for i in list(HELP_COMMANDS.keys()))
+ "\n"
)
|