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 Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits