4343 PhoneCodeExpired , PhoneCodeEmpty , SessionPasswordNeeded ,
4444 PasswordHashInvalid , FloodWait , PeerIdInvalid , FirstnameInvalid , PhoneNumberBanned ,
4545 VolumeLocNotFound , UserMigrate , FileIdInvalid )
46+ from pyrogram .client .handlers import DisconnectHandler
4647from pyrogram .crypto import AES
4748from pyrogram .session import Auth , Session
4849from .dispatcher import Dispatcher
@@ -290,7 +291,10 @@ def add_handler(self, handler, group: int = 0):
290291 Returns:
291292 A tuple of (handler, group)
292293 """
293- self .dispatcher .add_handler (handler , group )
294+ if isinstance (handler , DisconnectHandler ):
295+ self .disconnect_handler = handler .callback
296+ else :
297+ self .dispatcher .add_handler (handler , group )
294298
295299 return handler , group
296300
@@ -308,7 +312,10 @@ def remove_handler(self, handler, group: int = 0):
308312 group (``int``, *optional*):
309313 The group identifier, defaults to 0.
310314 """
311- self .dispatcher .remove_handler (handler , group )
315+ if isinstance (handler , DisconnectHandler ):
316+ self .disconnect_handler = None
317+ else :
318+ self .dispatcher .remove_handler (handler , group )
312319
313320 def authorize_bot (self ):
314321 try :
0 commit comments