Skip to content

Commit c1d3af5

Browse files
committed
Spond.get_messages: add max_chats parameter and populate Spond.messages.
1 parent 5580c5f commit c1d3af5

File tree

2 files changed

+26
-10
lines changed

2 files changed

+26
-10
lines changed

manual_test_functions.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ async def main() -> None:
3333
for i, event in enumerate(events):
3434
print(f"[{i}] {_event_summary(event)}")
3535

36-
# MESSAGES
36+
# CHATS (MESSAGES)
3737

38-
print("\nGetting up to 10 messages...")
39-
messages = await s.get_messages()
40-
print(f"{len(messages)} messages:")
41-
for i, message in enumerate(messages):
42-
print(f"[{i}] {_message_summary(message)}")
38+
print("\nGetting up to 10 chats...")
39+
messages = await s.get_messages(max_chats=10)
40+
print(f"{len(messages)} chats:")
41+
for i, chat in enumerate(messages):
42+
print(f"[{i}] {_message_summary(chat)}")
4343

4444
# ATTENDANCE EXPORT
4545

spond/spond.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def __init__(self, username: str, password: str) -> None:
2525
self.auth = None
2626
self.groups = None
2727
self.events = None
28+
self.messages = None
2829

2930
async def login_chat(self) -> None:
3031
api_chat_url = f"{self.api_url}chat"
@@ -118,10 +119,20 @@ async def get_person(self, user: str) -> DictFromJSON:
118119
raise KeyError(errmsg)
119120

120121
@_SpondBase.require_authentication
121-
async def get_messages(self) -> Optional[DictFromJSON]:
122+
async def get_messages(
123+
self,
124+
max_chats: int = 100,
125+
) -> Optional[DictFromJSON]:
122126
"""
123127
Retrieve messages (chats).
124128
129+
Parameters
130+
----------
131+
max_chats : int, optional
132+
Set a limit on the number of chats returned.
133+
For performance reasons, defaults to 100.
134+
Uses `max` API parameter.
135+
125136
Returns
126137
-------
127138
list[dict] or None
@@ -130,9 +141,14 @@ async def get_messages(self) -> Optional[DictFromJSON]:
130141
"""
131142
if not self.auth:
132143
await self.login_chat()
133-
url = f"{self.chat_url}/chats/?max=10"
134-
async with self.clientsession.get(url, headers={"auth": self.auth}) as r:
135-
return await r.json()
144+
url = f"{self.chat_url}/chats/"
145+
async with self.clientsession.get(
146+
url,
147+
headers={"auth": self.auth},
148+
params={"max": str(max_chats)},
149+
) as r:
150+
self.messages = await r.json()
151+
return self.messages
136152

137153
@_SpondBase.require_authentication
138154
async def _continue_chat(self, chat_id: str, text: str):

0 commit comments

Comments
 (0)