Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits:
2f1dd83d by lovetox at 2020-10-24T10:16:56+02:00
IBB: Use tasks
- - - - -
1 changed file:
- nbxmpp/modules/ibb.py
Changes:
=====================================
nbxmpp/modules/ibb.py
=====================================
@@ -21,16 +21,13 @@ from nbxmpp.protocol import ERR_FEATURE_NOT_IMPLEMENTED
from nbxmpp.protocol import NodeProcessed
from nbxmpp.protocol import Iq
from nbxmpp.namespaces import Namespace
-from nbxmpp.protocol import isResultNode
-from nbxmpp.structs import CommonResult
from nbxmpp.structs import StanzaHandler
from nbxmpp.structs import IBBData
from nbxmpp.util import b64decode
from nbxmpp.util import b64encode
-from nbxmpp.util import call_on_response
-from nbxmpp.util import callback
-from nbxmpp.util import raise_error
from nbxmpp.modules.base import BaseModule
+from nbxmpp.modules.util import process_response
+from nbxmpp.task import iq_request_task
class IBB(BaseModule):
@@ -132,31 +129,46 @@ class IBB(BaseModule):
reply = ErrorStanza(stanza, error)
self._client.send_stanza(reply)
- @call_on_response('_default_response')
+ @iq_request_task
def send_open(self, jid, sid, block_size):
- iq = Iq('set', to=jid)
- iq.addChild('open',
- {'block-size': block_size, 'sid': sid, 'stanza': 'iq'},
- namespace=Namespace.IBB)
- return iq
+ _task = yield
- @call_on_response('_default_response')
+ response = yield _make_ibb_open(jid, sid, block_size)
+ yield process_response(response)
+
+ @iq_request_task
def send_close(self, jid, sid):
- iq = Iq('set', to=jid)
- iq.addChild('close', {'sid': sid}, namespace=Namespace.IBB)
- return iq
+ _task = yield
+
+ response = yield _make_ibb_close(jid, sid)
+ yield process_response(response)
- @call_on_response('_default_response')
+ @iq_request_task
def send_data(self, jid, sid, seq, data):
- iq = Iq('set', to=jid)
- ibb_data = iq.addChild('data',
- {'sid': sid, 'seq': seq},
- namespace=Namespace.IBB)
- ibb_data.setData(b64encode(data))
- return iq
-
- @callback
- def _default_response(self, stanza):
- if not isResultNode(stanza):
- return raise_error(self._log.info, stanza)
- return CommonResult(jid=stanza.getFrom())
+ _task = yield
+
+ response = yield _make_ibb_data(jid, sid, seq, data)
+ yield process_response(response)
+
+
+def _make_ibb_open(jid, sid, block_size):
+ iq = Iq('set', to=jid)
+ iq.addChild('open',
+ {'block-size': block_size, 'sid': sid, 'stanza': 'iq'},
+ namespace=Namespace.IBB)
+ return iq
+
+
+def _make_ibb_close(jid, sid):
+ iq = Iq('set', to=jid)
+ iq.addChild('close', {'sid': sid}, namespace=Namespace.IBB)
+ return iq
+
+
+def _make_ibb_data(jid, sid, seq, data):
+ iq = Iq('set', to=jid)
+ ibb_data = iq.addChild('data',
+ {'sid': sid, 'seq': seq},
+ namespace=Namespace.IBB)
+ ibb_data.setData(b64encode(data))
+ return iq
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/2f1dd83d8cf661e69b17c11d5cc07e1547377a72
--
View it on GitLab:
https://dev.gajim.org/gajim/python-nbxmpp/-/commit/2f1dd83d8cf661e69b17c11d5cc07e1547377a72
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits