mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-28 21:07:59 +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_config()
|
||||||
self.load_session()
|
self.load_session()
|
||||||
|
self.load_plugins()
|
||||||
|
|
||||||
self.session = Session(
|
self.session = Session(
|
||||||
self,
|
self,
|
||||||
@ -230,43 +231,6 @@ class Client(Methods, BaseClient):
|
|||||||
self.auth_key
|
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.session.start()
|
||||||
self.is_started = True
|
self.is_started = True
|
||||||
|
|
||||||
@ -1009,6 +973,44 @@ class Client(Methods, BaseClient):
|
|||||||
if peer:
|
if peer:
|
||||||
self.peers_by_phone[k] = 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):
|
def save_session(self):
|
||||||
auth_key = base64.b64encode(self.auth_key).decode()
|
auth_key = base64.b64encode(self.auth_key).decode()
|
||||||
auth_key = [auth_key[i: i + 43] for i in range(0, len(auth_key), 43)]
|
auth_key = [auth_key[i: i + 43] for i in range(0, len(auth_key), 43)]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user