Mercurial > libervia-backend
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 |