mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-23 09:53:45 +03:00
78 lines
2.3 KiB
Python
78 lines
2.3 KiB
Python
"""Errors not related to the Telegram API itself"""
|
|
|
|
|
|
class ReadCancelledError(Exception):
|
|
"""Occurs when a read operation was cancelled."""
|
|
def __init__(self):
|
|
super().__init__(self, 'The read operation was cancelled.')
|
|
|
|
|
|
class InvalidParameterError(Exception):
|
|
"""
|
|
Occurs when an invalid parameter is given, for example,
|
|
when either A or B are required but none is given.
|
|
"""
|
|
|
|
|
|
class TypeNotFoundError(Exception):
|
|
"""
|
|
Occurs when a type is not found, for example,
|
|
when trying to read a TLObject with an invalid constructor code.
|
|
"""
|
|
def __init__(self, invalid_constructor_id):
|
|
super().__init__(
|
|
self, 'Could not find a matching Constructor ID for the TLObject '
|
|
'that was supposed to be read with ID {}. Most likely, a TLObject '
|
|
'was trying to be read when it should not be read.'
|
|
.format(hex(invalid_constructor_id)))
|
|
|
|
self.invalid_constructor_id = invalid_constructor_id
|
|
|
|
|
|
class InvalidChecksumError(Exception):
|
|
"""
|
|
Occurs when using the TCP full mode and the checksum of a received
|
|
packet doesn't match the expected checksum.
|
|
"""
|
|
def __init__(self, checksum, valid_checksum):
|
|
super().__init__(
|
|
self,
|
|
'Invalid checksum ({} when {} was expected). '
|
|
'This packet should be skipped.'
|
|
.format(checksum, valid_checksum))
|
|
|
|
self.checksum = checksum
|
|
self.valid_checksum = valid_checksum
|
|
|
|
|
|
class BrokenAuthKeyError(Exception):
|
|
"""
|
|
Occurs when the authorization key for a data center is not valid.
|
|
"""
|
|
def __init__(self):
|
|
super().__init__(
|
|
self,
|
|
'The authorization key is broken, and it must be reset.'
|
|
)
|
|
|
|
|
|
class SecurityError(Exception):
|
|
"""
|
|
Generic security error, mostly used when generating a new AuthKey.
|
|
"""
|
|
def __init__(self, *args):
|
|
if not args:
|
|
args = ['A security check failed.']
|
|
super().__init__(self, *args)
|
|
|
|
|
|
class CdnFileTamperedError(SecurityError):
|
|
"""
|
|
Occurs when there's a hash mismatch between the decrypted CDN file
|
|
and its expected hash.
|
|
"""
|
|
def __init__(self):
|
|
super().__init__(
|
|
'The CDN file has been altered and its download cancelled.'
|
|
)
|