Skip to content

Commit c8fd446

Browse files
committed
Remove Dialogs type
1 parent 2db2ca3 commit c8fd446

5 files changed

Lines changed: 35 additions & 96 deletions

File tree

docs/source/api/types.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ Users & Chats
3232
- :class:`ChatMember`
3333
- :class:`ChatPermissions`
3434
- :class:`Dialog`
35-
- :class:`Dialogs`
3635

3736
Messages & Media
3837
^^^^^^^^^^^^^^^^
@@ -124,7 +123,6 @@ Details
124123
.. autoclass:: ChatMember()
125124
.. autoclass:: ChatPermissions()
126125
.. autoclass:: Dialog()
127-
.. autoclass:: Dialogs()
128126

129127
.. Messages & Media
130128
.. autoclass:: Message()

pyrogram/client/methods/chats/get_dialogs.py

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import logging
2020
import time
21+
from typing import List
2122

2223
import pyrogram
2324
from pyrogram.api import functions, types
@@ -33,7 +34,7 @@ def get_dialogs(
3334
offset_date: int = 0,
3435
limit: int = 100,
3536
pinned_only: bool = False
36-
) -> "pyrogram.Dialogs":
37+
) -> List["pyrogram.Dialog"]:
3738
"""Get a chunk of the user's dialogs.
3839
3940
You can get up to 100 dialogs at once.
@@ -53,7 +54,7 @@ def get_dialogs(
5354
Defaults to False.
5455
5556
Returns:
56-
:obj:`Dialogs`: On success, an object containing a list of dialogs is returned.
57+
List of :obj:`Dialog`: On success, a list of dialogs is returned.
5758
5859
Raises:
5960
RPCError: In case of a Telegram RPC error.
@@ -80,4 +81,32 @@ def get_dialogs(
8081
else:
8182
break
8283

83-
return pyrogram.Dialogs._parse(self, r)
84+
users = {i.id: i for i in r.users}
85+
chats = {i.id: i for i in r.chats}
86+
87+
messages = {}
88+
89+
for message in r.messages:
90+
to_id = message.to_id
91+
92+
if isinstance(to_id, types.PeerUser):
93+
if message.out:
94+
chat_id = to_id.user_id
95+
else:
96+
chat_id = message.from_id
97+
elif isinstance(to_id, types.PeerChat):
98+
chat_id = -to_id.chat_id
99+
else:
100+
chat_id = int("-100" + str(to_id.channel_id))
101+
102+
messages[chat_id] = pyrogram.Message._parse(self, message, users, chats)
103+
104+
parsed_dialogs = []
105+
106+
for dialog in r.dialogs:
107+
if not isinstance(dialog, types.Dialog):
108+
continue
109+
110+
parsed_dialogs.append(pyrogram.Dialog._parse(self, dialog, messages, users, chats))
111+
112+
return pyrogram.List(parsed_dialogs)

pyrogram/client/methods/chats/iter_dialogs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def iter_dialogs(
5555

5656
pinned_dialogs = self.get_dialogs(
5757
pinned_only=True
58-
).dialogs
58+
)
5959

6060
for dialog in pinned_dialogs:
6161
yield dialog
@@ -69,7 +69,7 @@ def iter_dialogs(
6969
dialogs = self.get_dialogs(
7070
offset_date=offset_date,
7171
limit=limit
72-
).dialogs
72+
)
7373

7474
if not dialogs:
7575
return

pyrogram/client/types/user_and_chats/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
2222
from .chat_photo import ChatPhoto
2323
from .chat_preview import ChatPreview
2424
from .dialog import Dialog
25-
from .dialogs import Dialogs
2625
from .user import User
2726
from .user_status import UserStatus
2827

2928
__all__ = [
30-
"Chat", "ChatMember", "ChatPermissions", "ChatPhoto", "ChatPreview", "Dialog", "Dialogs", "User", "UserStatus"
29+
"Chat", "ChatMember", "ChatPermissions", "ChatPhoto", "ChatPreview", "Dialog", "User", "UserStatus"
3130
]

pyrogram/client/types/user_and_chats/dialogs.py

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)