mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-08 21:10:29 +00:00
60 lines
1.3 KiB
Python
60 lines
1.3 KiB
Python
from enum import Enum
|
|
|
|
|
|
class ConnectionMode(Enum):
|
|
FULL = 'full'
|
|
INTERMEDIATE = 'intermediate'
|
|
ABRIDGED = 'abridged'
|
|
OBFUSCATED = 'obfuscated'
|
|
HTTP = 'http'
|
|
|
|
|
|
class Participant(Enum):
|
|
ADMIN = 'admin'
|
|
BOT = 'bot'
|
|
KICKED = 'kicked'
|
|
BANNED = 'banned'
|
|
CONTACT = 'contact'
|
|
|
|
|
|
class Action(Enum):
|
|
TYPING = 'typing'
|
|
CONTACT = 'contact'
|
|
GAME = 'game'
|
|
LOCATION = 'location'
|
|
STICKER = 'sticker'
|
|
RECORD_AUDIO = 'record-audio'
|
|
RECORD_VOICE = RECORD_AUDIO
|
|
RECORD_ROUND = 'record-round'
|
|
RECORD_VIDEO = 'record-video'
|
|
AUDIO = 'audio'
|
|
VOICE = AUDIO
|
|
SONG = AUDIO
|
|
ROUND = 'round'
|
|
VIDEO = 'video'
|
|
PHOTO = 'photo'
|
|
DOCUMENT = 'document'
|
|
FILE = DOCUMENT
|
|
CANCEL = 'cancel'
|
|
|
|
|
|
def _mk_parser(cls):
|
|
def parser(value):
|
|
if isinstance(value, cls):
|
|
return value
|
|
elif isinstance(value, str):
|
|
for variant in cls:
|
|
if value == variant.value:
|
|
return variant
|
|
|
|
raise ValueError(f'unknown {cls.__name__}: {value!r}')
|
|
else:
|
|
raise TypeError(f'not a valid {cls.__name__}: {type(value).__name__!r}')
|
|
|
|
return parser
|
|
|
|
|
|
parse_conn_mode = _mk_parser(ConnectionMode)
|
|
parse_participant = _mk_parser(Participant)
|
|
parse_typing_action = _mk_parser(Action)
|