Mercurial > libervia-backend
changeset 4220:5a0bddfa34ac
plugin XEP-0234: fix action type when pre-flight file confirmation is confirmed:
the `C.META_TYPE_FILE` can't be used in this case as it is a preflight and we don't have
yet data such as progress ID. `C.META_TYPE_FILE` is used as a sub-type to help with dialog
management in frontend.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 05 Mar 2024 17:31:49 +0100 |
parents | 1b5cf2ee1d86 |
children | 2b000790b197 |
files | libervia/backend/core/constants.py libervia/backend/plugins/plugin_xep_0234.py |
diffstat | 2 files changed, 20 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/libervia/backend/core/constants.py Tue Mar 05 17:31:36 2024 +0100 +++ b/libervia/backend/core/constants.py Tue Mar 05 17:31:49 2024 +0100 @@ -347,6 +347,8 @@ ) # //default = normal output (stderr or a file with twistd), path/to/file for a file (must be the first if used), //memory for memory (options can be put in parenthesis, e.g.: //memory(500) for a 500 lines memory) ## action constants ## + #: simple confirmation dialog + META_TYPE_CONFIRM = "confirm" META_TYPE_FILE = "file" META_TYPE_CALL = "call" META_TYPE_OVERWRITE = "overwrite"
--- a/libervia/backend/plugins/plugin_xep_0234.py Tue Mar 05 17:31:36 2024 +0100 +++ b/libervia/backend/plugins/plugin_xep_0234.py Tue Mar 05 17:31:49 2024 +0100 @@ -443,22 +443,27 @@ ).format(peer_jid=peer_jid, human_name=self.human_name) confirm_title = D_("File sent from an unknown contact") action_type = C.META_TYPE_NOT_IN_ROSTER_LEAK + action_subtype = None else: confirm_msg = D_( - "{peer_jid} wants to send a file ro you, do you accept?" + "{peer_jid} wants to send a file to you, do you accept?" ).format(peer_jid=peer_jid) confirm_title = D_("File Proposed") - action_type = C.META_TYPE_FILE + action_type = C.META_TYPE_CONFIRM + action_subtype = C.META_TYPE_FILE + action_extra = { + "type": action_type, + "session_id": session_id, + "from_jid": peer_jid.full(), + } + if action_subtype is not None: + action_extra["subtype"] = action_subtype accepted = await xml_tools.defer_confirm( self.host, confirm_msg, confirm_title, profile=client.profile, - action_extra={ - "type": action_type, - "session_id": session_id, - "from_jid": peer_jid.full(), - }, + action_extra=action_extra ) if accepted: session["file_accepted"] = True @@ -546,7 +551,12 @@ return desc_elt async def jingle_request_confirmation( - self, client, action, session, content_name, desc_elt + self, + client: SatXMPPEntity, + action: str, + session: dict, + content_name: str, + desc_elt: domish.Element, ): """This method request confirmation for a jingle session""" content_data = session["contents"][content_name]