]> git.ipfire.org Git - pakfire.git/commitdiff
client: Add command to list all uploads
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 23 Oct 2022 17:33:25 +0000 (17:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 23 Oct 2022 17:33:25 +0000 (17:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/hub.py
src/scripts/pakfire-client.in

index e80a070ff5037244c2d6ad3f249d440d1245f9b2..4d47965e3dd841f87f729a2e776b19fb133364aa 100644 (file)
@@ -222,7 +222,15 @@ class Hub(object):
        def get_package(self, uuid):
                return self._request("/packages/%s" % uuid, decode="json")
 
-       # File uploads
+       # Uploads
+
+       async def list_uploads(self):
+               """
+                       Returns a list of all uploads
+               """
+               response = await self._request("GET", "/uploads")
+
+               return response.get("uploads")
 
        async def upload(self, path, filename=None, show_progress=True):
                """
index a7defc3fca75deae8fbcf4b642334bc5bc464e88..698d238b90b8f24754fa457ceddad34ec5bc567f 100644 (file)
@@ -62,6 +62,10 @@ class Cli(object):
 
                upload_subparsers = upload.add_subparsers()
 
+               # upload list
+               upload_list = upload_subparsers.add_parser("list", help=_("List all uploads"))
+               upload_list.set_defaults(func=self._upload_list)
+
                # upload new
                upload_new = upload_subparsers.add_parser("new", help=_("Create a new upload"))
                upload_new.add_argument("file", nargs="+", help=_("Filename"))
@@ -141,6 +145,24 @@ class Cli(object):
 
        # Uploads
 
+       async def _upload_list(self, hub, ns):
+               uploads = await hub.list_uploads()
+
+               for upload in uploads:
+                       print(_("Upload %s") % upload.get("id"))
+
+                       attributes = {
+                               _("Filename")   : upload.get("filename"),
+                               _("Size")       : upload.get("size"),
+                               _("Created at") : upload.get("created_at"),
+                               _("Expires at") : upload.get("expires_at"),
+                       }
+
+                       for key, val in attributes.items():
+                               print ("  %-20s : %s" % (key, val))
+
+                       print() # newline
+
        async def _upload_new(self, hub, ns):
                for file in ns.file:
                        upload_id = await hub.upload(file)