diff --git a/sat/plugins/plugin_misc_attach.py b/sat/plugins/plugin_misc_attach.py index 5416ea96..7da4b830 100644 --- a/sat/plugins/plugin_misc_attach.py +++ b/sat/plugins/plugin_misc_attach.py @@ -75,6 +75,9 @@ class AttachPlugin: 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 @@ class AttachPlugin: client, filepath=path, filename=name, + options=options, ) uploads_d.append(upload_d) diff --git a/sat/plugins/plugin_misc_file.py b/sat/plugins/plugin_misc_file.py index 8ee435a5..a4456a31 100644 --- a/sat/plugins/plugin_misc_file.py +++ b/sat/plugins/plugin_misc_file.py @@ -48,7 +48,8 @@ This plugin manage the various ways of sending a file, and choose the best one." 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 @@ SECURITY_LIMIT = 30 PROGRESS_ID_KEY = "progress_id" -class FilePlugin(object): +class FilePlugin: File = stream.SatFile def __init__(self, host): @@ -99,7 +100,8 @@ class FilePlugin(object): @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") diff --git a/sat/plugins/plugin_misc_upload.py b/sat/plugins/plugin_misc_upload.py index f8311bb7..0a751412 100644 --- a/sat/plugins/plugin_misc_upload.py +++ b/sat/plugins/plugin_misc_upload.py @@ -111,6 +111,8 @@ class UploadPlugin(object): @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 diff --git a/sat/plugins/plugin_xep_0363.py b/sat/plugins/plugin_xep_0363.py index 2eb3b467..a1f6ca90 100644 --- a/sat/plugins/plugin_xep_0363.py +++ b/sat/plugins/plugin_xep_0363.py @@ -160,7 +160,8 @@ class XEP_0363(object): 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 diff --git a/sat/tools/stream.py b/sat/tools/stream.py index 8470845e..916c1077 100644 --- a/sat/tools/stream.py +++ b/sat/tools/stream.py @@ -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