Merge branch 'docs-event-sphinx-plugins' into 'master'

Docs: add more events, add plugins to the doc

See merge request poezio/slixmpp!84
This commit is contained in:
Link Mauve 2020-12-10 19:45:30 +01:00
commit 1e2d15b8f5
145 changed files with 2757 additions and 1245 deletions

View File

@ -0,0 +1,96 @@
Plugins
=======
.. toctree::
:maxdepth: 2
xep_0004
xep_0009
xep_0012
xep_0013
xep_0020
xep_0027
xep_0030
xep_0033
xep_0045
xep_0047
xep_0049
xep_0050
xep_0054
xep_0059
xep_0060
xep_0065
xep_0066
xep_0070
xep_0071
xep_0077
xep_0079
xep_0080
xep_0082
xep_0084
xep_0085
xep_0086
xep_0092
xep_0106
xep_0107
xep_0108
xep_0115
xep_0118
xep_0122
xep_0128
xep_0131
xep_0133
xep_0152
xep_0153
xep_0163
xep_0172
xep_0184
xep_0186
xep_0191
xep_0196
xep_0198
xep_0199
xep_0202
xep_0203
xep_0221
xep_0222
xep_0223
xep_0224
xep_0231
xep_0235
xep_0249
xep_0256
xep_0257
xep_0258
xep_0279
xep_0280
xep_0297
xep_0300
xep_0308
xep_0313
xep_0319
xep_0332
xep_0333
xep_0334
xep_0335
xep_0352
xep_0353
xep_0359
xep_0363
xep_0369
xep_0377
xep_0380
xep_0394
xep_0403
xep_0404
xep_0405
xep_0421
xep_0422
xep_0424
xep_0425
xep_0428
xep_0437
xep_0439
xep_0444

View File

@ -0,0 +1,21 @@
XEP 0004
========
.. module:: slixmpp.plugins.xep_0004
.. autoclass:: XEP_0004
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0004.stanza.field
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0004.stanza.form
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0009
========
.. module:: slixmpp.plugins.xep_0009
.. autoclass:: XEP_0009
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0009.stanza.RPC
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0012
========
.. module:: slixmpp.plugins.xep_0012
.. autoclass:: XEP_0012
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0012.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0013
========
.. module:: slixmpp.plugins.xep_0013
.. autoclass:: XEP_0013
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0013.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0020
========
.. module:: slixmpp.plugins.xep_0020
.. autoclass:: XEP_0020
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0020.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0027
========
.. module:: slixmpp.plugins.xep_0027
.. autoclass:: XEP_0027
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0027.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,22 @@
XEP 0030
========
.. module:: slixmpp.plugins.xep_0030
.. autoclass:: XEP_0030
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0030.stanza.info
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0030.stanza.items
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0033
========
.. module:: slixmpp.plugins.xep_0033
.. autoclass:: XEP_0033
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0033.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0045
========
.. module:: slixmpp.plugins.xep_0045
.. autoclass:: XEP_0045
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0045.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0047
========
.. module:: slixmpp.plugins.xep_0047
.. autoclass:: XEP_0047
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0047.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0049
========
.. module:: slixmpp.plugins.xep_0049
.. autoclass:: XEP_0049
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0049.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0050
========
.. module:: slixmpp.plugins.xep_0050
.. autoclass:: XEP_0050
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0050.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0054
========
.. module:: slixmpp.plugins.xep_0054
.. autoclass:: XEP_0054
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0054.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0059
========
.. module:: slixmpp.plugins.xep_0059
.. autoclass:: XEP_0059
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0059.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,37 @@
XEP 0060
========
.. module:: slixmpp.plugins.xep_0060
.. autoclass:: XEP_0060
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0060.stanza.base
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_errors
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_owner
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0060.stanza.pubsub_event
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0065
========
.. module:: slixmpp.plugins.xep_0065
.. autoclass:: XEP_0065
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0065.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0066
========
.. module:: slixmpp.plugins.xep_0066
.. autoclass:: XEP_0066
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0066.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0070
========
.. module:: slixmpp.plugins.xep_0070
.. autoclass:: XEP_0070
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0070.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0071
========
.. module:: slixmpp.plugins.xep_0071
.. autoclass:: XEP_0071
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0071.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0077
========
.. module:: slixmpp.plugins.xep_0077
.. autoclass:: XEP_0077
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0077.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0079
========
.. module:: slixmpp.plugins.xep_0079
.. autoclass:: XEP_0079
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0079.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0080
========
.. module:: slixmpp.plugins.xep_0080
.. autoclass:: XEP_0080
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0080.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0082
========
.. module:: slixmpp.plugins.xep_0082
.. autoclass:: XEP_0082
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0084
========
.. module:: slixmpp.plugins.xep_0084
.. autoclass:: XEP_0084
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0084.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0085
========
.. module:: slixmpp.plugins.xep_0085
.. autoclass:: XEP_0085
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0085.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0086
========
.. module:: slixmpp.plugins.xep_0086
.. autoclass:: XEP_0086
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0086.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0092
========
.. module:: slixmpp.plugins.xep_0092
.. autoclass:: XEP_0092
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0092.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0106
========
.. module:: slixmpp.plugins.xep_0106
.. autoclass:: XEP_0106
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0107
========
.. module:: slixmpp.plugins.xep_0107
.. autoclass:: XEP_0107
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0107.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0108
========
.. module:: slixmpp.plugins.xep_0108
.. autoclass:: XEP_0108
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0108.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0115
========
.. module:: slixmpp.plugins.xep_0115
.. autoclass:: XEP_0115
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0115.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0118
========
.. module:: slixmpp.plugins.xep_0118
.. autoclass:: XEP_0118
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0118.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0122
========
.. module:: slixmpp.plugins.xep_0122
.. autoclass:: XEP_0122
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0122.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0128
========
.. module:: slixmpp.plugins.xep_0128
.. autoclass:: XEP_0128
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0131
========
.. module:: slixmpp.plugins.xep_0131
.. autoclass:: XEP_0131
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0131.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0133
========
.. module:: slixmpp.plugins.xep_0133
.. autoclass:: XEP_0133
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0152
========
.. module:: slixmpp.plugins.xep_0152
.. autoclass:: XEP_0152
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0152.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0153
========
.. module:: slixmpp.plugins.xep_0153
.. autoclass:: XEP_0153
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0153.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0163
========
.. module:: slixmpp.plugins.xep_0163
.. autoclass:: XEP_0163
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0172
========
.. module:: slixmpp.plugins.xep_0172
.. autoclass:: XEP_0172
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0172.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0184
========
.. module:: slixmpp.plugins.xep_0184
.. autoclass:: XEP_0184
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0184.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0186
========
.. module:: slixmpp.plugins.xep_0186
.. autoclass:: XEP_0186
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0186.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0191
========
.. module:: slixmpp.plugins.xep_0191
.. autoclass:: XEP_0191
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0191.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0196
========
.. module:: slixmpp.plugins.xep_0196
.. autoclass:: XEP_0196
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0196.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0198
========
.. module:: slixmpp.plugins.xep_0198
.. autoclass:: XEP_0198
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0198.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0199
========
.. module:: slixmpp.plugins.xep_0199
.. autoclass:: XEP_0199
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0199.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0202
========
.. module:: slixmpp.plugins.xep_0202
.. autoclass:: XEP_0202
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0202.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0203
========
.. module:: slixmpp.plugins.xep_0203
.. autoclass:: XEP_0203
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0203.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0221
========
.. module:: slixmpp.plugins.xep_0221
.. autoclass:: XEP_0221
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0221.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0222
========
.. module:: slixmpp.plugins.xep_0222
.. autoclass:: XEP_0222
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,9 @@
XEP 0223
========
.. module:: slixmpp.plugins.xep_0223
.. autoclass:: XEP_0223
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0224
========
.. module:: slixmpp.plugins.xep_0224
.. autoclass:: XEP_0224
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0224.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0231
========
.. module:: slixmpp.plugins.xep_0231
.. autoclass:: XEP_0231
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0231.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0235
========
.. module:: slixmpp.plugins.xep_0235
.. autoclass:: XEP_0235
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0235.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0249
========
.. module:: slixmpp.plugins.xep_0249
.. autoclass:: XEP_0249
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0249.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP 0256
========
.. module:: slixmpp.plugins.xep_0256
.. autoclass:: XEP_0256
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,18 @@
XEP 0257
========
.. module:: slixmpp.plugins.xep_0257
.. autoclass:: XEP_0257
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0257.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0258
========
.. module:: slixmpp.plugins.xep_0258
.. autoclass:: XEP_0258
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0258.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0279
========
.. module:: slixmpp.plugins.xep_0279
.. autoclass:: XEP_0279
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0279.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0280
========
.. module:: slixmpp.plugins.xep_0280
.. autoclass:: XEP_0280
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0280.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0297
========
.. module:: slixmpp.plugins.xep_0297
.. autoclass:: XEP_0297
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0297.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0300
========
.. module:: slixmpp.plugins.xep_0300
.. autoclass:: XEP_0300
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0300.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0308
========
.. module:: slixmpp.plugins.xep_0308
.. autoclass:: XEP_0308
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0308.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0313
========
.. module:: slixmpp.plugins.xep_0313
.. autoclass:: XEP_0313
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0313.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0319
========
.. module:: slixmpp.plugins.xep_0319
.. autoclass:: XEP_0319
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0319.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,26 @@
XEP 0332
========
.. module:: slixmpp.plugins.xep_0332
.. autoclass:: XEP_0332
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0332.stanza.data
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0332.stanza.request
:members:
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0332.stanza.response
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0333
========
.. module:: slixmpp.plugins.xep_0333
.. autoclass:: XEP_0333
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0333.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0334
========
.. module:: slixmpp.plugins.xep_0334
.. autoclass:: XEP_0334
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0334.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0335
========
.. module:: slixmpp.plugins.xep_0335
.. autoclass:: XEP_0335
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0335.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0352
========
.. module:: slixmpp.plugins.xep_0352
.. autoclass:: XEP_0352
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0352.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0353
========
.. module:: slixmpp.plugins.xep_0353
.. autoclass:: XEP_0353
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0353.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0359
========
.. module:: slixmpp.plugins.xep_0359
.. autoclass:: XEP_0359
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0359.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0363
========
.. module:: slixmpp.plugins.xep_0363
.. autoclass:: XEP_0363
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0363.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0369
========
.. module:: slixmpp.plugins.xep_0369
.. autoclass:: XEP_0369
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0369.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0377
========
.. module:: slixmpp.plugins.xep_0377
.. autoclass:: XEP_0377
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0377.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0380
========
.. module:: slixmpp.plugins.xep_0380
.. autoclass:: XEP_0380
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0380.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0394
========
.. module:: slixmpp.plugins.xep_0394
.. autoclass:: XEP_0394
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0394.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0403
========
.. module:: slixmpp.plugins.xep_0403
.. autoclass:: XEP_0403
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0403.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0404
========
.. module:: slixmpp.plugins.xep_0404
.. autoclass:: XEP_0404
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0404.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0405
========
.. module:: slixmpp.plugins.xep_0405
.. autoclass:: XEP_0405
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0405.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0421
========
.. module:: slixmpp.plugins.xep_0421
.. autoclass:: XEP_0421
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0421.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0422
========
.. module:: slixmpp.plugins.xep_0422
.. autoclass:: XEP_0422
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0422.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0424
========
.. module:: slixmpp.plugins.xep_0424
.. autoclass:: XEP_0424
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0424.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0425
========
.. module:: slixmpp.plugins.xep_0425
.. autoclass:: XEP_0425
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0425.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0428
========
.. module:: slixmpp.plugins.xep_0428
.. autoclass:: XEP_0428
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0428.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0437
========
.. module:: slixmpp.plugins.xep_0437
.. autoclass:: XEP_0437
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0437.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0439
========
.. module:: slixmpp.plugins.xep_0439
.. autoclass:: XEP_0439
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0439.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP 0444
========
.. module:: slixmpp.plugins.xep_0444
.. autoclass:: XEP_0444
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0444.stanza
:members:
:undoc-members:

View File

@ -2,6 +2,7 @@ IQ Stanza
========= =========
.. module:: slixmpp.stanza .. module:: slixmpp.stanza
:noindex:
.. autoclass:: Iq .. autoclass:: Iq
:members: :members:

View File

@ -2,6 +2,7 @@ Message Stanza
============== ==============
.. module:: slixmpp.stanza .. module:: slixmpp.stanza
:noindex:
.. autoclass:: Message .. autoclass:: Message
:members: :members:

View File

@ -1,4 +1,5 @@
.. module:: slixmpp.xmlstream.tostring .. module:: slixmpp.xmlstream.tostring
:noindex:
.. _tostring: .. _tostring:

View File

@ -30,7 +30,11 @@ release = ".".join(version.split(".")[0:2])
# Add any Sphinx extension module names here, as strings. They can be extensions # Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.intersphinx'] extensions = [
'sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.intersphinx',
'sphinx_autodoc_typehints',
]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']

View File

@ -38,24 +38,24 @@ Event Index
subscription decisions. subscription decisions.
chatstate_active chatstate_active
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0085.xep_0085`
chatstate_composing chatstate_composing
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0085.xep_0085`
chatstate_gone chatstate_gone
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0085.xep_0085`
chatstate_inactive chatstate_inactive
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0085.xep_0085`
chatstate_paused chatstate_paused
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0085.xep_0085`
disco_info disco_info
- **Data:** :py:class:`~slixmpp.plugins.xep_0030.stanza.DiscoInfo` - **Data:** :py:class:`~slixmpp.plugins.xep_0030.stanza.DiscoInfo`
@ -112,8 +112,8 @@ Event Index
Signal that an unavailable presence stanza has been received from a JID. Signal that an unavailable presence stanza has been received from a JID.
groupchat_invite groupchat_invite
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0045.XEP_0045`
groupchat_direct_invite groupchat_direct_invite
- **Data:** :py:class:`~slixmpp.Message` - **Data:** :py:class:`~slixmpp.Message`
@ -172,20 +172,20 @@ Event Index
Triggered whenever a data form is received inside a message. Triggered whenever a data form is received inside a message.
muc::[room]::got_offline muc::[room]::got_offline
- **Data:** - **Data:** :py:class:`~slixmpp.Presence`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0045.XEP_0045`
muc::[room]::got_online muc::[room]::got_online
- **Data:** - **Data:** :py:class:`~slixmpp.Presence`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0045.XEP_0045`
muc::[room]::message muc::[room]::message
- **Data:** - **Data:** :py:class:`~slixmpp.Message`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0045.XEP_0045`
muc::[room]::presence muc::[room]::presence
- **Data:** - **Data:** :py:class:`~slixmpp.Presence`
- **Source:** - **Source:** :py:class:`~slixmpp.plugins.xep_0045.XEP_0045`
presence_available presence_available
- **Data:** :py:class:`~slixmpp.Presence` - **Data:** :py:class:`~slixmpp.Presence`
@ -280,3 +280,127 @@ Event Index
stream_error stream_error
- **Data:** :py:class:`~slixmpp.stanza.StreamError` - **Data:** :py:class:`~slixmpp.stanza.StreamError`
- **Source:** :py:class:`~slixmpp.BaseXMPP` - **Source:** :py:class:`~slixmpp.BaseXMPP`
reactions
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0444.XEP_0444`
carbon_received
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0280.XEP_0280`
carbon_sent
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0280.XEP_0280`
marker
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0333.XEP_0333`
marker_received
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0333.XEP_0333`
marker_displayed
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0333.XEP_0333`
marker_acknowledged
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0333.XEP_0333`
attention
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0224.XEP_0224`
message_correction
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0308.XEP_0308`
receipt_received
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0184.XEP_0184`
jingle_message_propose
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0353.XEP_0353`
jingle_message_retract
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0353.XEP_0353`
jingle_message_accept
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0353.XEP_0353`
jingle_message_proceed
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0353.XEP_0353`
jingle_message_reject
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0353.XEP_0353`
room_activity
- **Data:** :py:class:`~slixmpp.Presence`
- **Source:** :py:class:`~slixmpp.plugins.xep_0437.XEP_0437`
room_activity_bare
- **Data:** :py:class:`~slixmpp.Presence`
- **Source:** :py:class:`~slixmpp.plugins.xep_0437.XEP_0437`
sm_enabled
- **Data:** :py:class:`~slixmpp.plugins.xep_0198.stanza.Enabled`
- **Source:** :py:class:`~slixmpp.plugins.xep_0198.XEP_0198`
sm_disabled
- **Data:**
- **Source:** :py:class:`~slixmpp.plugins.xep_0198.XEP_0198`
ibb_stream_start
- **Data:** :py:class:`~slixmpp.plugins.xep_0047.stream.IBBBytestream`
- **Source:** :py:class:`~slixmpp.plugins.xep_0047.XEP_0047`
ibb_stream_end
- **Data:** :py:class:`~slixmpp.plugins.xep_0047.stream.IBBBytestream`
- **Source:** :py:class:`~slixmpp.plugins.xep_0047.XEP_0047`
ibb_stream_data
- **Data:** :py:class:`~slixmpp.plugins.xep_0047.stream.IBBBytestream`
- **Source:** :py:class:`~slixmpp.plugins.xep_0047.XEP_0047`
stream:[stream id]:[peer jid]
- **Data:** :py:class:`~slixmpp.plugins.xep_0047.stream.IBBBytestream`
- **Source:** :py:class:`~slixmpp.plugins.xep_0047.XEP_0047`
command
- **Data:** :py:class:`~slixmpp.Iq`
- **Source:** :py:class:`~slixmpp.plugins.xep_0050.XEP_0050`
command_[action]
- **Data:** :py:class:`~slixmpp.Iq`
- **Source:** :py:class:`~slixmpp.plugins.xep_0050.XEP_0050`
pubsub_publish
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`
pubsub_retract
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`
pubsub_purge
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`
pubsub_delete
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`
pubsub_config
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`
pubsub_subscription
- **Data:** :py:class:`~slixmpp.Message`
- **Source:** :py:class:`~slixmpp.plugins.xep_0060.XEP_0060`

View File

@ -32,3 +32,11 @@ Glossary
substanza substanza
See :term:`stanza plugin` See :term:`stanza plugin`
interfaces
A set of keys defined on a :term:`stanza plugin`.
stanza
An XML payload sent over the XML stream, which is the root of XMPP.
A stanza is either ``<iq/>``, ``<message/>`` or ``<presence/>``. Other
elements are called nonzas.

View File

@ -167,6 +167,7 @@ API Reference
api/xmlstream/matcher api/xmlstream/matcher
api/xmlstream/xmlstream api/xmlstream/xmlstream
api/xmlstream/tostring api/xmlstream/tostring
api/plugins/index
Core Stanzas Core Stanzas
~~~~~~~~~~~~ ~~~~~~~~~~~~
@ -178,12 +179,6 @@ Core Stanzas
api/stanza/presence api/stanza/presence
api/stanza/iq api/stanza/iq
Plugins
~~~~~~~
.. toctree::
:maxdepth: 2
Additional Info Additional Info
--------------- ---------------
.. toctree:: .. toctree::

View File

@ -2,4 +2,5 @@
License (MIT) License (MIT)
============= =============
.. include:: ../LICENSE
.. literalinclude:: ../LICENSE

1
docs/requirements.txt Normal file
View File

@ -0,0 +1 @@
sphinx-autodoc-typehints

View File

@ -38,8 +38,8 @@ Updated Code
def handleIncomingMessage(self, message): def handleIncomingMessage(self, message):
self.xmpp.send_message(message["from"], message["body"]) self.xmpp.send_message(message["from"], message["body"])
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/EchoBot/EchoBot.py>`_ | `View full source (1) <http://github.com/legastero/xmpp-tdg/blob/master/code/EchoBot/EchoBot.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/EchoBot/EchoBot.py>`_ `View original code (1) <http://github.com/remko/xmpp-tdg/blob/master/code/EchoBot/EchoBot.py>`_
Example 14-1. (Page 215) Example 14-1. (Page 215)
------------------------ ------------------------
@ -88,8 +88,8 @@ Updated Code
for subscriberJID in self.backend.getSubscriberJIDs(message.user) : for subscriberJID in self.backend.getSubscriberJIDs(message.user) :
self.xmpp.send_message(subscriberJID, body, mhtml=htmlBody) self.xmpp.send_message(subscriberJID, body, mhtml=htmlBody)
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/Bot.py>`_ | `View full source (2) <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/Bot.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Bot.py>`_ `View original code (2) <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Bot.py>`_
Example 14-3. (Page 217) Example 14-3. (Page 217)
@ -131,8 +131,8 @@ Updated Code
if self.backend.getShouldMonitorPresenceFromUser(user): if self.backend.getShouldMonitorPresenceFromUser(user):
self.handleIncomingXMPPEvent(event) self.handleIncomingXMPPEvent(event)
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/ConfigurableBot.py>`_ | `View full source (3) <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/ConfigurableBot.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/ConfigurableBot.py>`_ `View original code (3) <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/ConfigurableBot.py>`_
Example 14-4. (Page 220) Example 14-4. (Page 220)
@ -176,8 +176,8 @@ Updated Code
for subscriberJID in self.backend.getSubscriberJIDs(message.user) : for subscriberJID in self.backend.getSubscriberJIDs(message.user) :
self.xmpp.send_message(subscriberJID, body, mfrom=self.xmpp.jid) self.xmpp.send_message(subscriberJID, body, mfrom=self.xmpp.jid)
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/SimpleComponent.py>`_ | `View full source (4) <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/SimpleComponent.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/SimpleComponent.py>`_ `View original code (4) <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/SimpleComponent.py>`_
Example 14-6. (Page 223) Example 14-6. (Page 223)
@ -195,8 +195,8 @@ implementation should work correctly.
To see how to implement in-band registration as a Slixmpp plugin, To see how to implement in-band registration as a Slixmpp plugin,
see the tutorial :ref:`tutorial-create-plugin`. see the tutorial :ref:`tutorial-create-plugin`.
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/RegistrableComponent.py>`_ | `View full source (5) <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/RegistrableComponent.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/RegistrableComponent.py>`_ `View original code (5) <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/RegistrableComponent.py>`_
Example 14-7. (Page 225) Example 14-7. (Page 225)
------------------------ ------------------------
@ -245,5 +245,5 @@ Updated Code
if contactJID == self.componentDomain : if contactJID == self.componentDomain :
self.sendAllContactSubscriptionRequestsToUser(userJID) self.sendAllContactSubscriptionRequestsToUser(userJID)
`View full source <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ | `View full source (6) <http://github.com/legastero/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ |
`View original code <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_ `View original code (6) <http://github.com/remko/xmpp-tdg/blob/master/code/CheshiR/Component.py>`_

View File

@ -9,6 +9,9 @@
import asyncio import asyncio
import logging import logging
from typing import Optional, Callable
from slixmpp import Iq from slixmpp import Iq
from slixmpp import future_wrapper from slixmpp import future_wrapper
from slixmpp.plugins import BasePlugin from slixmpp.plugins import BasePlugin
@ -41,6 +44,9 @@ class XEP_0030(BasePlugin):
storage mechanism desired, such as SQLite or Redis. storage mechanism desired, such as SQLite or Redis.
Node handler hierarchy: Node handler hierarchy:
::
JID | Node | Level JID | Node | Level
--------------------- ---------------------
None | None | Global None | None | Global
@ -49,41 +55,29 @@ class XEP_0030(BasePlugin):
Given | Given | A single node Given | Given | A single node
Stream Handlers: Stream Handlers:
::
Disco Info -- Any Iq stanze that includes a query with the Disco Info -- Any Iq stanze that includes a query with the
namespace http://jabber.org/protocol/disco#info. namespace http://jabber.org/protocol/disco#info.
Disco Items -- Any Iq stanze that includes a query with the Disco Items -- Any Iq stanze that includes a query with the
namespace http://jabber.org/protocol/disco#items. namespace http://jabber.org/protocol/disco#items.
Events: Events:
::
disco_info -- Received a disco#info Iq query result. disco_info -- Received a disco#info Iq query result.
disco_items -- Received a disco#items Iq query result. disco_items -- Received a disco#items Iq query result.
disco_info_query -- Received a disco#info Iq query request. disco_info_query -- Received a disco#info Iq query request.
disco_items_query -- Received a disco#items Iq query request. disco_items_query -- Received a disco#items Iq query request.
Attributes: Attributes:
stanza -- A reference to the module containing the
stanza classes provided by this plugin.
static -- Object containing the default set of
static node handlers.
default_handlers -- A dictionary mapping operations to the default
global handler (by default, the static handlers).
xmpp -- The main Slixmpp object.
Methods: :var static: Object containing the default set of
set_node_handler -- Assign a handler to a JID/node combination. static node handlers.
del_node_handler -- Remove a handler from a JID/node combination. :var default_handlers: A dictionary mapping operations to the default
get_info -- Retrieve disco#info data, locally or remote. global handler (by default, the static handlers).
get_items -- Retrieve disco#items data, locally or remote.
set_identities --
set_features --
set_items --
del_items --
del_identity --
del_feature --
del_item --
add_identity --
add_feature --
add_item --
""" """
name = 'xep_0030' name = 'xep_0030'
@ -136,7 +130,9 @@ class XEP_0030(BasePlugin):
self.api.register(default_handler, op) self.api.register(default_handler, op)
self.api.register_default(default_handler, op) self.api.register_default(default_handler, op)
def set_node_handler(self, htype, jid=None, node=None, handler=None): def set_node_handler(self, htype: str, jid: Optional[JID] = None,
node: Optional[str] = None,
handler: Optional[Callable] = None):
""" """
Add a node handler for the given hierarchy level and Add a node handler for the given hierarchy level and
handler type. handler type.
@ -148,6 +144,9 @@ class XEP_0030(BasePlugin):
global behavior. global behavior.
Node handler hierarchy: Node handler hierarchy:
::
JID | Node | Level JID | Node | Level
--------------------- ---------------------
None | None | Global None | None | Global
@ -156,6 +155,9 @@ class XEP_0030(BasePlugin):
Given | Given | A single node Given | Given | A single node
Handler types: Handler types:
::
get_info get_info
get_items get_items
set_identities set_identities
@ -171,14 +173,13 @@ class XEP_0030(BasePlugin):
add_feature add_feature
add_item add_item
Arguments: :param htype: The operation provided by the handler.
htype -- The operation provided by the handler. :param jid: The JID the handler applies to. May be narrowed
jid -- The JID the handler applies to. May be narrowed
further if a node is given. further if a node is given.
node -- The particular node the handler is for. If no JID :param node: The particular node the handler is for. If no JID
is given, then the self.xmpp.boundjid.full is is given, then the self.xmpp.boundjid.full is
assumed. assumed.
handler -- The handler function to use. :param handler: The handler function to use.
""" """
self.api.register(handler, htype, jid, node) self.api.register(handler, htype, jid, node)
@ -191,6 +192,9 @@ class XEP_0030(BasePlugin):
other handlers exist to process existing nodes. other handlers exist to process existing nodes.
Node handler hierarchy: Node handler hierarchy:
::
JID | Node | Level JID | Node | Level
--------------------- ---------------------
None | None | Global None | None | Global
@ -198,10 +202,9 @@ class XEP_0030(BasePlugin):
None | Given | Node on self.xmpp.boundjid None | Given | Node on self.xmpp.boundjid
Given | Given | A single node Given | Given | A single node
Arguments: :param htype: The type of handler to remove.
htype -- The type of handler to remove. :param jid: The JID from which to remove the handler.
jid -- The JID from which to remove the handler. :param node: The node from which to remove the handler.
node -- The node from which to remove the handler.
""" """
self.api.unregister(htype, jid, node) self.api.unregister(htype, jid, node)
@ -215,10 +218,9 @@ class XEP_0030(BasePlugin):
The default is to use the built-in static handlers, but that The default is to use the built-in static handlers, but that
may be changed by modifying self.default_handlers. may be changed by modifying self.default_handlers.
Arguments: :param jid: The JID owning the node to modify.
jid -- The JID owning the node to modify. :param node: The node to change to using static handlers.
node -- The node to change to using static handlers. :param handlers: Optional list of handlers to change to the
handlers -- Optional list of handlers to change to the
default version. If provided, only these default version. If provided, only these
handlers will be changed. Otherwise, all handlers will be changed. Otherwise, all
handlers will use the default version. handlers will use the default version.
@ -234,27 +236,25 @@ class XEP_0030(BasePlugin):
Check if a JID supports a given feature. Check if a JID supports a given feature.
Return values: Return values:
True -- The feature is supported :param True: The feature is supported
False -- The feature is not listed as supported :param False: The feature is not listed as supported
None -- Nothing could be found due to a timeout :param None: Nothing could be found due to a timeout
Arguments: :param jid: Request info from this JID.
jid -- Request info from this JID. :param node: The particular node to query.
node -- The particular node to query. :param feature: The name of the feature to check.
feature -- The name of the feature to check. :param local: If true, then the query is for a JID/node
local -- If true, then the query is for a JID/node
combination handled by this Slixmpp instance and combination handled by this Slixmpp instance and
no stanzas need to be sent. no stanzas need to be sent.
Otherwise, a disco stanza must be sent to the Otherwise, a disco stanza must be sent to the
remove JID to retrieve the info. remove JID to retrieve the info.
cached -- If true, then look for the disco info data from :param cached: If true, then look for the disco info data from
the local cache system. If no results are found, the local cache system. If no results are found,
send the query as usual. The self.use_cache send the query as usual. The self.use_cache
setting must be set to true for this option to setting must be set to true for this option to
be useful. If set to false, then the cache will be useful. If set to false, then the cache will
be skipped, even if a result has already been be skipped, even if a result has already been
cached. Defaults to false. cached. Defaults to false.
ifrom -- Specifiy the sender's JID.
""" """
data = {'feature': feature, data = {'feature': feature,
'local': local, 'local': local,
@ -267,29 +267,27 @@ class XEP_0030(BasePlugin):
Check if a JID provides a given identity. Check if a JID provides a given identity.
Return values: Return values:
True -- The identity is provided :param True: The identity is provided
False -- The identity is not listed :param False: The identity is not listed
None -- Nothing could be found due to a timeout :param None: Nothing could be found due to a timeout
Arguments: :param jid: Request info from this JID.
jid -- Request info from this JID. :param node: The particular node to query.
node -- The particular node to query. :param category: The category of the identity to check.
category -- The category of the identity to check. :param itype: The type of the identity to check.
itype -- The type of the identity to check. :param lang: The language of the identity to check.
lang -- The language of the identity to check. :param local: If true, then the query is for a JID/node
local -- If true, then the query is for a JID/node
combination handled by this Slixmpp instance and combination handled by this Slixmpp instance and
no stanzas need to be sent. no stanzas need to be sent.
Otherwise, a disco stanza must be sent to the Otherwise, a disco stanza must be sent to the
remove JID to retrieve the info. remove JID to retrieve the info.
cached -- If true, then look for the disco info data from :param cached: If true, then look for the disco info data from
the local cache system. If no results are found, the local cache system. If no results are found,
send the query as usual. The self.use_cache send the query as usual. The self.use_cache
setting must be set to true for this option to setting must be set to true for this option to
be useful. If set to false, then the cache will be useful. If set to false, then the cache will
be skipped, even if a result has already been be skipped, even if a result has already been
cached. Defaults to false. cached. Defaults to false.
ifrom -- Specifiy the sender's JID.
""" """
data = {'category': category, data = {'category': category,
'itype': itype, 'itype': itype,
@ -343,29 +341,20 @@ class XEP_0030(BasePlugin):
If requesting items from a local JID/node, then only a DiscoInfo If requesting items from a local JID/node, then only a DiscoInfo
stanza will be returned. Otherwise, an Iq stanza will be returned. stanza will be returned. Otherwise, an Iq stanza will be returned.
Arguments: :param jid: Request info from this JID.
jid -- Request info from this JID. :param node: The particular node to query.
node -- The particular node to query. :param local: If true, then the query is for a JID/node
local -- If true, then the query is for a JID/node
combination handled by this Slixmpp instance and combination handled by this Slixmpp instance and
no stanzas need to be sent. no stanzas need to be sent.
Otherwise, a disco stanza must be sent to the Otherwise, a disco stanza must be sent to the
remote JID to retrieve the info. remote JID to retrieve the info.
cached -- If true, then look for the disco info data from :param cached: If true, then look for the disco info data from
the local cache system. If no results are found, the local cache system. If no results are found,
send the query as usual. The self.use_cache send the query as usual. The self.use_cache
setting must be set to true for this option to setting must be set to true for this option to
be useful. If set to false, then the cache will be useful. If set to false, then the cache will
be skipped, even if a result has already been be skipped, even if a result has already been
cached. Defaults to false. cached. Defaults to false.
ifrom -- Specifiy the sender's JID.
timeout -- The time in seconds to wait for reply, before
calling timeout_callback
callback -- Optional callback to execute when a reply is
received instead of blocking and waiting for
the reply.
timeout_callback -- Optional callback to execute when no result
has been received in timeout seconds.
""" """
if local is None: if local is None:
if jid is not None and not isinstance(jid, JID): if jid is not None and not isinstance(jid, JID):
@ -430,25 +419,16 @@ class XEP_0030(BasePlugin):
If requesting items from a local JID/node, then only a DiscoItems If requesting items from a local JID/node, then only a DiscoItems
stanza will be returned. Otherwise, an Iq stanza will be returned. stanza will be returned. Otherwise, an Iq stanza will be returned.
Arguments: :param jid: Request info from this JID.
jid -- Request info from this JID. :param node: The particular node to query.
node -- The particular node to query. :param local: If true, then the query is for a JID/node
local -- If true, then the query is for a JID/node
combination handled by this Slixmpp instance and combination handled by this Slixmpp instance and
no stanzas need to be sent. no stanzas need to be sent.
Otherwise, a disco stanza must be sent to the Otherwise, a disco stanza must be sent to the
remove JID to retrieve the items. remove JID to retrieve the items.
ifrom -- Specifiy the sender's JID. :param iterator: If True, return a result set iterator using
timeout -- The time in seconds to block while waiting for
a reply. If None, then wait indefinitely.
callback -- Optional callback to execute when a reply is
received instead of blocking and waiting for
the reply.
iterator -- If True, return a result set iterator using
the XEP-0059 plugin, if the plugin is loaded. the XEP-0059 plugin, if the plugin is loaded.
Otherwise the parameter is ignored. Otherwise the parameter is ignored.
timeout_callback -- Optional callback to execute when no result
has been received in timeout seconds.
""" """
if local or local is None and jid is None: if local or local is None and jid is None:
items = self.api['get_items'](jid, node, items = self.api['get_items'](jid, node,
@ -477,10 +457,9 @@ class XEP_0030(BasePlugin):
The given items must be in a list or set where each item is a The given items must be in a list or set where each item is a
tuple of the form: (jid, node, name). tuple of the form: (jid, node, name).
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: Optional node to modify.
node -- Optional node to modify. :param items: A series of items in tuple format.
items -- A series of items in tuple format.
""" """
self.api['set_items'](jid, node, None, kwargs) self.api['set_items'](jid, node, None, kwargs)
@ -489,8 +468,8 @@ class XEP_0030(BasePlugin):
Remove all items from the given JID/node combination. Remove all items from the given JID/node combination.
Arguments: Arguments:
jid -- The JID to modify. :param jid: The JID to modify.
node -- Optional node to modify. :param node: Optional node to modify.
""" """
self.api['del_items'](jid, node, None, kwargs) self.api['del_items'](jid, node, None, kwargs)
@ -501,12 +480,11 @@ class XEP_0030(BasePlugin):
Each item is required to have a JID, but may also specify Each item is required to have a JID, but may also specify
a node value to reference non-addressable entities. a node value to reference non-addressable entities.
Arguments: :param jid: The JID for the item.
jid -- The JID for the item. :param name: Optional name for the item.
name -- Optional name for the item. :param node: The node to modify.
node -- The node to modify. :param subnode: Optional node for the item.
subnode -- Optional node for the item. :param ijid: The JID to modify.
ijid -- The JID to modify.
""" """
if not jid: if not jid:
jid = self.xmpp.boundjid.full jid = self.xmpp.boundjid.full
@ -519,11 +497,10 @@ class XEP_0030(BasePlugin):
""" """
Remove a single item from the given JID/node combination. Remove a single item from the given JID/node combination.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param ijid: The item's JID.
ijid -- The item's JID. :param inode: The item's node.
inode -- The item's node.
""" """
self.api['del_item'](jid, node, None, kwargs) self.api['del_item'](jid, node, None, kwargs)
@ -540,13 +517,12 @@ class XEP_0030(BasePlugin):
category/type/xml:lang pairs are allowed so long as the category/type/xml:lang pairs are allowed so long as the
names are different. A category and type is always required. names are different. A category and type is always required.
Arguments: :param category: The identity's category.
category -- The identity's category. :param itype: The identity's type.
itype -- The identity's type. :param name: Optional name for the identity.
name -- Optional name for the identity. :param lang: Optional two-letter language code.
lang -- Optional two-letter language code. :param node: The node to modify.
node -- The node to modify. :param jid: The JID to modify.
jid -- The JID to modify.
""" """
kwargs = {'category': category, kwargs = {'category': category,
'itype': itype, 'itype': itype,
@ -554,29 +530,28 @@ class XEP_0030(BasePlugin):
'lang': lang} 'lang': lang}
self.api['add_identity'](jid, node, None, kwargs) self.api['add_identity'](jid, node, None, kwargs)
def add_feature(self, feature, node=None, jid=None): def add_feature(self, feature: str, node: Optional[str] = None,
jid: Optional[JID] = None):
""" """
Add a feature to a JID/node combination. Add a feature to a JID/node combination.
Arguments: :param feature: The namespace of the supported feature.
feature -- The namespace of the supported feature. :param node: The node to modify.
node -- The node to modify. :param jid: The JID to modify.
jid -- The JID to modify.
""" """
kwargs = {'feature': feature} kwargs = {'feature': feature}
self.api['add_feature'](jid, node, None, kwargs) self.api['add_feature'](jid, node, None, kwargs)
def del_identity(self, jid=None, node=None, **kwargs): def del_identity(self, jid: Optional[JID] = None, node: Optional[str] = None, **kwargs):
""" """
Remove an identity from the given JID/node combination. Remove an identity from the given JID/node combination.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param category: The identity's category.
category -- The identity's category. :param itype: The identity's type value.
itype -- The identity's type value. :param name: Optional, human readable name for the identity.
name -- Optional, human readable name for the identity. :param lang: Optional, the identity's xml:lang value.
lang -- Optional, the identity's xml:lang value.
""" """
self.api['del_identity'](jid, node, None, kwargs) self.api['del_identity'](jid, node, None, kwargs)
@ -584,10 +559,9 @@ class XEP_0030(BasePlugin):
""" """
Remove a feature from a given JID/node combination. Remove a feature from a given JID/node combination.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param feature: The feature's namespace.
feature -- The feature's namespace.
""" """
self.api['del_feature'](jid, node, None, kwargs) self.api['del_feature'](jid, node, None, kwargs)
@ -598,11 +572,10 @@ class XEP_0030(BasePlugin):
The identities must be in a set where each identity is a tuple The identities must be in a set where each identity is a tuple
of the form: (category, type, lang, name) of the form: (category, type, lang, name)
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param identities: A set of identities in tuple form.
identities -- A set of identities in tuple form. :param lang: Optional, xml:lang value.
lang -- Optional, xml:lang value.
""" """
self.api['set_identities'](jid, node, None, kwargs) self.api['set_identities'](jid, node, None, kwargs)
@ -613,10 +586,9 @@ class XEP_0030(BasePlugin):
If a language is specified, only identities using that If a language is specified, only identities using that
language will be removed. language will be removed.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param lang: Optional. If given, only remove identities
lang -- Optional. If given, only remove identities
using this xml:lang value. using this xml:lang value.
""" """
self.api['del_identities'](jid, node, None, kwargs) self.api['del_identities'](jid, node, None, kwargs)
@ -626,10 +598,9 @@ class XEP_0030(BasePlugin):
Add or replace the set of supported features Add or replace the set of supported features
for a JID/node combination. for a JID/node combination.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify. :param features: The new set of supported features.
features -- The new set of supported features.
""" """
self.api['set_features'](jid, node, None, kwargs) self.api['set_features'](jid, node, None, kwargs)
@ -637,9 +608,8 @@ class XEP_0030(BasePlugin):
""" """
Remove all features from a JID/node combination. Remove all features from a JID/node combination.
Arguments: :param jid: The JID to modify.
jid -- The JID to modify. :param node: The node to modify.
node -- The node to modify.
""" """
self.api['del_features'](jid, node, None, kwargs) self.api['del_features'](jid, node, None, kwargs)
@ -648,11 +618,10 @@ class XEP_0030(BasePlugin):
Execute the most specific node handler for the given Execute the most specific node handler for the given
JID/node combination. JID/node combination.
Arguments: :param htype: The handler type to execute.
htype -- The handler type to execute. :param jid: The JID requested.
jid -- The JID requested. :param node: The node requested.
node -- The node requested. :param data: Optional, custom data to pass to the handler.
data -- Optional, custom data to pass to the handler.
""" """
if not data: if not data:
data = {} data = {}
@ -666,8 +635,7 @@ class XEP_0030(BasePlugin):
and features. If it is an info result, fire the and features. If it is an info result, fire the
disco_info event. disco_info event.
Arguments: :param iq: The incoming disco#items stanza.
iq -- The incoming disco#items stanza.
""" """
if iq['type'] == 'get': if iq['type'] == 'get':
log.debug("Received disco info query from " + \ log.debug("Received disco info query from " + \
@ -709,8 +677,7 @@ class XEP_0030(BasePlugin):
request, find and return the appropriate items. If it request, find and return the appropriate items. If it
is an items result, fire the disco_items event. is an items result, fire the disco_items event.
Arguments: :param iq: The incoming disco#items stanza.
iq -- The incoming disco#items stanza.
""" """
if iq['type'] == 'get': if iq['type'] == 'get':
log.debug("Received disco items query from " + \ log.debug("Received disco items query from " + \
@ -739,8 +706,7 @@ class XEP_0030(BasePlugin):
bot client identity. A the standard disco#info feature will also be bot client identity. A the standard disco#info feature will also be
added if no features are provided. added if no features are provided.
Arguments: :param info: The disco#info quest (not the full Iq stanza) to modify.
info -- The disco#info quest (not the full Iq stanza) to modify.
""" """
result = info result = info
if isinstance(info, Iq): if isinstance(info, Iq):
@ -766,11 +732,10 @@ class XEP_0030(BasePlugin):
Ensure that results are wrapped in an Iq stanza Ensure that results are wrapped in an Iq stanza
if self.wrap_results has been set to True. if self.wrap_results has been set to True.
Arguments: :param ito: The JID to use as the 'to' value
ito -- The JID to use as the 'to' value :param ifrom: The JID to use as the 'from' value
ifrom -- The JID to use as the 'from' value :param payload: The disco data to wrap
payload -- The disco data to wrap :param force: Force wrapping, regardless of self.wrap_results
force -- Force wrapping, regardless of self.wrap_results
""" """
if (force or self.wrap_results) and not isinstance(payload, Iq): if (force or self.wrap_results) and not isinstance(payload, Iq):
iq = self.xmpp.Iq() iq = self.xmpp.Iq()

Some files were not shown because too many files have changed in this diff Show More