Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
python-nbxmpp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
8
Issues
8
List
Boards
Labels
Service Desk
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gajim
python-nbxmpp
Commits
2f1dd83d
Commit
2f1dd83d
authored
Oct 24, 2020
by
Philipp Hörist
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
IBB: Use tasks
parent
aea0a654
Pipeline
#6639
passed with stages
in 49 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
28 deletions
+40
-28
nbxmpp/modules/ibb.py
nbxmpp/modules/ibb.py
+40
-28
No files found.
nbxmpp/modules/ibb.py
View file @
2f1dd83d
...
...
@@ -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
genofire
@genofire
mentioned in issue
#113 (closed)
·
Nov 07, 2020
mentioned in issue
#113 (closed)
mentioned in issue #113
Toggle commit list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment