mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-09 13:29:47 +00:00
Remove PackedChat
In favour of using the session entity type consistently.
This commit is contained in:
@@ -8,59 +8,6 @@ from .. import _tl
|
||||
from .._sessions.types import EntityType, Entity
|
||||
|
||||
|
||||
class PackedChat(namedtuple('PackedChat', 'ty id hash')):
|
||||
__slots__ = ()
|
||||
|
||||
@property
|
||||
def is_user(self):
|
||||
return self.ty in (EntityType.USER, EntityType.BOT)
|
||||
|
||||
@property
|
||||
def is_chat(self):
|
||||
return self.ty in (EntityType.GROUP,)
|
||||
|
||||
@property
|
||||
def is_channel(self):
|
||||
return self.ty in (EntityType.CHANNEL, EntityType.MEGAGROUP, EntityType.GIGAGROUP)
|
||||
|
||||
def to_peer(self):
|
||||
if self.is_user:
|
||||
return _tl.PeerUser(user_id=self.id)
|
||||
elif self.is_chat:
|
||||
return _tl.PeerChat(chat_id=self.id)
|
||||
elif self.is_channel:
|
||||
return _tl.PeerChannel(channel_id=self.id)
|
||||
|
||||
def to_input_peer(self):
|
||||
if self.is_user:
|
||||
return _tl.InputPeerUser(user_id=self.id, access_hash=self.hash)
|
||||
elif self.is_chat:
|
||||
return _tl.InputPeerChat(chat_id=self.id)
|
||||
elif self.is_channel:
|
||||
return _tl.InputPeerChannel(channel_id=self.id, access_hash=self.hash)
|
||||
|
||||
def try_to_input_user(self):
|
||||
if self.is_user:
|
||||
return _tl.InputUser(user_id=self.id, access_hash=self.hash)
|
||||
else:
|
||||
return None
|
||||
|
||||
def try_to_chat_id(self):
|
||||
if self.is_chat:
|
||||
return self.id
|
||||
else:
|
||||
return None
|
||||
|
||||
def try_to_input_channel(self):
|
||||
if self.is_channel:
|
||||
return _tl.InputChannel(channel_id=self.id, access_hash=self.hash)
|
||||
else:
|
||||
return None
|
||||
|
||||
def __str__(self):
|
||||
return f'{chr(self.ty.value)}.{self.id}.{self.hash}'
|
||||
|
||||
|
||||
@dataclass
|
||||
class EntityCache:
|
||||
hash_map: dict = field(default_factory=dict) # id -> (hash, ty)
|
||||
@@ -72,8 +19,11 @@ class EntityCache:
|
||||
self.self_bot = bot
|
||||
|
||||
def get(self, id):
|
||||
value = self.hash_map.get(id)
|
||||
return PackedChat(ty=value[1], id=id, hash=value[0]) if value else None
|
||||
try:
|
||||
hash, ty = self.hash_map[id]
|
||||
return Entity(ty, id, hash)
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
def extend(self, users, chats):
|
||||
# See https://core.telegram.org/api/min for "issues" with "min constructors".
|
||||
@@ -100,4 +50,4 @@ class EntityCache:
|
||||
return [Entity(ty, id, hash) for id, (hash, ty) in self.hash_map.items()]
|
||||
|
||||
def put(self, entity):
|
||||
self.hash_map[entity.id] = (entity.access_hash, entity.ty)
|
||||
self.hash_map[entity.id] = (entity.hash, entity.ty)
|
||||
|
Reference in New Issue
Block a user