Skip to content

Commit 7310415

Browse files
committed
Refactor message retrieval logic: simplify receive_text parameters, add methods for latest and new text messages
1 parent 59eb390 commit 7310415

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

StealthIM/apis/message.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,14 +100,13 @@ async def get_message(
100100
session: str,
101101
groupid: int,
102102
from_id: int,
103-
old_to_new: bool,
104103
sync: bool,
105104
limit: int = 128,
106105
):
107106
assert 0 <= limit <= 256, "Limit must be between 0 and 256"
108107
api_address = (
109108
f'{url}/api/v1/message/{groupid}?'
110-
f'msgid={from_id}&prev={"false" if old_to_new else "true"}&sync={"true" if sync else "false"}&limit={limit}'
109+
f'msgid={from_id}&sync={"true" if sync else "false"}&limit={limit}'
111110
)
112111
logger.debug(f"Called API get_message with url {api_address}")
113112
headers = {

StealthIM/group.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,10 @@ async def send_text(self, message: str) -> SendMessageResult:
129129
StealthIM.apis.message.MessageType.Text
130130
)
131131

132-
async def receive_text(self, from_id: int = 0, old_to_new: bool = True, sync: bool = True, limit: int = 128):
132+
async def receive_text(self, from_id: int = 0, sync: bool = True, limit: int = 128):
133133
"""
134134
Receive text messages from the group.
135135
:param from_id: Start message ID
136-
:param old_to_new: Sort from old to new
137136
:param sync: Whether to sync
138137
:param limit: Maximum number of messages
139138
:yield: Message data
@@ -143,13 +142,20 @@ async def receive_text(self, from_id: int = 0, old_to_new: bool = True, sync: bo
143142
self.user.session,
144143
self.group_id,
145144
from_id,
146-
old_to_new,
147145
sync,
148146
limit
149147
)
150148
async for data in gen:
151149
yield data
152150

151+
async def receive_latest_text(self, limit: int = 128):
152+
async for data in self.receive_text(from_id=0, sync=False, limit=limit):
153+
yield data
154+
155+
async def receive_new_text(self, limit: int = 128):
156+
async for data in self.receive_text(from_id=-1, limit=limit):
157+
yield data
158+
153159
async def recall_message(self, message_id: int):
154160
return await StealthIM.apis.message.recall_message(self.user.server.url, self.user.session, self.group_id, message_id)
155161

0 commit comments

Comments
 (0)