From a4b92aabd18dde9019e15eb34ba4e1186cc3596f Mon Sep 17 00:00:00 2001 From: KurimuzonAkuma Date: Fri, 1 Dec 2023 17:24:55 +0300 Subject: [PATCH] Update get_raw_peer_id and get_peer_id --- .../methods/stories/get_pinned_stories.py | 2 +- pyrogram/types/messages_and_media/story.py | 4 +-- .../types/messages_and_media/story_deleted.py | 2 -- .../types/messages_and_media/story_skipped.py | 2 -- pyrogram/utils.py | 31 ++++++------------- 5 files changed, 13 insertions(+), 28 deletions(-) diff --git a/pyrogram/methods/stories/get_pinned_stories.py b/pyrogram/methods/stories/get_pinned_stories.py index e05a4a742f..a4413ab980 100644 --- a/pyrogram/methods/stories/get_pinned_stories.py +++ b/pyrogram/methods/stories/get_pinned_stories.py @@ -79,7 +79,7 @@ async def get_pinned_stories( chats = {i.id: i for i in r.chats} if isinstance(peer, raw.types.InputPeerChannel): - peer_id = utils.get_input_peer_id(peer) + peer_id = utils.get_raw_peer_id(peer) if peer_id not in r.chats: channel = await self.invoke(raw.functions.channels.GetChannels(id=[peer])) chats.update({peer_id: channel.chats[0]}) diff --git a/pyrogram/types/messages_and_media/story.py b/pyrogram/types/messages_and_media/story.py index 6f3f8a106b..de4208b169 100644 --- a/pyrogram/types/messages_and_media/story.py +++ b/pyrogram/types/messages_and_media/story.py @@ -193,9 +193,9 @@ async def _parse( peer_id = r[0].id users.update({i.id: i for i in r}) elif isinstance(peer, raw.types.InputPeerUser): - peer_id = utils.get_input_peer_id(peer) + peer_id = utils.get_raw_peer_id(peer) elif isinstance(peer, raw.types.InputPeerChannel): - peer_id = utils.get_input_peer_id(peer) + peer_id = utils.get_raw_peer_id(peer) if peer_id not in chats: r = await client.invoke(raw.functions.channels.GetChannels(id=[peer])) chats.update({peer_id: r.chats[0]}) diff --git a/pyrogram/types/messages_and_media/story_deleted.py b/pyrogram/types/messages_and_media/story_deleted.py index 86e173e8ad..4d9c35df88 100644 --- a/pyrogram/types/messages_and_media/story_deleted.py +++ b/pyrogram/types/messages_and_media/story_deleted.py @@ -67,8 +67,6 @@ async def _parse( r = await client.invoke(raw.functions.users.GetUsers(id=[raw.types.InputPeerSelf()])) peer_id = r[0].id users.update({i.id: i for i in r}) - elif isinstance(peer, (raw.types.InputPeerUser, raw.types.InputPeerChannel)): - peer_id = utils.get_input_peer_id(peer) else: peer_id = utils.get_raw_peer_id(peer) diff --git a/pyrogram/types/messages_and_media/story_skipped.py b/pyrogram/types/messages_and_media/story_skipped.py index 143bcfd3a3..380cc8b97f 100644 --- a/pyrogram/types/messages_and_media/story_skipped.py +++ b/pyrogram/types/messages_and_media/story_skipped.py @@ -83,8 +83,6 @@ async def _parse( r = await client.invoke(raw.functions.users.GetUsers(id=[raw.types.InputPeerSelf()])) peer_id = r[0].id users.update({i.id: i for i in r}) - elif isinstance(peer, (raw.types.InputPeerUser, raw.types.InputPeerChannel)): - peer_id = utils.get_input_peer_id(peer) else: peer_id = utils.get_raw_peer_id(peer) diff --git a/pyrogram/utils.py b/pyrogram/utils.py index 4b455b2e82..8d217f4454 100644 --- a/pyrogram/utils.py +++ b/pyrogram/utils.py @@ -268,42 +268,29 @@ def unpack_inline_message_id(inline_message_id: str) -> "raw.base.InputBotInline MAX_USER_ID = 999999999999 -def get_raw_peer_id(peer: raw.base.Peer) -> Optional[int]: +def get_raw_peer_id(peer: Union[raw.base.Peer, raw.base.InputPeer]) -> Optional[int]: """Get the raw peer id from a Peer object""" - if isinstance(peer, raw.types.PeerUser): + if isinstance(peer, (raw.types.PeerUser, raw.types.InputPeerUser)): return peer.user_id - if isinstance(peer, raw.types.PeerChat): + if isinstance(peer, (raw.types.PeerChat, raw.types.InputPeerChat)): return peer.chat_id - if isinstance(peer, raw.types.PeerChannel): + if isinstance(peer, (raw.types.PeerChannel, raw.types.InputPeerChannel)): return peer.channel_id return None -def get_input_peer_id(peer: raw.base.InputPeer) -> Optional[int]: - """Get the raw peer id from a InputPeer object""" - if isinstance(peer, raw.types.InputPeerUser): - return peer.user_id - - if isinstance(peer, raw.types.InputPeerChat): - return peer.chat_id - - if isinstance(peer, raw.types.InputPeerChannel): - return peer.channel_id - return None - - -def get_peer_id(peer: raw.base.Peer) -> int: +def get_peer_id(peer: Union[raw.base.Peer, raw.base.InputPeer]) -> int: """Get the non-raw peer id from a Peer object""" - if isinstance(peer, raw.types.PeerUser): + if isinstance(peer, (raw.types.PeerUser, raw.types.InputPeerUser)): return peer.user_id - if isinstance(peer, raw.types.PeerChat): + if isinstance(peer, (raw.types.PeerChat, raw.types.InputPeerChat)): return -peer.chat_id - if isinstance(peer, raw.types.PeerChannel): + if isinstance(peer, (raw.types.PeerChannel, raw.types.InputPeerChannel)): return MAX_CHANNEL_ID - peer.channel_id raise ValueError(f"Peer type invalid: {peer}") @@ -321,6 +308,7 @@ def get_peer_type(peer_id: int) -> str: raise ValueError(f"Peer id invalid: {peer_id}") + def get_reply_to( reply_to_message_id: Optional[int] = None, message_thread_id: Optional[int] = None, @@ -346,6 +334,7 @@ def get_reply_to( return None + def get_channel_id(peer_id: int) -> int: return MAX_CHANNEL_ID - peer_id