mirror of
https://github.com/TeamPGM/pyrogram.git
synced 2024-11-16 20:59:29 +00:00
Move loading plugins logic into a separate method
This commit is contained in:
parent
4bb50ee35f
commit
6a0066b8b5
@ -223,6 +223,7 @@ class Client(Methods, BaseClient):
|
||||
|
||||
self.load_config()
|
||||
self.load_session()
|
||||
self.load_plugins()
|
||||
|
||||
self.session = Session(
|
||||
self,
|
||||
@ -230,43 +231,6 @@ class Client(Methods, BaseClient):
|
||||
self.auth_key
|
||||
)
|
||||
|
||||
if self.plugins_dir is not None:
|
||||
try:
|
||||
dirs = os.listdir(self.plugins_dir)
|
||||
except FileNotFoundError:
|
||||
if self.plugins_dir == Client.PLUGINS_DIR:
|
||||
log.info("No plugin loaded: default directory is missing")
|
||||
else:
|
||||
log.warning('No plugin loaded: "{}" directory is missing'.format(self.plugins_dir))
|
||||
else:
|
||||
plugins_dir = self.plugins_dir.lstrip("./").replace("/", ".")
|
||||
plugins_count = 0
|
||||
|
||||
for i in dirs:
|
||||
module = import_module("{}.{}".format(plugins_dir, i.split(".")[0]))
|
||||
|
||||
for j in dir(module):
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
handler, group = getattr(module, j)
|
||||
|
||||
if isinstance(handler, Handler) and isinstance(group, int):
|
||||
self.add_handler(handler, group)
|
||||
|
||||
log.info('{}("{}") from "{}/{}" loaded in group {}'.format(
|
||||
type(handler).__name__, j, self.plugins_dir, i, group)
|
||||
)
|
||||
|
||||
plugins_count += 1
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
log.warning('Successfully loaded {} plugin{} from "{}"'.format(
|
||||
plugins_count,
|
||||
"s" if plugins_count > 1 else "",
|
||||
self.plugins_dir
|
||||
))
|
||||
|
||||
self.session.start()
|
||||
self.is_started = True
|
||||
|
||||
@ -1009,6 +973,44 @@ class Client(Methods, BaseClient):
|
||||
if peer:
|
||||
self.peers_by_phone[k] = peer
|
||||
|
||||
def load_plugins(self):
|
||||
if self.plugins_dir is not None:
|
||||
try:
|
||||
dirs = os.listdir(self.plugins_dir)
|
||||
except FileNotFoundError:
|
||||
if self.plugins_dir == Client.PLUGINS_DIR:
|
||||
log.info("No plugin loaded: default directory is missing")
|
||||
else:
|
||||
log.warning('No plugin loaded: "{}" directory is missing'.format(self.plugins_dir))
|
||||
else:
|
||||
plugins_dir = self.plugins_dir.lstrip("./").replace("/", ".")
|
||||
plugins_count = 0
|
||||
|
||||
for i in dirs:
|
||||
module = import_module("{}.{}".format(plugins_dir, i.split(".")[0]))
|
||||
|
||||
for j in dir(module):
|
||||
# noinspection PyBroadException
|
||||
try:
|
||||
handler, group = getattr(module, j)
|
||||
|
||||
if isinstance(handler, Handler) and isinstance(group, int):
|
||||
self.add_handler(handler, group)
|
||||
|
||||
log.info('{}("{}") from "{}/{}" loaded in group {}'.format(
|
||||
type(handler).__name__, j, self.plugins_dir, i, group)
|
||||
)
|
||||
|
||||
plugins_count += 1
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
log.warning('Successfully loaded {} plugin{} from "{}"'.format(
|
||||
plugins_count,
|
||||
"s" if plugins_count > 1 else "",
|
||||
self.plugins_dir
|
||||
))
|
||||
|
||||
def save_session(self):
|
||||
auth_key = base64.b64encode(self.auth_key).decode()
|
||||
auth_key = [auth_key[i: i + 43] for i in range(0, len(auth_key), 43)]
|
||||
|
Loading…
Reference in New Issue
Block a user