From a20e831d942eb2100bbaa8cd9a2ac63b861451fb Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Sun, 16 Feb 2025 13:57:24 -0500 Subject: [PATCH] Added object search/listing --- src/packetserver/client/objects.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/packetserver/client/objects.py b/src/packetserver/client/objects.py index 9d76c94..252d453 100644 --- a/src/packetserver/client/objects.py +++ b/src/packetserver/client/objects.py @@ -103,3 +103,30 @@ def get_object_by_uuid(client: Client, bbs_callsign: str, uuid: Union[str, bytes raise RuntimeError(f"Sending job failed: {response.status_code}: {response.payload}") return ObjectWrapper(response.payload) +def get_user_objects(client: Client, bbs_callsign: str, limit: int = 10, include_data: bool = True, search: str = None, + reverse: bool = False, sort_date: bool = False, sort_name: bool = False, sort_size: bool = False)\ + -> list[ObjectWrapper]: + + req = Request.blank() + if include_data: + req.set_var('fetch', 1) + if sort_date: + req.set_var('sort', 'date') + if sort_size: + req.set_var('sort', 'size') + if sort_name: + req.set_var('sort', 'name') + req.set_var('reverse', reverse) + req.set_var('limit', limit) + if search is not None: + req.set_var('search', str(search)) + req.path = "object" + req.method = Request.Method.GET + response = client.send_receive_callsign(req, bbs_callsign) + if response.status_code != 200: + raise RuntimeError(f"Sending job failed: {response.status_code}: {response.payload}") + out_list = [] + for o in response.payload: + out_list.append(ObjectWrapper(o)) + return out_list +