mirror of
https://github.com/pyrogram/pyrogram
synced 2025-08-28 21:07:59 +00:00
Revert back to "set_update_handler" name
This commit is contained in:
parent
c1b426b16f
commit
df89669e04
@ -97,12 +97,12 @@ class Client:
|
|||||||
be an empty string: ""
|
be an empty string: ""
|
||||||
|
|
||||||
workers (:obj:`int`, optional):
|
workers (:obj:`int`, optional):
|
||||||
Thread pool size for handling incoming events (updates). Defaults to 4.
|
Thread pool size for handling incoming updates. Defaults to 4.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
INVITE_LINK_RE = re.compile(r"^(?:https?://)?t\.me/joinchat/(.+)$")
|
INVITE_LINK_RE = re.compile(r"^(?:https?://)?t\.me/joinchat/(.+)$")
|
||||||
DIALOGS_AT_ONCE = 100
|
DIALOGS_AT_ONCE = 100
|
||||||
UPDATE_WORKERS = 2
|
UPDATES_WORKERS = 2
|
||||||
|
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
session_name: str,
|
session_name: str,
|
||||||
@ -144,9 +144,9 @@ class Client:
|
|||||||
|
|
||||||
self.is_idle = Event()
|
self.is_idle = Event()
|
||||||
|
|
||||||
self.event_handler = None
|
self.updates_queue = Queue()
|
||||||
self.update_queue = Queue()
|
self.update_queue = Queue()
|
||||||
self.event_queue = Queue()
|
self.update_handler = None
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
"""Use this method to start the Client after creating it.
|
"""Use this method to start the Client after creating it.
|
||||||
@ -179,11 +179,11 @@ class Client:
|
|||||||
self.rnd_id = self.session.msg_id
|
self.rnd_id = self.session.msg_id
|
||||||
self.get_dialogs()
|
self.get_dialogs()
|
||||||
|
|
||||||
for i in range(self.UPDATE_WORKERS):
|
for i in range(self.UPDATES_WORKERS):
|
||||||
Thread(target=self.update_worker, name="UpdateWorker#{}".format(i + 1)).start()
|
Thread(target=self.updates_worker, name="UpdatesWorker#{}".format(i + 1)).start()
|
||||||
|
|
||||||
for i in range(self.workers):
|
for i in range(self.workers):
|
||||||
Thread(target=self.event_worker, name="EventWorker#{}".format(i + 1)).start()
|
Thread(target=self.update_worker, name="UpdateWorker#{}".format(i + 1)).start()
|
||||||
|
|
||||||
mimetypes.init()
|
mimetypes.init()
|
||||||
|
|
||||||
@ -193,11 +193,11 @@ class Client:
|
|||||||
"""
|
"""
|
||||||
self.session.stop()
|
self.session.stop()
|
||||||
|
|
||||||
for i in range(self.UPDATE_WORKERS):
|
for _ in range(self.UPDATES_WORKERS):
|
||||||
self.update_queue.put(None)
|
self.updates_queue.put(None)
|
||||||
|
|
||||||
for i in range(self.workers):
|
for _ in range(self.workers):
|
||||||
self.event_queue.put(None)
|
self.update_queue.put(None)
|
||||||
|
|
||||||
def fetch_peers(self, entities: list):
|
def fetch_peers(self, entities: list):
|
||||||
for entity in entities:
|
for entity in entities:
|
||||||
@ -260,31 +260,31 @@ class Client:
|
|||||||
if username is not None:
|
if username is not None:
|
||||||
self.peers_by_username[username] = input_peer
|
self.peers_by_username[username] = input_peer
|
||||||
|
|
||||||
def update_worker(self):
|
def updates_worker(self):
|
||||||
name = threading.current_thread().name
|
name = threading.current_thread().name
|
||||||
log.debug("{} started".format(name))
|
log.debug("{} started".format(name))
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
update = self.update_queue.get()
|
updates = self.updates_queue.get()
|
||||||
|
|
||||||
if update is None:
|
if updates is None:
|
||||||
break
|
break
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if isinstance(update, (types.Update, types.UpdatesCombined)):
|
if isinstance(updates, (types.Update, types.UpdatesCombined)):
|
||||||
self.fetch_peers(update.users)
|
self.fetch_peers(updates.users)
|
||||||
self.fetch_peers(update.chats)
|
self.fetch_peers(updates.chats)
|
||||||
|
|
||||||
for i in update.updates:
|
for update in updates.updates:
|
||||||
channel_id = getattr(
|
channel_id = getattr(
|
||||||
getattr(
|
getattr(
|
||||||
getattr(
|
getattr(
|
||||||
i, "message", None
|
update, "message", None
|
||||||
), "to_id", None
|
), "to_id", None
|
||||||
), "channel_id", None
|
), "channel_id", None
|
||||||
) or getattr(i, "channel_id", None)
|
) or getattr(update, "channel_id", None)
|
||||||
|
|
||||||
pts = getattr(i, "pts", None)
|
pts = getattr(update, "pts", None)
|
||||||
|
|
||||||
if channel_id and pts:
|
if channel_id and pts:
|
||||||
if channel_id not in self.channels_pts:
|
if channel_id not in self.channels_pts:
|
||||||
@ -298,12 +298,12 @@ class Client:
|
|||||||
if len(self.channels_pts[channel_id]) > 50:
|
if len(self.channels_pts[channel_id]) > 50:
|
||||||
self.channels_pts[channel_id] = self.channels_pts[channel_id][25:]
|
self.channels_pts[channel_id] = self.channels_pts[channel_id][25:]
|
||||||
|
|
||||||
self.event_queue.put((i, update.users, update.chats))
|
self.update_queue.put((update, updates.users, updates.chats))
|
||||||
elif isinstance(update, (types.UpdateShortMessage, types.UpdateShortChatMessage)):
|
elif isinstance(updates, (types.UpdateShortMessage, types.UpdateShortChatMessage)):
|
||||||
diff = self.send(
|
diff = self.send(
|
||||||
functions.updates.GetDifference(
|
functions.updates.GetDifference(
|
||||||
pts=update.pts - update.pts_count,
|
pts=updates.pts - updates.pts_count,
|
||||||
date=update.date,
|
date=updates.date,
|
||||||
qts=-1
|
qts=-1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -311,39 +311,39 @@ class Client:
|
|||||||
self.fetch_peers(diff.users)
|
self.fetch_peers(diff.users)
|
||||||
self.fetch_peers(diff.chats)
|
self.fetch_peers(diff.chats)
|
||||||
|
|
||||||
self.event_queue.put((
|
self.update_queue.put((
|
||||||
types.UpdateNewMessage(
|
types.UpdateNewMessage(
|
||||||
message=diff.new_messages[0],
|
message=diff.new_messages[0],
|
||||||
pts=update.pts,
|
pts=updates.pts,
|
||||||
pts_count=update.pts_count
|
pts_count=updates.pts_count
|
||||||
),
|
),
|
||||||
diff.users,
|
diff.users,
|
||||||
diff.chats
|
diff.chats
|
||||||
))
|
))
|
||||||
elif isinstance(update, types.UpdateShort):
|
elif isinstance(updates, types.UpdateShort):
|
||||||
self.event_queue.put((update.update, [], []))
|
self.update_queue.put((updates.update, [], []))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error(e, exc_info=True)
|
log.error(e, exc_info=True)
|
||||||
|
|
||||||
log.debug("{} stopped".format(name))
|
log.debug("{} stopped".format(name))
|
||||||
|
|
||||||
def event_worker(self):
|
def update_worker(self):
|
||||||
name = threading.current_thread().name
|
name = threading.current_thread().name
|
||||||
log.debug("{} started".format(name))
|
log.debug("{} started".format(name))
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
event = self.event_queue.get()
|
update = self.update_queue.get()
|
||||||
|
|
||||||
if event is None:
|
if update is None:
|
||||||
break
|
break
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if self.event_handler:
|
if self.update_handler:
|
||||||
self.event_handler(
|
self.update_handler(
|
||||||
self,
|
self,
|
||||||
event[0],
|
update[0],
|
||||||
{i.id: i for i in event[1]},
|
{i.id: i for i in update[1]},
|
||||||
{i.id: i for i in event[2]}
|
{i.id: i for i in update[2]}
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
log.error(e, exc_info=True)
|
log.error(e, exc_info=True)
|
||||||
@ -368,15 +368,15 @@ class Client:
|
|||||||
|
|
||||||
self.is_idle.wait()
|
self.is_idle.wait()
|
||||||
|
|
||||||
def set_event_handler(self, callback: callable):
|
def set_update_handler(self, callback: callable):
|
||||||
"""Use this method to set the event handler.
|
"""Use this method to set the update handler.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
callback (:obj:`callable`):
|
callback (:obj:`callable`):
|
||||||
A function that takes ``client, event`` as positional arguments.
|
A function that takes "client, update, users, chats" as positional arguments.
|
||||||
It will be called when a new event is generated on your account.
|
It will be called when a new update is received from the server.
|
||||||
"""
|
"""
|
||||||
self.event_handler = callback
|
self.update_handler = callback
|
||||||
|
|
||||||
def send(self, data: Object):
|
def send(self, data: Object):
|
||||||
"""Use this method to send Raw Function queries.
|
"""Use this method to send Raw Function queries.
|
||||||
|
@ -270,7 +270,7 @@ class Session:
|
|||||||
msg_id = msg.body.msg_id
|
msg_id = msg.body.msg_id
|
||||||
else:
|
else:
|
||||||
if self.client is not None:
|
if self.client is not None:
|
||||||
self.client.update_queue.put(msg.body)
|
self.client.updates_queue.put(msg.body)
|
||||||
|
|
||||||
if msg_id in self.results:
|
if msg_id in self.results:
|
||||||
self.results[msg_id].value = getattr(msg.body, "result", msg.body)
|
self.results[msg_id].value = getattr(msg.body, "result", msg.body)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user