comparison libervia/backend/plugins/plugin_xep_0096.py @ 4270:0d7bb4df2343

Reformatted code base using black.
author Goffi <goffi@goffi.org>
date Wed, 19 Jun 2024 18:44:57 +0200
parents e11b13418ba6
children
comparison
equal deleted inserted replaced
4269:64a85ce8be70 4270:0d7bb4df2343
65 self._f = self.host.plugins["FILE"] 65 self._f = self.host.plugins["FILE"]
66 self._f.register(self) 66 self._f.register(self)
67 self._si = self.host.plugins["XEP-0095"] 67 self._si = self.host.plugins["XEP-0095"]
68 self._si.register_si_profile(SI_PROFILE_NAME, self._transfer_request) 68 self._si.register_si_profile(SI_PROFILE_NAME, self._transfer_request)
69 host.bridge.add_method( 69 host.bridge.add_method(
70 "si_file_send", ".plugin", in_sign="sssss", out_sign="s", method=self._file_send 70 "si_file_send",
71 ".plugin",
72 in_sign="sssss",
73 out_sign="s",
74 method=self._file_send,
71 ) 75 )
72 76
73 async def can_handle_file_send(self, client, peer_jid, filepath): 77 async def can_handle_file_send(self, client, peer_jid, filepath):
74 return await self.host.hasFeature(client, NS_SI_FT, peer_jid) 78 return await self.host.hasFeature(client, NS_SI_FT, peer_jid)
75 79
278 282
279 @param id: stream id 283 @param id: stream id
280 @param data: session data 284 @param data: session data
281 """ 285 """
282 log.warning( 286 log.warning(
283 "Transfer {si_id} failed: {reason}".format( 287 "Transfer {si_id} failed: {reason}".format(reason=str(failure.value), **data)
284 reason=str(failure.value), **data
285 )
286 ) 288 )
287 data["stream_object"].close() 289 data["stream_object"].close()
288 290
289 def _file_send(self, peer_jid_s, filepath, name, desc, profile=C.PROF_KEY_NONE): 291 def _file_send(self, peer_jid_s, filepath, name, desc, profile=C.PROF_KEY_NONE):
290 client = self.host.get_client(profile) 292 client = self.host.get_client(profile)
295 def file_send( 297 def file_send(
296 self, 298 self,
297 client: SatXMPPEntity, 299 client: SatXMPPEntity,
298 peer_jid: jid.JID, 300 peer_jid: jid.JID,
299 filepath: str, 301 filepath: str,
300 name: str|None = None, 302 name: str | None = None,
301 desc: str|None = None, 303 desc: str | None = None,
302 extra: dict|None = None 304 extra: dict | None = None,
303 ) -> dict: 305 ) -> dict:
304 """Send a file using XEP-0096. 306 """Send a file using XEP-0096.
305 307
306 @param peer_jid: recipient 308 @param peer_jid: recipient
307 @param filepath: absolute path to the file to send 309 @param filepath: absolute path to the file to send
371 return 373 return
372 374
373 stream_object = stream.FileStreamObject( 375 stream_object = stream.FileStreamObject(
374 self.host, client, filepath, uid=sid, size=size 376 self.host, client, filepath, uid=sid, size=size
375 ) 377 )
376 d = plugin.start_stream(client, stream_object, client.jid, 378 d = plugin.start_stream(
377 jid.JID(iq_elt["from"]), sid) 379 client, stream_object, client.jid, jid.JID(iq_elt["from"]), sid
380 )
378 d.addCallback(self._send_cb, client, sid, stream_object) 381 d.addCallback(self._send_cb, client, sid, stream_object)
379 d.addErrback(self._send_eb, client, sid, stream_object) 382 d.addErrback(self._send_eb, client, sid, stream_object)
380 383
381 def _file_eb(self, failure, filepath, sid, size, client): 384 def _file_eb(self, failure, filepath, sid, size, client):
382 if failure.check(error.StanzaError): 385 if failure.check(error.StanzaError):
391 log.warning(_("Error during file transfer")) 394 log.warning(_("Error during file transfer"))
392 msg = D_( 395 msg = D_(
393 "Something went wrong during the file transfer session initialisation: {reason}" 396 "Something went wrong during the file transfer session initialisation: {reason}"
394 ).format(reason=str(stanza_err)) 397 ).format(reason=str(stanza_err))
395 title = D_("File transfer error") 398 title = D_("File transfer error")
396 xml_tools.quick_note(self.host, client, msg, title, C.XMLUI_DATA_LVL_ERROR) 399 xml_tools.quick_note(
400 self.host, client, msg, title, C.XMLUI_DATA_LVL_ERROR
401 )
397 elif failure.check(exceptions.DataError): 402 elif failure.check(exceptions.DataError):
398 log.warning("Invalid stanza received") 403 log.warning("Invalid stanza received")
399 else: 404 else:
400 log.error("Error while proposing stream: {}".format(failure)) 405 log.error("Error while proposing stream: {}".format(failure))
401 406