Mercurial > libervia-backend
changeset 3182:f2bb57348587
plugin attach, XEP-0363: progress id can now be specified:
progress id can be specified in options, using the "progress_id" option, this can be
more handy for frontends to keep track of attachments progresses.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 23 Feb 2020 17:48:26 +0100 |
parents | 5ff2cf7f0aba |
children | 8565af209234 |
files | sat/plugins/plugin_misc_attach.py sat/plugins/plugin_misc_file.py sat/plugins/plugin_misc_upload.py sat/plugins/plugin_xep_0363.py sat/tools/stream.py |
diffstat | 5 files changed, 14 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/sat/plugins/plugin_misc_attach.py Sun Feb 23 17:48:26 2020 +0100 +++ b/sat/plugins/plugin_misc_attach.py Sun Feb 23 17:48:26 2020 +0100 @@ -75,6 +75,9 @@ name = attachment["name"] = path.name options = {} + progress_id = attachment.get("progress_id") + if progress_id: + options["progress_id"] = attachment["progress_id"] if client.encryption.isEncryptionRequested(data): # FIXME: we should not use implementation specific value here # but for not it's the only file encryption method available with @@ -85,6 +88,7 @@ client, filepath=path, filename=name, + options=options, ) uploads_d.append(upload_d)
--- a/sat/plugins/plugin_misc_file.py Sun Feb 23 17:48:26 2020 +0100 +++ b/sat/plugins/plugin_misc_file.py Sun Feb 23 17:48:26 2020 +0100 @@ -48,7 +48,8 @@ SENDING = D_("Please select a file to send to {peer}") SENDING_TITLE = D_("File sending") CONFIRM = D_( - '{peer} wants to send the file "{name}" to you:\n{desc}\n\nThe file has a size of {size_human}\n\nDo you accept ?' + '{peer} wants to send the file "{name}" to you:\n{desc}\n\nThe file has a size of ' + '{size_human}\n\nDo you accept ?' ) CONFIRM_TITLE = D_("Confirm file transfer") CONFIRM_OVERWRITE = D_("File {} already exists, are you sure you want to overwrite ?") @@ -58,7 +59,7 @@ PROGRESS_ID_KEY = "progress_id" -class FilePlugin(object): +class FilePlugin: File = stream.SatFile def __init__(self, host): @@ -99,7 +100,8 @@ @param filename(unicode, None): name to use, or None to find it from filepath @param file_desc(unicode, None): description of the file @param profile: %(doc_profile)s - @return (dict): action dictionary, with progress id in case of success, else xmlui message + @return (dict): action dictionary, with progress id in case of success, else + xmlui message """ if not os.path.isfile(filepath): raise exceptions.DataError("The given path doesn't link to a file")
--- a/sat/plugins/plugin_misc_upload.py Sun Feb 23 17:48:26 2020 +0100 +++ b/sat/plugins/plugin_misc_upload.py Sun Feb 23 17:48:26 2020 +0100 @@ -111,6 +111,8 @@ @param options(dict): option to use for the upload, may be: - ignore_tls_errors(bool): True to ignore SSL/TLS certificate verification used only if HTTPS transport is needed + - progress_id(str): id to use for progression + if not specified, one will be generated @param profile: %(doc_profile)s @return (tuple[unicode,D(unicode)]): progress_id and a Deferred which fire download URL when upload is finished
--- a/sat/plugins/plugin_xep_0363.py Sun Feb 23 17:48:26 2020 +0100 +++ b/sat/plugins/plugin_xep_0363.py Sun Feb 23 17:48:26 2020 +0100 @@ -160,7 +160,8 @@ else: log.debug(f"Got upload slot: {slot}") sat_file = self.host.plugins["FILE"].File( - self.host, client, filepath, size=size, auto_end_signals=False + self.host, client, filepath, uid=options.get("progress_id"), size=size, + auto_end_signals=False ) progress_id = sat_file.uid
--- a/sat/tools/stream.py Sun Feb 23 17:48:26 2020 +0100 +++ b/sat/tools/stream.py Sun Feb 23 17:48:26 2020 +0100 @@ -1,7 +1,6 @@ #!/usr/bin/env python3 - -# SAT: a jabber client +# SàT: an XMPP client # Copyright (C) 2009-2020 Jérôme Poisson (goffi@goffi.org) # This program is free software: you can redistribute it and/or modify