Compare commits

..

942 Commits

Author SHA1 Message Date
mathieui
a30f76892b
XEP-0482: add initial support 2025-02-09 18:52:28 +01:00
mathieui
3de8ee97b5
XEP-0050: make prev action possible when there is no next action (fixes #3516)
Obviously the session has to allow for it, which must be modified in a
handler.
2025-02-09 16:14:08 +01:00
mathieui
0de9df92c4
xmlstream: do not use the category param to catch_warnings
Added in debian 3.11.
2025-02-09 15:52:43 +01:00
mathieui
04d5c43853
xmlstream/client/componentxmpp: Make mypy happy again
borked in the previous commit regarding connect().
2025-02-09 15:35:40 +01:00
mathieui
0707786057
xmlstream: "cleanl" create a new event loop if none is set
Relates to #3542
2025-02-09 13:39:57 +01:00
mathieui
1c762c6b25
doc: add more info for XEP-0030 (fix #3433) 2025-02-09 12:31:15 +01:00
mathieui
f94a4f2dbd
xmlstream: return a future on connect()
which can make sense for users of the lib to wait on.
2025-02-09 12:12:07 +01:00
mathieui
75ea0bf039 XEP-0308: add tests 2025-02-08 19:51:02 +00:00
mathieui
4cf1286332 XEP-0308: add utility functions
to build and correct messages without needing to go into the xml schema
details.
2025-02-08 19:51:02 +00:00
mathieui
8a127f61d0
XEP-0223: fix node standalone configuration (fixes #3555)
also add a stream test for that
2025-02-08 12:52:33 +01:00
mathieui
1f14fb54c2
XEP-0060: fix get_item_ids (fix #3548)
missing return statement, the function would work with callbacks, but
that is a bit meh.
2025-02-08 12:30:02 +01:00
mathieui
651e0ea593
docs: improve using_asyncio page (hopefully fixes #3562)
make event loop usage a bit clearer, and fix the examples.
2025-02-08 12:26:17 +01:00
mathieui
4ac41a5250
Add a way to get identities as dict (fixes #3566) 2025-02-08 12:11:07 +01:00
mathieui
e03b7661c1 XEP-0446: complete support and tests 2025-02-07 20:33:22 +00:00
DinoThor
e955cd308a Fix bad reference with client & method call 2025-02-07 13:52:15 +00:00
mathieui
2db5e0199c
docs: add lots of missing xeps, fix some issues
sphinx was unhappy with some formatting artifacts
2025-02-03 00:16:51 +01:00
mathieui
bf2e006f88
docs: fix bad targets in projects page
and actually the slixmpp chat room is not a chatroom for random bots
written with slixmpp
2025-02-02 23:43:00 +01:00
mathieui
8c8bb5da8b
doap: add missing xep 264 and 469 support 2025-01-31 12:23:11 +01:00
mathieui
bd638f1b39
doap: add hats support since 1.8.6 2025-01-31 11:12:37 +01:00
mathieui
0ff9e3661d XMLStream: allow custom sslcontext provisioning (fixes #3582)
For some applications that have strict requirements on blocking calls,
it might be beneficial to create the SSLContext in advance and
provide it to the client/componentxmpp instance that will be going
through kwargs until XMLStream.

The context will be reconfigured later on based on user parameters, but
it is highly recommended to set it up in a secure way.
2025-01-30 11:08:41 +00:00
mathieui
5ec378cccd
xep-0055: fix stanza test 2025-01-30 09:35:41 +01:00
nicoco
a9fc955eda fix: add default error type for "payment-required" condition 2025-01-27 16:36:07 +01:00
nicoco
05860f71ac ci: follow linter recommendations 2025-01-27 16:36:07 +01:00
mathieui
1482bcc395 basexmpp: make_iq no longer defaults to id="0"
having a hardcoded default ID in make_iq is a bad idea, particularly
since it will overwrite the (good) id produced byt Iq() when a stream is
available.

This is arguably a breaking change, but I certainly hope it is not
breaking anything in the real world.
2025-01-26 18:03:15 +01:00
nicoco
2e736bc715 feat: support XEP-0492 (Chat Notification Settings) 2025-01-26 16:24:31 +00:00
nicoco
8d984cd8a1 XEP-0004: fix: prevent multiple <values> for 'text-single' field
According to XEP-0004:
- if there is no "type" attribute on a <field />, we should assume it is
  "text-single";
- "text-single" MUST NOT contain morethan one <value />.

Before this patch, not specifying a field type and passing a multi-line
string would result in an illegal stanza.

While it would be cleaner to log a warning or even raise an exception if
set_value() is called with an incompatible type, this breaks a lot of
tests and backward-compatibility, so we introduce some heuristic in
FormField.set_value() to infer the field type based on the provided
value instead.

I also changed FormField.get_value() so that it returns a list by
default for 'text-multi' fields. This is a breaking change, but I have
not found the justification for the previous behaviour.
2025-01-24 14:33:16 +00:00
nicoco
100014651c cq: remove unused files 2025-01-24 15:30:24 +01:00
nicoco
f9a9a0dcb7 fix: add default error type for "policy-violation" condition 2025-01-24 09:53:42 +01:00
nicoco
c585ec5983 fix: add missing "policy-violation" to error conditions 2025-01-22 21:32:57 +01:00
nicoco
27bbb1ef95 xep_0425: add missing 'id' attribute to 'Moderate' stanza plugin 2024-12-30 14:46:25 +01:00
mathieui
5dfc622539
itests: fix XEP-0424 test
broken due to the new XEP version
2024-12-29 01:08:05 +01:00
mathieui
2ab9b5a05c
ci: add setuptools, remove 3.7/3.8 and add 3.13 2024-12-29 00:50:53 +01:00
mathieui
09d9320b91
Release 1.8.6 2024-12-26 22:39:49 +01:00
mathieui
fbf298c36d
XEP-0030: fix tests
Use None as the "no value" value, rather than ''.
2024-12-26 09:42:33 +01:00
mathieui
7153d79006 itests/examples: integrate imghdr code directly (fix #3570)
Python 3.13 removes it, and I would rather not add another dependency
only for tests or examples…
2024-12-14 16:08:49 +01:00
mathieui
1d3e03a923 XEP-0030: make read operations more resilient
Reading valid XML which does not respect the XEP schema should not crash
the parser badly.
2024-12-14 16:00:24 +01:00
mathieui
3d0b09e2e2 xmlstream: prevent stanza parsing from crashing the whole thing
If an error happened while parsing a stanza, it would bring the whole
program down and disconnect instead of logging an error. And the DEBUG
log happened afterwards (so, never).
2024-12-14 15:52:51 +01:00
nicoco
23544731ef Support XEP-0490 (Message Display Synchronization) 2024-12-11 21:29:37 +00:00
nicoco
a18a6c4eb8 xep-0425: update to version 0.3.0 2024-12-11 21:24:12 +00:00
nicoco
dd903b1792 xep-0424: update to version 0.4.0 2024-12-11 21:24:12 +00:00
mathieui
cf3b30120e repo: remove github pull request template
codeberg annoyingly picks it up, which creates confusion for
contributors
2024-12-11 22:18:38 +01:00
jinyu
d86dccaf85 enhancement: Update type hints 2024-12-11 21:17:23 +00:00
jinyu
075812adf3 fix: Update msg_kwargs documentation to clarify required parameters for make_message 2024-12-11 21:16:37 +00:00
jinyu
8955ece461 Fix missing parameters 2024-12-11 21:16:37 +00:00
jinyu
5051c60262 enhancement: Refactor reply handling in XEP-0461; add fallback support and improve message construction 2024-12-11 21:16:37 +00:00
mathieui
c495eb73fc xmlstream: add stanza_not_sent event (fixes #3559) 2024-12-11 22:01:34 +01:00
jinyu
12c516d365 fix: Add future annotations import to base.py for improved type hinting 2024-11-19 18:44:33 +01:00
jinyu
d9b0b6dfe6 fix: Correct JID comparison in MUC plugin for bare JID matching 2024-11-19 18:44:27 +01:00
jinyu
7979e3b603 Resolve circular import 2024-11-19 18:44:20 +01:00
jinyu
f24a7679e5 enhancement: Improve JID handling and logging in MUC plugin; update status code return type 2024-11-19 18:44:11 +01:00
jinyu
df0ecfc142 Update the type of BasePlugin.xmpp to BaseXMPP. Increase the timeout for join_muc_wait. 2024-11-19 18:43:58 +01:00
jinyu
e79b98b266 add default timeout value 2024-11-19 18:43:49 +01:00
jinyu
5ed5e60b20 Fix: AttributeError in get_nick and jid_in_room due to incorrect JID type 2024-11-19 18:43:41 +01:00
mathieui
e5fe53ef45 tests: remove distutils use 2024-10-08 10:31:15 +02:00
mathieui
93608bd2f4 setup.py: Add python versions 2024-10-08 10:29:28 +02:00
nicoco
3b2386ee2f stanzabase: Pass problematic object to TypeError raised by ElementBase.append()
This should help debugging those type of errors.
2024-09-27 13:00:28 +02:00
nicoco
b94c6716f7 xep-0231: fix TypeError when BoB cannot be found
Although it is not documented whether the get_bob API
call can return None, the default implementation can,
which raises a TypeError when the requested BoB is not
available. This commit prevents such TypeError by
raising a XMPPError instead.

References: https://todo.sr.ht/~nicoco/slidcord/23
2024-09-27 10:28:24 +02:00
jinyu
db8ce9187c feat: Add is_correction method to XEP-0308 Last Message Correction plugin 2024-09-08 00:39:10 +08:00
mathieui
7f926a944a setup.py: Do not install aiodns on windows (fix #3556)
aiodns is broken on the default windows event loop and the workaround
has significant downsides. This has downsides too as it prevents
resolution of SRV records by default.
2024-08-25 13:18:31 +02:00
sch
e96f8e1ed0 Correct an MUC-related error message which indicates the requirement of a JID 2024-06-20 19:00:20 +00:00
sch
c8c0bb9134 Add BukuBot
Add BukuBot for bookmarks
2024-06-04 10:22:24 +00:00
schimoni
825c51b87d Add descriptive introduction and new links to project sendxmpp-py
Add descriptive introduction;
Change URL of repository sendxmpp-py;
Add groupchat to project sendxmpp-py.
2024-05-22 12:39:14 +00:00
mathieui
7c79f28587 XEP-0199: handle component case for keepalive ping 2024-03-22 20:48:36 +01:00
mathieui
dcaf812a28 ci: build cython module for itests 2024-02-09 23:28:15 +01:00
mathieui
ae4de043d2 itests: fix default server call 2024-02-09 23:11:29 +01:00
mathieui
998bbb80ad itests: hardcode default MUC server 2024-02-09 23:07:32 +01:00
mathieui
5a5b36ab39 xmlstream: make mypy even happier 2024-02-09 22:58:20 +01:00
mathieui
f151f0a7ab xmlstream/componentxmpp: fix some typing issues
Make mypy happier
2024-02-09 22:55:20 +01:00
mathieui
2424a3b36f slixtest: cleanup loop only if needed
if not, get_event_loop will throw, we can ignore this
2024-02-09 22:49:47 +01:00
mathieui
1c4bbbce8e ci: fix mypy step 2024-02-09 21:41:03 +01:00
mathieui
66d552d057 xep_0317: Fix compatibility with python < 3.9 2024-02-09 21:32:19 +01:00
nicoco
b8205a9ae4 Update plugin: XEP-0317 (hats)
Merge changes from nicoco's MR that I missed, improving tests and
interface.
2024-02-09 21:06:14 +01:00
nicoco
85b7210115 XEP-0264: Jingle Content Thumbnails (new plugin)
Cheogram actually uses it with SIMS to embed
a blurhash preview in the stanza.
2024-02-09 12:10:12 +01:00
nicoco
909c865524 XEP-0313: Do not try to parse date for fields without value.
Without this we end up passing "None"
instead of a str to the date parser,
which raises a TypeError.
It happens if you try to provide a form
to be filled, when slixmpp acts as a MAM
*server*.
2024-02-09 11:51:34 +01:00
nicoco
586d2f5107 XEP-0313: Add support for flipped page 2024-02-08 20:45:48 +01:00
nicoco
9f7260747f Add XEP_0461 to PluginDict 2024-02-08 20:34:16 +01:00
mathieui
c41209510a
xep_049: implement bookmarks pinning stanzas 2024-02-04 11:59:36 +01:00
mathieui
9266486f46
xep_0317: add initial stanza support for hats 2024-02-04 11:32:24 +01:00
mathieui
5226858e0c
Release 1.8.5 2024-02-02 01:59:31 +01:00
mathieui
7128ea249b
Fix running process() with a timeout (closes #3505) 2024-02-02 01:00:25 +01:00
Maxime “pep” Buquet
992d80dd09
SCRAM: Restrict tls-unique to TLSv1.2
And prepare the code to work when CPython implements tls-exporter for
TLSv1.3.
This adds tls_version and binding_proposed attributes to the security
properties so we can detect if we were offerred channel binding SASL
mechanisms, and which TLS version we are on.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2024-02-02 00:56:40 +01:00
mathieui
c25305e80f
componentxmpp: fix default host for components 2023-12-29 14:13:41 +01:00
mathieui
6765f84133
tests: close event loop at exit
prevents a nice segfault
2023-12-29 13:53:58 +01:00
mathieui
31fe7f7e06
[CI] add woodpecker CI 2023-12-29 13:53:58 +01:00
nicoco
84a7ac020f XEP-0461: rely on XEP-0428 for fallback
Breaks the previous fallback helpers, we now
rely on XEP-0461 instead
2023-12-28 16:38:37 +00:00
nicoco
331c1c1e21 XEP-0428: add fallback body and subject elements
+ tests
+ helpers to strip the fallback content
2023-12-28 16:38:37 +00:00
nicoco
28a60c22e2 ElementBase: add weak ref to parent when using append() 2023-12-28 16:38:37 +00:00
nicoco
af934b5bdf fix slixmpp.xmlstream.__all__ 2023-12-28 16:38:37 +00:00
genghis
897f876504 Correct Slixfeed title and add groupchat link to Stable Diffusion 2023-12-28 16:04:19 +00:00
genghis
2888be17ab Correct groupchat link for WhisperBot 2023-12-28 16:04:19 +00:00
genghis
975e31229c Correct links so they match to their respective text 2023-12-28 16:04:19 +00:00
genghis
6e9e66139d Add Stable Diffusion 2023-12-28 16:04:19 +00:00
genghis
380ac04d52 Update docs/projects.rst 2023-12-28 16:04:19 +00:00
genghis
9e5b530607 Update docs/projects.rst 2023-12-28 16:04:19 +00:00
genghis
71de274fab Update docs/projects.rst 2023-12-28 16:04:19 +00:00
genghis
5a0b02378d Add document Projects
Bots and Services utilizing Slixmpp
2023-12-28 16:04:19 +00:00
sxavier
9fc82e9e6f xep_0221: Add documentation overview and example 2023-12-28 16:01:19 +00:00
nicoco
ca90d3908e xep-0115: perf: avoid simultaneous disco info queries for the same verstring 2023-12-28 15:56:44 +00:00
Daniel Roschka
7de5cbcf33
Fix connect parameters used for follow-up calls
XMLStream.connect() is supposed to persist the parameters
it gets called with to allow follow-up calls to call
XMLStream.connect() without any parameters to result in a connection
with the same properties as the original one. That's for example used by
XMLStream.reconnect() when establishing a new connection.

Unfortunately that was broken for some of the parameters and resulted
different TLS related settings on reconnections. This commit fixes that.
2023-12-27 11:45:04 +01:00
Nicolas Cedilnik
76a11d4899 xep0356: implement IQ privilege
Also included:

- correctly handle privileges from different
  servers
- check that privileges have been granted before
  attempting to send something and raise
  PermissionError if not
- use dataclass and enums to store permissions instead of
  untyped dict
2023-12-19 14:14:16 +00:00
mathieui
dcfa0f20f9 [docs] add readthedocs.yaml 2023-11-13 19:38:48 +01:00
mathieui
7732af8991 Move references from lab.louiz.org to codeberg 2023-07-06 15:26:57 +02:00
nicoco
25c28ff5d1 xep_0461/add_quoted_fallback: add optional nickname argument
+ a little docstring that doesn't hurt
2023-06-05 20:48:38 +02:00
nicoco
e3e0d8f43e xep_0313/fin: add 'stable' and 'complete' attribs 2023-06-05 14:18:07 +02:00
nicoco
13729e47a6 add xeps 0385 and 0447 to plugins.PLUGINS 2023-06-05 14:18:07 +02:00
nicoco
f12860bfad fix misleading error msg
plugins.__all__ became plugins.PLUGINS a few commits ago
2023-06-05 14:18:07 +02:00
mathieui
bcbc7281e7 Release 1.8.4 2023-05-28 12:59:22 +02:00
mathieui
8787aa1064 Merge branch 'fix_error_ns_for_components_for_real' into 'master'
ComponentXMPP: fix fix_error_ns option

See merge request poezio/slixmpp!247
2023-05-11 19:08:22 +00:00
nicoco
f3522eb84b ComponentXMPP: fix fix_error_ns option
self.default_ns is defined in BaseXMPP.__init__(),
so ComponentXMPP._fix_error_ns() has to be called
later
2023-05-11 21:06:11 +02:00
Link Mauve
da9646cdaa Merge branch 'fix-register' into 'master'
Fix registration

See merge request poezio/slixmpp!246
2023-05-01 18:04:20 +00:00
Emmanuel Gil Peyrot
db1fc5fbc5 xmlstream: Fix registration
This iq nonza wasn’t marked as allowed to be sent on an unauthenticated
stream.
2023-05-01 19:50:26 +02:00
mathieui
209554e63f Merge branch 'ci-and-python-3.7' into 'master'
Fix CI issues and python 3.7 compatibility

See merge request poezio/slixmpp!244
2023-04-18 17:43:21 +00:00
mathieui
2d02ef9bcb exceptions: Fix python 3.7 compatibility 2023-04-18 19:41:02 +02:00
mathieui
18c3db4d6e ci: update python images 2023-04-18 19:41:02 +02:00
Nicoco K
6d6fdc6419 Merge branch 'fix-test-0377' into 'master'
Fix test for 0377 and update DOAP

See merge request poezio/slixmpp!243
2023-04-04 10:49:29 +00:00
Emmanuel Gil Peyrot
4936fb06bf XEP-0377: Update the DOAP 2023-04-04 12:45:53 +02:00
Emmanuel Gil Peyrot
5e47286445 XEP-0377: Update tests against the latest version 2023-04-04 12:45:53 +02:00
Link Mauve
8bead23799 Merge branch 'xep402-extensions' into 'master'
xep0402: add password and extension

See merge request poezio/slixmpp!242
2023-04-04 10:05:01 +00:00
nicoco
56c906f207 xep0402: add password and extension 2023-04-04 09:20:50 +02:00
Maxime Buquet
876c82037f Merge branch 'jid-barejid' into 'master'
jid: add 'bare' parameter to JID to discard resource

See merge request poezio/slixmpp!238
2023-04-03 11:18:03 +00:00
Link Mauve
fae4a38e84 Merge branch '377-nsbump' into 'master'
XEP-0377: Update to latest revision (bump ns)

See merge request poezio/slixmpp!239
2023-04-03 11:09:43 +00:00
Maxime “pep” Buquet
2b59d299a1
XEP-0377: Update to latest revision
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-04-03 13:01:45 +02:00
Maxime Buquet
51a4efb0f4 Merge branch 'xep402' into 'master'
Add support for XEP0402 (PEP Native bookmarks)

See merge request poezio/slixmpp!240
2023-04-03 09:23:25 +00:00
Nicolas Cedilnik
8f77bd4ee5 Add support for XEP0402 (PEP Native bookmarks) 2023-04-03 05:47:46 +02:00
Maxime “pep” Buquet
71128349a4
jid: add 'bare' parameter to JID to discard resource
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-03-18 20:28:54 +01:00
Maxime Buquet
bc2cebae6c Merge branch 'disco-tasks' into 'master'
xep_0030: asyncio.wait takes tasks

See merge request poezio/slixmpp!228
2023-03-07 19:19:10 +00:00
mathieui
2080d08d63 Merge branch 'component-errors' into 'master'
Fix error namespace for components

Closes #3476 and #3474

See merge request poezio/slixmpp!237
2023-03-07 19:12:32 +00:00
nicoco
e16f72d32d fix error namespace for ComponentXMPP
in SlixTest, if mode=="component", restore
jabber:client namespace afterwards

Fixes #3476
Fixes #3474
2023-03-07 11:04:35 +01:00
Maxime Buquet
4fa068da54 Merge branch 'xep-0030-component' into 'master'
xep_0030: small fixes for components

See merge request poezio/slixmpp!236
2023-02-25 10:47:29 +00:00
nicoco
21e5cd4435 xep_0030: get_items(): fix ifrom for local calls
kwargs can never have 'ifrom' since it's in the
method signature
2023-02-25 10:29:21 +01:00
nicoco
1a40699bcc xep_0030: do not send IQ without 'from' attr when component 2023-02-25 10:27:56 +01:00
Maxime Buquet
ebb8bd1e71 Merge branch 'better-errors' into 'master'
Improve errors

See merge request poezio/slixmpp!230
2023-02-24 14:41:09 +00:00
nicoco
78b42bdbbe Message.reply(): do not use bare jid if component
Components are likely to be MUC services more than
muc participants, and reply() is used when XMPPError
is raised, where it makes no sense to strip the resource
2023-02-24 15:29:05 +01:00
nicoco
abd3f40e96 XMPPError: add optional by attribute
so it is added to the reply stanzas
2023-02-24 15:29:05 +01:00
nicoco
b6f148e4e6 errors: make error types and conditions Literals
and set recommended defaults for type based on condition
2023-02-24 15:29:05 +01:00
Maxime Buquet
968fb0bac3 Merge branch 'xep0447' into 'master'
XEP-0447: minimal support (outgoing)

See merge request poezio/slixmpp!235
2023-02-24 14:12:45 +00:00
Maxime Buquet
8dcbcbf8a0 Merge branch 'xep0385' into 'master'
XEP-0385: minimal support

See merge request poezio/slixmpp!234
2023-02-24 14:12:38 +00:00
Maxime Buquet
de7b2d33a3 Merge branch 'xep-0461-fixes' into 'master'
XEP-0461: fixes

See merge request poezio/slixmpp!233
2023-02-23 23:42:19 +00:00
Maxime Buquet
fd1af054c5 Merge branch 'xep-0054-fix-no-vcard' into 'master'
xep_0054: raise item-not-found instead of trying to call None.send()

See merge request poezio/slixmpp!232
2023-02-23 23:41:47 +00:00
Maxime Buquet
e34fbfb28f Merge branch 'adhoc-partial-coroutine' into 'master'
xep_0050:allow partial coroutines as handlers

See merge request poezio/slixmpp!231
2023-02-23 23:40:42 +00:00
nicoco
af16832ad0 XEP-0447: minimal support (outgoing) 2023-02-24 00:22:42 +01:00
nicoco
40a857de65 XEP-0461: fix char counting
I think this time I got it right, confirmed
against client implementations (dino and movim)
2023-02-24 00:15:34 +01:00
nicoco
79ffa1668f XEP-0461: fix fallback namespace
the XEP should be updated soon, confirmed by author,
other implementations use this namespace
2023-02-24 00:15:34 +01:00
nicoco
b4b1efe058 XEP-0385: minimal support
- includes bits of other required XEPs
- only implements 'outgoing' SIMS
2023-02-23 23:49:13 +01:00
nicoco
de358464d0 xep_0054: raise item-not-found instead of trying to call None.send() 2023-02-23 23:37:31 +01:00
nicoco
92b4f2a7eb xep_0050:allow partial coroutines as handlers 2023-02-23 23:33:13 +01:00
Maxime Buquet
1f934d375c Merge branch 'fix-tests' into 'master'
Fix tests and stop misusing __all__

See merge request poezio/slixmpp!229
2023-02-23 17:04:13 +00:00
nicoco
700ce6b32e xep0461: fix typo in test 2023-02-23 16:53:22 +01:00
nicoco
5efa9804ba xep0292: test: declare suite 2023-02-23 16:53:22 +01:00
nicoco
9b0be1ca2b stop misusing __all__ for default plugin list
this fixes tests by renaming the list of default plugins
from __all__ (which has a special meaning) to a separate
list called PLUGINS

no need to put BasePlugin in __all__ after all
if we don't use __all__ at all
2023-02-23 16:53:22 +01:00
Maxime “pep” Buquet
5c19f16287
xep_0030: asyncio.wait takes tasks
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-02-15 11:55:57 +01:00
Maxime Buquet
af07864cbb Merge branch 'fix-caps-fetch' into 'master'
XEP-0115: fix a missing await in caps fetching

See merge request poezio/slixmpp!227
2023-01-30 19:46:53 +00:00
mathieui
dc4b1c7367 XEP-0115: fix a missing await in caps fetching 2023-01-30 20:37:16 +01:00
j
4a6064772c
xep_0027: Ensure data is a str before handling it
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-01-26 17:40:47 +01:00
Maxime “pep” Buquet
80a89061f1
xep_0045: Remove debug print. thanks kalkin
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-01-07 15:07:28 +01:00
Maxime “pep” Buquet
8f4d8f76d1
doap: fix 454 note entry
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-01-04 21:24:17 +01:00
Maxime Buquet
656248ede7 Merge branch 'xep-0292' into 'master'
implements XEP-0292 (vCard4 over XMPP)

See merge request poezio/slixmpp!221
2022-11-28 12:05:30 +00:00
Maxime Buquet
980afe791f Merge branch 'add-public-names-in-_all_' into 'master'
Add public names in  all

See merge request poezio/slixmpp!225
2022-11-28 12:04:28 +00:00
nicoco
3725177d0b add OptJidStr to types.__all__ 2022-11-28 13:03:05 +01:00
nicoco
26fb0d1f91 add BasePlugin to plugins.__all__ 2022-11-28 13:03:03 +01:00
Maxime Buquet
5eb17e7633 Merge branch 'xep0461-fallback-helper' into 'master'
XEP-0461 (replies) improvements

See merge request poezio/slixmpp!224
2022-11-28 11:59:00 +00:00
nicoco
fdca7d82c4 XEP-0461: fix character counting
Turns out we need to include the fallback/end code point,
unlike python slicing conventions
2022-11-28 07:15:26 +01:00
nicoco
9b89401b36 XEP-0461: add get fallback body helper 2022-11-22 10:23:52 +01:00
nicoco
7300f1285e XEP-0461: add to plugins.__all__ 2022-11-22 08:49:00 +01:00
nicoco
9b51be1e17 XEP-0461: add quoted fallback helper 2022-11-22 08:49:00 +01:00
nicoco
89b1e1e682 XEP-0461: use integers for fallback start/end 2022-11-22 08:45:04 +01:00
Maxime Buquet
a7501abe56 Merge branch 'xep0030-iqkwargs' into 'master'
xep_0030: allow extra args in get_info_from_domain

See merge request poezio/slixmpp!223
2022-11-15 10:13:49 +00:00
nicoco
6940e4276b xep_0030: allow extra args in get_info_from_domain 2022-11-15 09:23:50 +01:00
Maxime “pep” Buquet
752f4258df
Release 1.8.3
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-11-12 21:39:50 +01:00
Maxime “pep” Buquet
b60b1b985d
CVE-2022-45197: Fix missing certificate hostname validation
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-11-12 21:36:11 +01:00
Maxime Buquet
e93e43df66 Merge branch 'fix-adhoc-crash' into 'master'
fix crash on adhoc command with bad clients

See merge request poezio/slixmpp!222
2022-11-06 12:55:56 +00:00
nicoco
cfd1af88eb fix crash on adhoc command with bad clients
If a command has no "next" handler, slixmpp
crashes if a client acts as if there was a
next step.
This raises an XMPPError instead
2022-11-06 08:12:37 +01:00
nicoco
65636b8cce implements XEP-0292 (vCard4 over XMPP) 2022-11-04 09:36:25 +01:00
Maxime Buquet
7a0fb97083 Merge branch 'restore-stringprep-warning' into 'master'
logger: remove NullHandler for the "slixmpp" handler

See merge request poezio/slixmpp!220
2022-10-03 08:20:19 +00:00
nicoco
189bbcce19 logger: remove NullHandler for the "slixmpp" handler
This does not seem to accomplish anything besides
hiding the "using the slow, pure python stringprep"
warning, unless you import logging and add another
handler before to the "slixmpp" logger *BEFORE*
importing slixmpp.
2022-10-03 10:16:02 +02:00
Maxime Buquet
79607e43f1 Merge branch 'fix-0084' into 'master'
xep_0084: fix typo and getters

See merge request poezio/slixmpp!219
2022-09-23 08:59:05 +00:00
nicoco
e062181f84 xep_0084: fix typo and getters
"with" instead of "width"; wrong syntax for getters
2022-09-22 23:19:16 +02:00
mathieui
97b0c7ffac Merge branch 'xep0055' into 'master'
Add XEP-0055 (Jabber Search)

See merge request poezio/slixmpp!204
2022-09-12 18:18:51 +00:00
nicoco
c2ece57dee Add XEP-0055 (Jabber Search) 2022-09-11 23:22:44 +02:00
mathieui
afdfa1ee57 Merge branch 'xep0363-as-component' into 'master'
XEP-0363: Fix upload service auto discovery for components

See merge request poezio/slixmpp!207
2022-09-09 16:07:46 +00:00
mathieui
cba5dc7ddc Merge branch 'component-ifrom' into 'master'
xep_0030: fix ifrom for disco queries sent by components

See merge request poezio/slixmpp!216
2022-09-09 16:06:38 +00:00
mathieui
b3a6c7a4ea Merge branch 'aiodns-gethostbyname' into 'master'
Use gethostbyname when using aiodns

See merge request poezio/slixmpp!212
2022-09-09 16:04:14 +00:00
mathieui
11e27d1d7d Merge branch 'mypy-workaround' into 'master'
Fix gitlab pipelines

See merge request poezio/slixmpp!217
2022-09-09 16:02:18 +00:00
nicoco
fbdff30dda fix emoji==2.0.0 compatibility 2022-08-29 00:59:14 +02:00
nicoco
62701bc562 xmlstream: ignore task type (mypy)
This is not satisfying, but having gitlab pipelines running would be nice, wouldn't it?
2022-08-29 00:20:36 +02:00
nicoco
b14918808c xep_0030: fix ifrom for disco queries sent by components
xep_0030 automatically sends disco queries with ifrom=None
Prosody's mod_component had a workaround to allow this non-standard behaviour, but it will change in a future release.
2022-08-29 00:03:55 +02:00
Link Mauve
f5cb9fe66b Merge branch 'doap-sasl-anon' into 'master'
DOAP: Add 0175. It's been here forever

See merge request poezio/slixmpp!215
2022-08-23 09:18:02 +00:00
Maxime “pep” Buquet
8bd53f7098
DOAP: Add 0175. It's been here forever
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-08-23 11:12:26 +02:00
Link Mauve
c955cf1c66 Merge branch 'xep-0461' into 'master'
XEP-0461: Message Replies

See merge request poezio/slixmpp!213
2022-08-21 12:24:08 +00:00
Maxime Buquet
6904ae63f5 Merge branch 'optional-setters' into 'master'
JID: Make node and resource setters accept None

See merge request poezio/slixmpp!214
2022-08-21 12:22:17 +00:00
Emmanuel Gil Peyrot
1caada197a JID: Make node and resource setters accept None
This is the proper way to unset these.
2022-08-21 14:18:53 +02:00
nicoco
450aaa7f86 XEP-0461: Message Replies 2022-08-20 13:35:38 +02:00
Daniel Roschka
d43c83800e
Use gethostbyname when using aiodns
Slixmpp behaves differently when resolving host names, whether aiodns
is used or not. With aiodns only DNS is used, while without
`asyncio.loop.getaddrinfo()` is used instead, which utilizes the Name
Service Switch (NSS) to resolve host names by other means (hosts-file,
mDNS, ...) as well.

To unify the behavior, this replaces the use of
`aiodns.DNSResolver().query()` with
`aiodns.DNSResolver().gethostbyname()`. This makes the behavior
resolving host names more consistent between using aiodns or not, as
both now honor the NSS configuration and removes the need for the
previously existing workaround to resolve localhost.
2022-07-31 13:15:25 +02:00
nicoco
14786abd34 Revert "Make it clear that filename does *not* have to be path, and is mandatory"
This reverts commit ed820bf551.
2022-07-16 20:23:48 +02:00
Maxime Buquet
1f47acaec1 Merge branch 'fix-xep_0115-static' into 'master'
XEP-0115: Make get_caps() async

See merge request poezio/slixmpp!203
2022-07-16 19:02:06 +02:00
nicoco
ed820bf551 Make it clear that filename does *not* have to be path, and is mandatory 2022-07-16 17:17:22 +02:00
nicoco
afedfa4b06 Merge branch 'master' of https://lab.louiz.org/poezio/slixmpp 2022-07-16 17:08:21 +02:00
Maxime Buquet
5998069203 Merge branch 'mini_dateutil-no-more' into 'master'
Remove mini_dateutil and replace it with datetime

See merge request poezio/slixmpp!210
2022-07-12 13:39:02 +02:00
Maxime Buquet
356f16f5af Merge branch 'prevent-naive-datetime' into 'master'
XEP-0203: Prevent naïve datetime from being passed

Closes #3471

See merge request poezio/slixmpp!211
2022-07-12 13:38:52 +02:00
Link Mauve
b8f301b26f Merge branch 'affs-outcast-jid' into 'master'
xep_0045: Require JID when setting outcast affiliation

See merge request poezio/slixmpp!188
2022-07-12 13:28:02 +02:00
Link Mauve
ffaeb31219 Merge branch 'nicoco-master-patch-90506' into 'master'
Add xep_0356 to plugins.__all__

See merge request poezio/slixmpp!201
2022-07-12 13:26:54 +02:00
Link Mauve
9560f39de7 Merge branch 'xep0356-v0.4' into 'master'
XEP-0356: namespace version bump

See merge request poezio/slixmpp!206
2022-07-12 13:26:14 +02:00
Link Mauve
f7a38a028a Merge branch 'default-to-CAs' into 'master'
xmlstream: load default CA store by default

See merge request poezio/slixmpp!209
2022-07-12 13:24:32 +02:00
Emmanuel Gil Peyrot
65d70fe417 XEP-0203: Prevent naïve datetime from being passed
The specification says “The format MUST adhere to the dateTime format
specified in XEP-0082 and MUST be expressed in UTC.”

We now respect this requirement, by rejecting naïve datetimes with a
ValueError exception, and converting the passed datetime to UTC.

Fixes #3471.
2022-07-12 13:15:31 +02:00
Emmanuel Gil Peyrot
108a256537 thirdparty: Remove the mini_dateutil module
The builtin datetime module already provides the same features, there is
no need to carry that code any longer.
2022-07-12 12:55:20 +02:00
Emmanuel Gil Peyrot
78a5f79240 XEP-0202: Remove usage of mini_dateutil
Like the previous commit, we now use the builtin datetime module always.
2022-07-12 12:54:35 +02:00
Emmanuel Gil Peyrot
fc63768cfc XEP-0082: Move from mini_dateutil to datetime
Since datetime got merged into Python (probably around py3k), it’s now
usable for all of our needs and so we can do away with the old fallback.
2022-07-12 12:51:22 +02:00
Maxime “pep” Buquet
90e79af18a
xmlstream: load default CA store by default
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-07-11 14:46:00 +02:00
Link Mauve
5e5a741994 Merge branch 'dns-reconnect' into 'master'
Fix delayed reconnect after DNS failure

See merge request poezio/slixmpp!208
2022-06-22 11:50:12 +02:00
Georg Lukas
b44ab17c8f Fix delayed reconnect after DNS failure
The XML stream will re-schedule a reconnect on socket errors, except
for DNS failures. If a user has no uplink connection, then DNS will
also fail, preventing an automatic reconnection.

This patch consolidates the two code paths and sets a maximum back-off
time of 5min (300s).
2022-06-22 11:39:44 +02:00
Nicolas Cedilnik
afb5419b68 XEP-0363: Fix upload service auto discovery for components 2022-06-18 06:09:36 +02:00
Nicolas Cedilnik
a1a5f3984d XEP-0356: namespace version bump 2022-06-09 16:45:36 +02:00
Nicolas Cedilnik
8eb8769862 XEP-0115: Make get_caps() async 2022-06-09 15:33:02 +02:00
Link Mauve
5ceb48bbcd Merge branch 'origin-id-non-default' into 'master'
Change origin-id defaults to False

See merge request poezio/slixmpp!202
2022-05-28 17:44:42 +02:00
Maxime “pep” Buquet
916894ab7c
Change origin-id defaults to False
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-05-28 13:50:09 +02:00
Nicoco K
2b45c22fcb Add xep_0356 to plugins.__all__ 2022-05-19 14:40:45 +02:00
mathieui
566e7dc771 Merge branch 'nicoco-master-patch-38938' into 'master'
Fix typo in chat markers (fixes #3469)

Closes #3469

See merge request poezio/slixmpp!199
2022-05-15 16:44:10 +02:00
Nicoco K
aa492f905c Fix typo in chat markers (fixes #3469) 2022-05-15 07:48:00 +02:00
mathieui
e1a240ec6c Merge branch 'release-version-1.8.2' into 'master'
Update version to 1.8.2

See merge request poezio/slixmpp!197
2022-04-06 22:44:40 +02:00
mathieui
771839242c Update version to 1.8.2 2022-04-06 22:41:40 +02:00
mathieui
8bac744009 Merge branch 'starttls-exception' into 'master'
features_starttls/Proceed: raise exception on InvalidCABundle

See merge request poezio/slixmpp!196
2022-04-05 20:15:49 +02:00
Maxime “pep” Buquet
88d2f5dae4 features_starttls/Proceed: raise exception on InvalidCABundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-04-05 19:42:49 +02:00
mathieui
f7902d056e Merge branch 'exn-invalidcabundle-arg' into 'master'
Pass in useful value when raising InvalidCABundle

See merge request poezio/slixmpp!195
2022-04-05 19:42:06 +02:00
Maxime “pep” Buquet
41afbb10df
Pass in useful value when raising InvalidCABundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-04-05 01:24:14 +02:00
mathieui
aca4addb9c Merge branch 'fix-old-session' into 'master'
stream features: fix old "session" establishment

Closes #3468

See merge request poezio/slixmpp!193
2022-04-01 21:01:31 +02:00
mathieui
914ce40fd5 stream features: fix old "session" establishment
As it is and old and deprecated code path, nobody noticed that it was
broken by the new filtering code.

Fix #3468
2022-04-01 20:56:02 +02:00
Maxime Buquet
82ff68cfac Merge branch 'upload-encrypt' into 'master'
XEP-0454: OMEMO Media Sharing

See merge request poezio/slixmpp!189
2022-03-21 17:01:40 +01:00
Maxime “pep” Buquet
28d44ecf74
xep_0454: str.removeprefix is available since 3.9
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-20 21:34:55 +01:00
mathieui
fcec6742cf Merge branch 'release-version-1.8.1' into 'master'
Update version to 1.8.1

See merge request poezio/slixmpp!192
2022-03-20 20:26:25 +01:00
mathieui
fedbb248ec Update version to 1.8.1 2022-03-20 20:22:52 +01:00
mathieui
e8679fe32b Merge branch 'allow-disabling-defusedxml' into 'master'
Do not use defusedxml by default if available

See merge request poezio/slixmpp!190
2022-03-20 20:19:54 +01:00
Maxime “pep” Buquet
06e4e480c1 xep_0454: keep original filename extension if available
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-20 01:02:14 +01:00
Maxime “pep” Buquet
82ee250295 xep_0454: use staticmethods where possible
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-20 01:02:14 +01:00
Maxime “pep” Buquet
53d38a8115 setup.py: add cryptography in extras_require; update example
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-20 01:02:14 +01:00
mathieui
41d733e77f Only defuse stdlib through an env var
https://github.com/inducer/relate/issues/905
2022-03-19 16:15:03 +01:00
Maxime “pep” Buquet
0fba8fd7f8 doap: add 454 entry
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
b899baabd8 xep_0454: also include finalize's result in the payload
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
acad41f3b7 xep_0454: Don't force content-type to application/octect-stream
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
bde5aaaf3e examples/http_upload.py: Add --encrypt parameter to send encrypted files
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
7222ade0dd xep_0454: Ensure format_url returns a str
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
14a6c7801d tests: XEP-0454
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
b52540e49f xep_0454: implement decrypt method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
c1aeab328b xep_0454: use streaming API from CipherContext
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
51644e301b xep_0454: Add wrapper to xep_363's upload_file
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
bc8af3cc61 xep_0454: new plugin. OMEMO Media Sharing
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
3c08f471cf xep_0363: change filename to Path
This shouldn't break anything as I'm not using Path specific APIs

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
Maxime “pep” Buquet
54b724c28b examples/http_upload: Add some typing
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-19 10:31:34 +01:00
mathieui
abd699593f Merge branch 'fix-mypy' into 'master'
Fix mypy in CI

See merge request poezio/slixmpp!191
2022-03-19 00:07:55 +01:00
mathieui
4202ed4cd5 Fix mypy in CI 2022-03-19 00:04:56 +01:00
Maxime “pep” Buquet
60df4ef7aa
xep_0045: Require JID when setting outcast affiliation
Found out when reading poezio/poezio#3536.

“An admin or owner can ban one or more users from a room. The ban MUST
be performed based on the occupant's bare JID.”

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-03-16 16:12:20 +01:00
mathieui
ad610c7ded Fix the XEP-0444 stanza test 2022-03-07 21:31:13 +01:00
mathieui
e8f45dedfe Merge branch 'release-1.8.0' into 'master'
Release 1.8.0

See merge request poezio/slixmpp!187
2022-02-27 22:25:34 +01:00
mathieui
51a7cad7e1 doap: add a 1.8.0 entry 2022-02-27 22:21:35 +01:00
mathieui
389a358996 version: increment to 1.8.0 2022-02-27 22:20:02 +01:00
mathieui
001e0c7060 Merge branch 'doc-update' into 'master'
Add documentation on how to replace proces()

See merge request poezio/slixmpp!186
2022-02-27 20:48:48 +01:00
mathieui
5c4c867dee docs: add a page on how to remove process() 2022-02-27 20:33:26 +01:00
mathieui
b23b805dc5 docs: Fix some wrong references 2022-02-27 20:32:48 +01:00
mathieui
11b555af20 Merge branch 'fix-join-muc-wait' into 'master'
Fix join_muc_wait: end join only upon receiving the room subject

See merge request poezio/slixmpp!185
2022-02-27 20:30:12 +01:00
mathieui
06172ea896 XEP-0045: return occupants and history when join is complete 2022-02-27 18:11:10 +01:00
mathieui
815b7d5af7 Fix join_muc_wait: end join only upon receiving the room subject 2022-02-27 16:22:59 +01:00
mathieui
28fe68c7d3 Merge branch 'end-filter-run' into 'master'
fix: allow cancelling the run_filters coroutine

See merge request poezio/slixmpp!184
2022-02-18 22:29:02 +01:00
mathieui
d15a37e146 fix: allow cancelling the run_filters coroutine
otherwise it will leak forever into the event loop and generate
tracebacks when closing it
2022-02-16 22:11:19 +01:00
mathieui
98dba869c7 Merge branch 'deprecate-xmpp-process' into 'master'
deprecate XMLStream.process()

See merge request poezio/slixmpp!183
2022-02-16 21:26:03 +01:00
mathieui
bcb4495c6d deprecate XMLStream.process() 2022-02-15 21:57:49 +01:00
mathieui
22b00c6073 Merge branch 'update-doc-yieldfrom' into 'master'
docs: remove yield from and fix some old changes

See merge request poezio/slixmpp!182
2022-02-15 20:58:20 +01:00
mathieui
a50bffae89 docs: remove yield from and fix some old changes 2022-02-15 20:54:36 +01:00
mathieui
92c3f69829 Merge branch 'fix-doap' into 'master'
doap: add missing 1.7.1 release and fix 1.7.0 link

See merge request poezio/slixmpp!181
2022-02-15 20:53:48 +01:00
mathieui
1e7d7bf8cb Merge branch 'ibb-fix-races' into 'master'
fix: specific cases in xep-0047 with network race conditions

See merge request poezio/slixmpp!179
2022-02-07 19:03:31 +01:00
mathieui
53f0971fd0 doap: add missing 1.7.1 release and fix 1.7.0 link 2022-02-05 13:19:09 +01:00
mathieui
e543e22e78 fix: specific cases in xep-0047 with network race conditions 2022-02-05 12:38:48 +01:00
mathieui
714f9aae0d Merge branch 'bugfix/xep_0009' into 'master'
xep-0009: fixed bugs

See merge request poezio/slixmpp!172
2022-02-04 23:11:28 +01:00
mathieui
9eb4462acc Merge branch 'better-jid-errors' into 'master'
jid: Improve error reporting on IDNA validation failure

See merge request poezio/slixmpp!170
2022-02-04 23:07:51 +01:00
mathieui
d5502c9be7 Merge branch 'ca-cert-compat' into 'master'
Don't break ca-bundle API just yet

See merge request poezio/slixmpp!178
2022-02-04 23:07:00 +01:00
mathieui
33efbd4d7b Merge branch 'fix-moderation-bug' into 'master'
fix: missing <retract/> on moderate

See merge request poezio/slixmpp!180
2022-02-04 23:06:41 +01:00
mathieui
e344c0c303 fix: missing <retract/> on moderate 2022-02-04 19:25:53 +01:00
Maxime “pep” Buquet
9f38c8944d
Don't break ca-bundle API just yet
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-01-03 23:36:25 +01:00
Link Mauve
e56930e0a1 Merge branch 'ca-cert-list' into 'master'
Allow Xmlstream.ca_certs to be an iterable

See merge request poezio/slixmpp!177
2022-01-03 11:04:36 +01:00
Maxime “pep” Buquet
d733c54518
Allow Xmlstream.ca_certs to be an iterable
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2022-01-03 10:30:09 +01:00
Maxime Buquet
834ea8ed74 Merge branch 'path-ca-certs' into 'master'
Make Xmlstream.ca_certs an Optional[Path] instead of Optional[str]

See merge request poezio/slixmpp!176
2021-12-28 18:35:11 +01:00
Maxime “pep” Buquet
90662d148e
Make Xmlstream.ca_certs an Optional[Path] instead of Optional[str]
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-12-28 18:28:36 +01:00
Link Mauve
237405e3a0 Merge branch 'muc-presense-destroy' into 'master'
xep_0045: register_stanza_plugin(MUCPresence, MUCDestroy)

See merge request poezio/slixmpp!175
2021-12-22 18:19:50 +01:00
Maxime “pep” Buquet
623d2cc27e
xep_0045: register_stanza_plugin(MUCPresence, MUCDestroy)
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-12-19 00:51:42 +01:00
mathieui
6fb4617732 Merge branch 'remove-loop-param' into 'master'
fix: remove loop parameter (3.10)

See merge request poezio/slixmpp!174
2021-12-13 23:26:04 +01:00
mathieui
0e5a4726af ci: fix curl image to an official one 2021-12-13 23:08:55 +01:00
mathieui
8ba054dd53 ci: allow failure in python 3.11 for now 2021-12-13 22:43:52 +01:00
mathieui
e1b135c667 ci: only run integration tests once 2021-12-13 22:37:07 +01:00
mathieui
4ca1de92b3 fix: integration tests
prosody got more restrictive?
2021-12-13 22:35:53 +01:00
mathieui
799a6a07a9 fix: remove loop parameter when deprecated (3.10) 2021-12-13 21:31:46 +01:00
mathieui
be6dde17f1 Revert "Replace asyncio.ensure_future() with asyncio.create_task()"
This reverts commit bac6a4b2bf.

This is not actually something we want
2021-12-13 21:25:41 +01:00
mathieui
14ae84d666 Merge branch 'ci-add-python-versions' into 'master'
ci: add python 3.10 and 3.11 testing

See merge request poezio/slixmpp!173
2021-12-13 20:41:00 +01:00
mathieui
0cc1095ffc Merge branch 'asyncio-create-task' into 'master'
Replace asyncio.ensure_future() with asyncio.create_task()

See merge request poezio/slixmpp!169
2021-12-13 20:40:15 +01:00
mathieui
4cab1f62aa ci: add python 3.10 and 3.11 testing 2021-12-13 20:33:05 +01:00
Tim-Oliver Husser
4d7786a830 Changed iq.attrib['to'] to iq['to'], same for 'from'. 2021-12-13 13:53:12 +01:00
Tim-Oliver Husser
8fccfc452b replaced params.xml.findall with params.findall in xml2fault 2021-12-13 13:51:40 +01:00
Emmanuel Gil Peyrot
ed514e6f73 jid: Improve error reporting on IDNA validation failure
At least knowing the failing domain should help a lot while debugging.
2021-11-18 15:33:37 +01:00
Emmanuel Gil Peyrot
bac6a4b2bf Replace asyncio.ensure_future() with asyncio.create_task()
The latter function got introduced in Python 3.7, which is conveniently
our MSPV, so let’s use that.
2021-11-18 15:33:03 +01:00
Link Mauve
d4067275ff Merge branch '0045-invite-JID' into 'master'
xep_0045: Ensure invite and decline to/from are JIDs

See merge request poezio/slixmpp!167
2021-07-17 00:33:15 +02:00
Maxime “pep” Buquet
91d32bd066
xep_0045: Ensure invite and decline to/from are JIDs
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-07-17 00:21:00 +02:00
mathieui
22fa8bc4d9 Merge branch 'more-typing' into 'master'
Add more typing

See merge request poezio/slixmpp!166
2021-07-15 10:01:03 +02:00
mathieui
5c54806578 stanza: fix circular imports
ew
2021-07-05 23:05:57 +02:00
mathieui
42ca51e2b1 ci: add a mypy stage 2021-07-05 22:44:41 +02:00
mathieui
de6c19c9cd add a mypy.ini file 2021-07-05 22:42:28 +02:00
mathieui
ca1cc73c79 xmlstream: refine type check 2021-07-05 22:42:18 +02:00
mathieui
9489586cb4 plugins: use classvar properly 2021-07-05 22:42:18 +02:00
mathieui
524c352da3 clientxmpp: cleanup some types 2021-07-05 22:42:18 +02:00
mathieui
35eafadb44 features: fix typing
for an annoying mypy bug
2021-07-05 22:42:18 +02:00
mathieui
af958fd1fe stanza: fix a bunch of type errors 2021-07-05 22:42:18 +02:00
mathieui
0971bab30a matcher: fix idsender typing 2021-07-05 22:28:50 +02:00
mathieui
ed3bb878a7 handler: fix more types 2021-07-05 22:28:38 +02:00
mathieui
f2d7e86fc7 typing: add a bunch of type ignores
because this is too smart for mypy and I do not want to rewrite those
things right now.
2021-07-05 22:25:38 +02:00
mathieui
fe1a325aa7 api: fix typing 2021-07-05 20:09:59 +02:00
mathieui
ea7f7d8119 fix: remove asyncio hack in slixtest 2021-07-04 16:01:48 +02:00
mathieui
3516016f32 typing: reorder jid.bare setter 2021-07-04 15:59:46 +02:00
mathieui
a57aae792d typing: fix basexmpp type overloads
mypy got confused
2021-07-04 15:59:27 +02:00
mathieui
d6924fa7ad fix: please python 3.7 2021-07-03 12:02:36 +02:00
mathieui
20e4c2c257 types: add __all__ 2021-07-03 11:17:15 +02:00
mathieui
df963542c1 basexmpp/clientxmpp: refine typing 2021-07-03 11:17:15 +02:00
mathieui
7fc3c48cad pluginsdict: add xep 0048 2021-07-03 11:17:15 +02:00
mathieui
7d4172808f stanza: add typing 2021-07-03 11:17:15 +02:00
mathieui
95b034797f jid: reorder properties for mypy
don’t ask
2021-07-03 11:17:15 +02:00
mathieui
f1b429199f cert: add some typing 2021-07-03 11:17:15 +02:00
mathieui
db48c8f4da xmlstream: add more types 2021-07-03 11:17:15 +02:00
mathieui
c07476e7de setup: indicate that slixmpp contains type hints 2021-07-03 11:17:15 +02:00
mathieui
62e66e7d03 stanzabase: types 2021-07-03 11:17:15 +02:00
mathieui
79f71ec0c1 starttls: do not send back the feature we receive
I don’t see what a server would do with <required/>
2021-07-03 11:17:15 +02:00
mathieui
451bee0892 starttls: make the starttls element inherit from stanzabase 2021-07-03 11:17:15 +02:00
mathieui
00d38c1b29 typing: add to tostring 2021-07-03 11:17:15 +02:00
mathieui
fed55d3dda typing: matchers and senders
Leftover error that I cannot fix:

* https://github.com/python/mypy/issues/708

Leftover error that I am unsure of what to do:

* xml handlers are not properly typed

(it seems like nothing in slix is using it, considering a removal
 instead of adding an Union everywhere)
2021-07-03 11:17:15 +02:00
mathieui
4931e7e604 refactor: type the resolver
almost perfect, except for python < 3.9 making it so we can’t have nice
things.
2021-06-28 21:01:21 +02:00
mathieui
9f01d368c0 refactor: remove the now obsolete future_wrapper and asyncio-related module 2021-06-28 21:01:18 +02:00
mathieui
ef06429941 slixmpp.util: type things
Fix a bug in the SASL implementation as well. (some special chars would
make things crash instead of being escaped)
2021-06-28 21:00:30 +02:00
Link Mauve
b1411d8ed7 Merge branch 'request-voice' into 'master'
XEP-0045: Add a helper method to request voice

See merge request poezio/slixmpp!165
2021-05-21 19:05:26 +02:00
Emmanuel Gil Peyrot
889cfaa95b XEP-0045: Add a helper method to request voice
This can be used in a moderated room when we are only a visitor.
2021-05-21 19:00:59 +02:00
mathieui
b7f0160c0d Merge branch 'disconnected-stanzas-no-resend' into 'master'
xmlstream: do not re-send queued stanzas on each connect

See merge request poezio/slixmpp!163
2021-05-02 19:02:38 +02:00
mathieui
528553be57 xmlstream: do not re-send queued stanzas on each connect
each sent stanza should be purged, obviously…
2021-05-02 18:55:14 +02:00
mathieui
6f4ac7e7ce Merge branch 'fix-slow-tasks' into 'master'
xmlstream: Fix slow tasks

See merge request poezio/slixmpp!162
2021-04-30 19:43:05 +02:00
mathieui
aaab58d229 itests: add a simple slow filter test 2021-04-30 19:33:23 +02:00
mathieui
0b5f6cb0a8 xmlstream: fix slow tasks scheduling
- wrong attribute used
- some mistakes in the slow tasks function
2021-04-30 19:27:30 +02:00
Link Mauve
027545eb71 Merge branch 'fix-docs' into 'master'
docs: Use the correct number for user_nick

See merge request poezio/slixmpp!161
2021-04-24 20:39:29 +02:00
Emmanuel Gil Peyrot
290d84cd0f docs: Use the correct number for user_nick
Thanks Felix for noticing!
2021-04-24 20:33:04 +02:00
Link Mauve
f058e62680 Merge branch 'fix-0353' into 'master'
XEP-0353: Use the correct callback for <proceed/>

See merge request poezio/slixmpp!160
2021-04-24 20:25:34 +02:00
Emmanuel Gil Peyrot
104917163d XEP-0353: Use the correct callback for <proceed/>
Thanks elmar for noticing!
2021-04-24 20:20:02 +02:00
mathieui
d184442337 Merge branch 'fix-waiting-queue-xmlstream' into 'master'
xmlstream: fix use of the waiting queue

See merge request poezio/slixmpp!159
2021-04-22 21:08:08 +02:00
mathieui
a4789acbfb xmlstream: fix use of the waiting queue 2021-04-22 21:07:30 +02:00
mathieui
3630c3d1cc Merge branch 'caps-broadcast-presence' into 'master'
Caps: do not broadcast presence on PEP plugin load/unload

See merge request poezio/slixmpp!157
2021-04-20 19:08:46 +02:00
mathieui
41fc6a2e6b itests: explicitly send caps in avatar example 2021-04-20 18:57:50 +02:00
mathieui
7f0febb929 Merge branch 'use-runpy-for-version-data' into 'master'
fix: use runpy to get versiion-data

See merge request poezio/slixmpp!158
2021-04-20 09:27:10 +02:00
mathieui
44392fa2d9 fix: use runpy to get versiion-data
fix compatibility with debian stable (thanks jonas’)
2021-04-20 09:18:57 +02:00
mathieui
7bb94afdc8 XEP-0163: do not broadcast caps when adding/removing interest 2021-04-19 23:19:40 +02:00
mathieui
8828a5b99d XEP-0115: add a broadcast parameter to update_caps
and do not send a presence after updating if it is false
2021-04-19 23:17:10 +02:00
mathieui
0d52344a31 Merge branch 'fix-component-handshake' into 'master'
Fix component handshake

Closes #3464

See merge request poezio/slixmpp!156
2021-04-19 19:53:33 +02:00
mathieui
768089d457 tests: fix bogus test case
stanza.match worked accidentally, but the two elements used in that test
actually conflict with each other (not overriding the plugin_attrib,
which makes it then default to 'plugin', leading to shenanigans).
2021-04-19 19:42:52 +02:00
mathieui
eee185ff90 stanza: rework the .append() and __eq__ methods
This was very much broken on plugin iterables and other reasons.
2021-04-18 23:01:36 +02:00
mathieui
99c6fc923a itests: do not compare strings, compare xml 2021-04-18 23:01:01 +02:00
mathieui
d4e1b68534 Allow handshake in stream.send() when not connected yet
fix #3464
2021-04-18 21:16:03 +02:00
mathieui
3bb01de120 stanza: add a Handshake class and use it in componentxmpp 2021-04-18 21:15:22 +02:00
mathieui
7057773d18 Merge branch 'tentative-fix-for-reconnect-race' into 'master'
xmlstream: do not allow stanzas outside a session

See merge request poezio/slixmpp!154
2021-04-12 19:49:10 +02:00
mathieui
894131d772 Merge branch 'inbound-id-message-presence' into 'master'
Fix #3441: Do not assign ID to inbound stanzas

Closes #3441

See merge request poezio/slixmpp!155
2021-04-09 20:55:41 +02:00
mathieui
fcf666e3cb Fix #3441: Do not assign ID to inbound stanzas 2021-04-09 20:40:30 +02:00
mathieui
3e5943f458 xmlstream: do not allow stanzas outside a session
except for the bind, obviously
2021-04-08 18:47:51 +02:00
mathieui
7ddcc3428f Merge branch 'xep-0300-fixup' into 'master'
XEP-0300: small fixes

See merge request poezio/slixmpp!151
2021-03-11 20:54:31 +01:00
mathieui
d77eb3a7e8 Merge branch 'fix-0030-get-info-ifrom' into 'master'
XEP-0030: Fix usage of ifrom in get_info

See merge request poezio/slixmpp!152
2021-03-10 22:09:54 +01:00
mathieui
7f90fb594a XEP-0030: Fix usage of ifrom in get_info 2021-03-10 22:07:00 +01:00
mathieui
1cf6393b61 XEP-0300: small fixes
- fix a typo in the default option (crash when hashing a file without
  providing a function)
- Fix the plugin_end method (classical del_feature footgun)
2021-03-10 21:26:08 +01:00
mathieui
7c86c43fc7 Merge branch 'mam-update' into 'master'
MAM Update

See merge request poezio/slixmpp!149
2021-03-09 21:20:14 +01:00
mathieui
8a1f9bec56 Merge branch 'xep-0115-fix-error' into 'master'
XEP-0115: remove wrong coroutine=True argument

See merge request poezio/slixmpp!150
2021-03-09 20:05:09 +01:00
mathieui
ad2673fd2c XEP-0115: remove wrong coroutine=True argument 2021-03-09 20:02:16 +01:00
mathieui
0115feaa31 tests: Add a MAM metadata stanza test 2021-03-09 19:52:53 +01:00
mathieui
3613cd5f14 tests: Add a MAM stream test 2021-03-09 19:52:53 +01:00
mathieui
644ebfe89f XEP-0313: Only remove origin-id from the mask if it exists 2021-03-09 19:52:53 +01:00
mathieui
e329eadbed XEP-0313: Fix off-by-one-page RSM fetching
Add a "results" interface to mam_fin, and fix some things in RSM

Items just received were not taken into account because:
- RSM code is checking iq['mam_fin']['results'], results were at
  iq['mam']['results']
- RSM handler was run after checking the number
2021-03-09 19:52:53 +01:00
mathieui
4cdcc4d155 itests: test mam.iterate() as well for fetching the archive 2021-03-09 19:52:53 +01:00
mathieui
97a63b9f25 XEP-0313: Update the API
- add an iterate() method that makes this plugin more practical
- add a get_fields method to retrieve the available search fields
- add a get_archive_metadata method.

This is a big chunk because git refused to split it further.
2021-03-09 19:52:53 +01:00
mathieui
dbbc47e02d docs, XEP-0313: Order document by source 2021-03-09 19:52:53 +01:00
mathieui
7d2b245bb0 XEP-0441: Split MAM preferences into a separate plugin 2021-03-09 19:52:53 +01:00
mathieui
e5f4794a36 XEP-0313: Update stanza for completeness, and more docs 2021-03-09 19:52:53 +01:00
mathieui
d7d4baefa3 tests: Add XEP-0313 stanza tests 2021-03-09 19:52:53 +01:00
mathieui
1289cf575c Merge branch 'rsm-fixes' into 'master'
XEP-0059 (RSM) - Some fixes

See merge request poezio/slixmpp!145
2021-03-09 19:25:26 +01:00
mathieui
a568363a6c Merge branch 'async-adhoc' into 'master'
XEP-0050 Make handle_command_xxx async

See merge request poezio/slixmpp!144
2021-03-09 19:24:43 +01:00
Nicoco K
eac5ad50a8 XEP-0050 Make handle_command_xxx async 2021-03-09 19:24:43 +01:00
mathieui
e97f5ccb9c Merge branch 'fix-0004-field-type' into 'master'
Fix 0004 field type

See merge request poezio/slixmpp!148
2021-03-08 21:10:20 +01:00
mathieui
432a332636 tests: Fix XEP-0060 tests for the new 0004 change regarding type attribute 2021-03-08 21:06:43 +01:00
mathieui
30b1d27fc1 XEP-0004: stanza, only delete field type if it is not 'hidden'
Not strictly required, but most XEPs use it like that for forms of
type='submit', and that makes it easier to write stanza tests.
2021-03-08 21:04:21 +01:00
mathieui
cb83ebe32c Merge branch 'form-multi-attrib' into 'master'
XEP-0004: add "forms" as a multi-attrib plugin for Form

See merge request poezio/slixmpp!147
2021-03-08 18:53:56 +01:00
mathieui
cd0845515a Merge branch 'typing-jid' into 'master'
JID: add some forgotten type hints

See merge request poezio/slixmpp!146
2021-03-08 18:53:40 +01:00
mathieui
ade1b010ed XEP-0004: add "forms" as a multi-attrib plugin for Form 2021-03-07 21:14:38 +01:00
mathieui
5ff46d6245 JID: add some forgotten type hints 2021-03-07 21:12:22 +01:00
mathieui
5a3ab2c5c1 tests: enable and fix RSM test for XEP-0030 2021-03-07 20:43:44 +01:00
mathieui
27cf97458b XEP-0059: docs and typing
Also:
 - fix a typo in the plugin description (wrong number)
 - add iq_options to make retrieval more flexible
2021-03-07 19:47:00 +01:00
mathieui
ae31f78b63 docs: add resultiterator docs for XEP-0059 2021-03-07 19:45:01 +01:00
mathieui
c1a598c34b Merge branch 'xep-0030-typing-and-co' into 'master'
XEP-0030: add typing and more docs

See merge request poezio/slixmpp!143
2021-03-04 22:14:59 +01:00
mathieui
2314ee422a Merge branch 'gateway' into 'master'
Gateway interaction (XEP0100)

See merge request poezio/slixmpp!135
2021-03-02 18:54:22 +01:00
Nicoco K
9b5f3d9df0 Add XEP-0100 (Gateway Interaction) plugin
Remove usused prompt_future attribute

Add plugin_end

Update with mathieui's comments

Add option to transfer messages from unregistered users

XEP 0100 plugin
2021-03-02 18:54:22 +01:00
mathieui
49416dacbc XEP-0030 static: Fix PEP8, types 2021-03-01 21:11:33 +01:00
mathieui
e3027dabb2 XEP-0030 stanza: FIX PEP8, types 2021-03-01 20:55:27 +01:00
mathieui
10611525a0 XEP-0030 plugin: Fix PEP8, types 2021-03-01 20:54:53 +01:00
mathieui
2ff72d88fd docs: improve XEP-0030 docs 2021-03-01 20:54:26 +01:00
mathieui
9561a2a305 types: add some often-used types 2021-03-01 20:54:10 +01:00
mathieui
2dac77e680 Merge branch 'docs-dedfault' into 'master'
docs: fix a typo (dedfault)

See merge request poezio/slixmpp!142
2021-02-27 21:07:11 +01:00
mathieui
0726b79345 docs: fix a typo (dedfault) 2021-02-27 21:02:55 +01:00
mathieui
9f1ded7f5f Merge branch 'more-tests' into 'master'
Add some more tests for MIX, and fix a small bug

See merge request poezio/slixmpp!141
2021-02-27 21:02:03 +01:00
mathieui
bea2669907 XEP-0403: Add stanza tests 2021-02-27 13:21:13 +01:00
mathieui
a288094b64 XEP-0405: add stream tests 2021-02-27 13:21:13 +01:00
mathieui
f12b04bd0b XEP-0405: Fix a bug in nodes returned by join_channel
Yay tests!
2021-02-27 13:21:13 +01:00
mathieui
059cb290d8 Merge branch 'async-interal-api-break-everything' into 'master'
Make the internal "api" async

See merge request poezio/slixmpp!128
2021-02-27 13:16:18 +01:00
mathieui
3cdec464a5 docs: document the "internal API" with reference & howto 2021-02-26 00:09:56 +01:00
mathieui
9927e69435 docs: add references to API docs 2021-02-26 00:08:56 +01:00
mathieui
8e388df8e0 XEP-0231: do not crash if max-age is None
it is only RECOMMENDED
2021-02-26 00:08:56 +01:00
mathieui
8eee559d39 api: update docstrings/typing 2021-02-26 00:08:56 +01:00
mathieui
2fed9f9ad2 XEP-0319: API changes
- ``idle`` and ``active`` are now coroutines.
2021-02-26 00:08:56 +01:00
mathieui
9947d3db85 XEP-0231: API changes
- ``get_bob`` and ``set_bob`` are now coroutines.
- ``del_bob`` returns a Future.
2021-02-26 00:08:56 +01:00
mathieui
ab87b25030 XEP-0153: API changes 2021-02-26 00:08:56 +01:00
mathieui
e24e2f58d4 XEP-0128: API changes
- ``set_extended_info``, ``add_extended_info`` and ``del_extended_info`` return Futures.
2021-02-26 00:08:56 +01:00
mathieui
4960cffcb4 XEP-0115: API changes
- ``get_verstring``, ``get_caps`` are now coroutines.
- ``assign_verstring``, ``cache_caps`` now return a Future.

side-effect: fix supports() and has_identity() broken since forever
2021-02-26 00:08:56 +01:00
mathieui
f0aec1614f XEP-0095: API changes
- ``accept`` and ``decline`` are now coroutines.
2021-02-26 00:08:56 +01:00
mathieui
504067d5a8 XEP-0077: API changes 2021-02-26 00:08:56 +01:00
mathieui
0b3233a6e8 XEP-0065: API changes 2021-02-26 00:08:56 +01:00
mathieui
f7ecce42ac XEP-0054: API changes
- ``get_vcard``, ``publish_vcard`` are now coroutines.
2021-02-26 00:08:56 +01:00
mathieui
d17967f58e XEP-0047: API changes
and fix unit tests broken for years.
2021-02-26 00:08:56 +01:00
mathieui
13de36baa1 XEP-0030: API changes
- ``supports``, ``has_identity``, ``get_info``, ``get_items`` are now coroutines
- ``set_info````set_items``, ``del_items``, ``add_item``, ``add_identity``,
  ``del_identity``, ``set_identities``, ``del_identities``, ``add_feature``,
  ``del_feature``, ``set_feature``, ``set_features``, ``del_features``
  now return a Future

also fix has_identity and supports which have been broken in forever
2021-02-26 00:08:56 +01:00
mathieui
7772e26a8c XEP-0027: API changes
- ``get_keyids`` and ``get_keyid`` are now coroutines.
- ``set_keyid`` and ``del_keyid`` now return a Future.
2021-02-26 00:08:56 +01:00
mathieui
0b6326e1cc XEP-0012: API changes. 2021-02-26 00:08:56 +01:00
mathieui
d51c4e307d api: make run() always return a Future
plugins must be modified to make use of this, but this keeps synchronous
code synchrouns while allowing coroutine in api, which makes sense.
2021-02-26 00:08:56 +01:00
mathieui
8da5310ea6 xmlstream: add a wrap() method for ensure_future 2021-02-26 00:08:56 +01:00
mathieui
5f9ab45a5e Merge branch 'stream-features-sync-event' into 'master'
Allow "sync" events to be processed in-order

See merge request poezio/slixmpp!129
2021-02-24 20:59:12 +01:00
mathieui
6d241be789 XEP-0077: Fix "register" event on stream features. 2021-02-24 20:50:05 +01:00
mathieui
babd98dac7 xmlstream: add event_async() for events that need in-order processing
Essentially stream feature handlers which can then make sure the feature
has been process correctly (e.g. 0077).

This is the same approach as slixmpp!4.
2021-02-24 20:50:05 +01:00
mathieui
b8b57960f1 Merge branch 'httpupload-add-oob' into 'master'
examples: add oob to httpupload example

See merge request poezio/slixmpp!140
2021-02-24 20:47:45 +01:00
mathieui
5764ef7ff7 examples: add oob to httpupload example
many people ask how to do this, might as well do this by default
2021-02-24 20:43:21 +01:00
mathieui
7381460556 Merge branch 'collections-abc-warning' into 'master'
Collections abc warning

See merge request poezio/slixmpp!139
2021-02-22 18:18:33 +01:00
Nicolas Cedilnik
8b7648502b Fix deprecation warning 2021-02-22 13:09:39 +01:00
mathieui
17a663b0fd Merge branch 'test-run-coro-return-value' into 'master'
tests: return the coroutine result in run_coro

See merge request poezio/slixmpp!138
2021-02-20 12:58:52 +01:00
mathieui
9270d1e538 tests: return the coroutine result in run_coro 2021-02-20 12:56:14 +01:00
mathieui
35c68738a7 Merge branch 'remove-loop-wait-for' into 'master'
xmlstream: remove loop parameter to wait_for

See merge request poezio/slixmpp!137
2021-02-20 12:42:34 +01:00
mathieui
751987e2b0 xmlstream: remove loop parameter to wait_for
Deprecated in 3.8, removed in 3.10
2021-02-20 12:39:51 +01:00
mathieui
35a9526a4c Merge branch 'enable-debug-on-run-tests' into 'master'
run_tests: add a command-line option to enable debug logs

See merge request poezio/slixmpp!136
2021-02-20 11:58:30 +01:00
mathieui
7e3e056e6b slixtest: add more shortcuts for asyncio workflow 2021-02-20 11:55:46 +01:00
mathieui
94700de7a3 run_tests: add a command-line option to enable debug logs 2021-02-20 11:53:30 +01:00
mathieui
2f0660c6ff Merge branch 'fix-slixtest-default-ns-component' into 'master'
slixtest: use the default stream ns instead of jabber:client

See merge request poezio/slixmpp!133
2021-02-20 11:27:33 +01:00
mathieui
ba7e5e417f slixtest: use the default stream ns instead of jabber:client 2021-02-20 11:24:43 +01:00
mathieui
2ba89727a6 Merge branch 'fix-test-order-race' into 'master'
tests: fix prerequisites for stanza tests

See merge request poezio/slixmpp!134
2021-02-19 19:06:41 +01:00
mathieui
a397cc3a7d tests: fix prerequisites for stanza tests 2021-02-19 19:03:46 +01:00
mathieui
626bf5ff8a Merge branch 'component-registration' into 'master'
Add registration to components

See merge request poezio/slixmpp!130
2021-02-18 20:05:25 +01:00
Nicoco K
cef7b5cf05 Add registration to components 2021-02-18 20:05:25 +01:00
mathieui
8d92027d01 Merge branch 'privilege' into 'master'
Privileged entities (XEP-0356)

See merge request poezio/slixmpp!131
2021-02-18 20:03:22 +01:00
Nicoco K
dcab3de1b4 Privileged entities (XEP-0356) 2021-02-18 20:03:22 +01:00
mathieui
3453ebf0c5 Merge branch 'fix-origin-id-no-stream' into 'master'
stanzabase: Fix a bug when setting id for streamless messages

See merge request poezio/slixmpp!132
2021-02-17 19:42:58 +01:00
mathieui
699a2620b7 stanzabase: Fix a bug when setting id for streamless messages 2021-02-17 19:29:52 +01:00
Link Mauve
5d7918b122 Merge branch 'vcard-fix-handler' into 'master'
XEP-0054: fix component handling of vcard requests

See merge request poezio/slixmpp!127
2021-02-13 22:02:31 +01:00
mathieui
3eeef6b4b6 XEP-0054: fix component handling of vcard requests
Fetching the local vcard for the JID from which the stanza originates
does not make sense.
2021-02-13 21:58:13 +01:00
Link Mauve
f50dfd6644 Merge branch 'remove-more-extra-args' into 'master'
More cleanup of extra args, types, docs, and API

See merge request poezio/slixmpp!126
2021-02-13 20:25:57 +01:00
mathieui
bbcc977d1d tests: update 0047 tests to reflect new API 2021-02-13 20:23:21 +01:00
mathieui
3668e79fbc itets: Add tests for 0222 and 0223 2021-02-13 20:23:21 +01:00
mathieui
febfb6d6ca XEP-0280: More typing and docs, new kwargs 2021-02-13 20:23:21 +01:00
mathieui
3b43d8eb7f XEP-0223: Add more types and docs, and switch to new kwargs 2021-02-13 20:23:21 +01:00
mathieui
6520376977 XEP-0222: Add more types and docs, and use new-style kwargs 2021-02-13 20:23:21 +01:00
mathieui
8b5776faec itests: add an httpupload test 2021-02-13 20:23:21 +01:00
mathieui
ea2d851a93 XEP-0363: Types, docs, and new-style kwargs 2021-02-13 20:23:21 +01:00
mathieui
a7d690813c itets: Add a BOB test 2021-02-13 20:23:20 +01:00
mathieui
02262679e9 XEP-0231: Add typing, docs, and new-style kwargs
Also add content deletion scheduling if specified.
2021-02-13 20:23:20 +01:00
mathieui
654178b960 itests: add IBB test 2021-02-13 20:23:20 +01:00
mathieui
02e0afbf0f XEP-0047: Better typing, docs, coroutine.
- Add a gather() shortcut to buffer all data received in a stream
- Fix a bug in sendall that happens if the data is above the block
  size.
2021-02-13 20:23:20 +01:00
Link Mauve
ace82c9bc4 Merge branch 'defusedxml-usage' into 'master'
global: use defusedxml if it is available

See merge request poezio/slixmpp!125
2021-02-11 20:27:32 +01:00
mathieui
53dc9847e2 global: use defusedxml if it is available 2021-02-11 20:23:11 +01:00
Link Mauve
bfbc433c8d Merge branch 'remove-old-python-workaround' into 'master'
slixmpp: remove asyncio hack for older python versions

See merge request poezio/slixmpp!124
2021-02-11 20:21:37 +01:00
mathieui
ba7c7f4bb9 slixmpp: remove asyncio hack for older python versions 2021-02-11 20:18:00 +01:00
mathieui
7cde0db4aa docs: update requirements 2021-02-10 12:47:11 +01:00
mathieui
1c4e06d510 Merge branch 'muc-improvements-reloaded' into 'master'
Muc improvements reloaded

See merge request poezio/slixmpp!123
2021-02-08 23:11:08 +01:00
mathieui
80ee551acd docs: fix links to stanza doc 2021-02-08 23:08:31 +01:00
mathieui
f0601cdb84 docs: fill and update the event index 2021-02-08 23:08:31 +01:00
mathieui
0978f66736 docs: fix copyright footer 2021-02-08 23:08:31 +01:00
mathieui
679432591e docs: do not order xep 0045 methods alphabetically 2021-02-08 23:08:31 +01:00
mathieui
bc04da256a XEP-0045: Types, visibility, and documentation
- Make all handlers private (_-prefixed)
- Reorder methods in a more thematic order
- Add docstrings to public methods
- Add types where they were missing
- Create new Literal types for closed enums
- Make join_muc a wrapper around join_muc_wait and return a Future
- Deprecate the current join_muc API
- Fix some mypy issues
2021-02-08 23:08:31 +01:00
mathieui
b9e479f213 Merge branch 'doc-stanza' into 'master'
Fill the stanza howto

See merge request poezio/slixmpp!122
2021-02-06 17:59:53 +01:00
mathieui
648ca16b4c docs: fill the stanza howto 2021-02-06 12:29:31 +01:00
mathieui
622cfd4ed7 basexmpp: add more typing, fix some docs 2021-02-06 12:29:14 +01:00
mathieui
d850b9a9f7 types: move pluginsdict to a dedicated file
And add some Literal types.
2021-02-06 12:28:32 +01:00
mathieui
fb74e46c35 Merge branch 'rewrite-copyright-notices' into 'master'
Rewrite copyright notices to use comments and not docstrings

See merge request poezio/slixmpp!121
2021-02-05 21:18:12 +01:00
mathieui
603cbccddd examples: rewrite copyright notices 2021-02-05 20:51:15 +01:00
mathieui
bbd351e9c1 global: rewrite copyright notice to use comments 2021-02-05 20:46:18 +01:00
mathieui
cff4588499 Merge branch 'updat-typing-and-generic-args' into 'master'
Update typing and generic args for plugins (step 1)

See merge request poezio/slixmpp!120
2021-02-05 20:14:41 +01:00
mathieui
89601289fe itests: add 0012, 0054, 0084, 0092, 0153, 0191 tests 2021-02-05 20:08:16 +01:00
mathieui
6c3f26161e itests: allow pconfig registration with plugins 2021-02-05 20:08:16 +01:00
mathieui
d6ab3124ce XEP-0084: add integer wrappers for int stanza attributes 2021-02-05 20:08:16 +01:00
mathieui
cb8d2edc8d XEP-0191: Add type hints and switch to default args 2021-02-05 20:08:16 +01:00
mathieui
69e04d7d2e XEP-0153: Add typing and switch to default args
(and refactor a bit)
2021-02-05 20:08:16 +01:00
mathieui
ace5aeb80e XEP-0153: Fix a bug that would add muc elements to inbound presence 2021-02-05 20:08:16 +01:00
mathieui
712ac671e1 XEP-0152: Add type hints and switch to default args 2021-02-05 20:08:16 +01:00
mathieui
99c2e5cafd XEP-0092: Add type hints and switch to default args 2021-02-05 20:08:16 +01:00
mathieui
8e612bf229 XEP-0084: Add type hints and switch to default args 2021-02-05 20:08:16 +01:00
mathieui
7860edefe9 XEP-0054: Add type hints and switch to default args 2021-02-05 20:08:16 +01:00
mathieui
fbb8993244 XEP-0049: Add type hints and switch to default args 2021-02-04 20:35:22 +01:00
mathieui
77c8caf205 XEP-0012: Add type hints and switch to default args 2021-02-04 20:27:07 +01:00
Link Mauve
c82e1a4039 Merge branch 'stanzabase-make-get-plugin-public-api' into 'master'
stanzabase: make _get_plugin part of the public API

See merge request poezio/slixmpp!119
2021-02-04 19:28:29 +01:00
mathieui
69b265b975 stanzabase: make _get_plugin part of the public API
it is the only way I know of checking if an element is present in a
stanza without creating it or checking the XML manually.
2021-02-04 19:25:55 +01:00
mathieui
917cb555d5 Merge branch 'debug-logs-in-itests' into 'master'
itests: add a command-line parameter to enable debug logs

See merge request poezio/slixmpp!118
2021-02-04 19:25:17 +01:00
mathieui
d3fb993b29 Merge branch 'remove-unused-obsolete-things' into 'master'
Remove unused and obsolete things, and make other things private

See merge request poezio/slixmpp!117
2021-02-04 19:24:29 +01:00
mathieui
ccbba89cbd xmlstream: make dns_answers private 2021-02-04 19:22:13 +01:00
mathieui
d3063a0368 xmlstream: make connect_loop_wait private 2021-02-04 19:22:13 +01:00
mathieui
40196aefeb itests: add a command-line parameter to enable debug logs 2021-02-04 19:14:23 +01:00
mathieui
782dbdea65 docs: remove python 2 bug workaround explanations 2021-02-04 18:32:10 +01:00
mathieui
650e1a2ed5 docs/xmlstream: remove HTTP proxy references
It has been removed years ago.
2021-02-04 18:31:43 +01:00
Link Mauve
c486c0e821 Merge branch 'documentation-update' into 'master'
Documentation update

See merge request poezio/slixmpp!116
2021-02-03 23:23:38 +01:00
mathieui
f8c39bae60 docs: update the iq tutorial 2021-02-03 23:21:11 +01:00
mathieui
d9975aa4c0 docs: move things around for a cleaner toctree 2021-02-03 23:04:02 +01:00
mathieui
17f08929f9 docs: add slixmpp credits, move fork note to the bottom 2021-02-03 22:34:33 +01:00
Link Mauve
d8dbfaa37e Merge branch 'pep-xeps-fix-returns' into 'master'
Fix return values and improve typing in "user *" PEP XEPs

See merge request poezio/slixmpp!115
2021-02-03 22:29:00 +01:00
mathieui
cb3d9dd41c XEP-0196: Fix return values and typing 2021-02-03 22:24:40 +01:00
mathieui
e6e57f6e8c XEP-0172: Fix return values and typing 2021-02-03 22:24:24 +01:00
mathieui
64299d6a54 XEP-0118: Fix return values and typing 2021-02-03 22:24:03 +01:00
mathieui
f6761e513d XEP-0108: Fix return values and typing 2021-02-03 22:23:44 +01:00
mathieui
f2878e1764 XEP-0107: Fix return values and typing 2021-02-03 22:23:16 +01:00
Link Mauve
2585764b46 Merge branch 'type-plugins' into 'master'
basexmpp: type self.plugins in a more useful manner

See merge request poezio/slixmpp!114
2021-02-03 21:56:10 +01:00
mathieui
a16792e990 basexmpp: type self.plugins in a more useful manner 2021-02-03 21:53:43 +01:00
mathieui
6448d09c30 Merge branch 'docs-change-theme' into 'master'
docs: change theme to furo

See merge request poezio/slixmpp!113
2021-01-31 20:41:46 +01:00
mathieui
a85e5225f9 docs: change theme to furo
it looks better, and has a dark mode
2021-01-31 20:37:33 +01:00
mathieui
3c19f69c25 Merge branch 'join-wait-timeout-none' into 'master'
XEP-0045: make the join_muc_wait timeout parameter optional

See merge request poezio/slixmpp!112
2021-01-31 19:41:40 +01:00
mathieui
846c42e386 XEP-0045: make the join_muc_wait timeout parameter optional 2021-01-31 19:39:12 +01:00
mathieui
1f97462391 Merge branch 'muc-sync-join' into 'master'
XEP-0045: Add new directed events and a join_muc_wait function

See merge request poezio/slixmpp!111
2021-01-31 18:17:54 +01:00
mathieui
c7d87a27e1 XEP-0045: Add a join_muc_wait function
Which is async, raises on timeout or error, and returns when
joined.
2021-01-31 17:15:47 +01:00
mathieui
a8113dca49 XEP-0045: Add a specific handler for MUC presence errors 2021-01-31 17:15:47 +01:00
mathieui
eda692d1c6 XEP-0045: add a directed event for self-presence 2021-01-31 17:02:51 +01:00
mathieui
7932a03378 xmlstream: add a simple contextmanager for temporary events 2021-01-31 17:01:41 +01:00
mathieui
e9b07e32bb exceptions: add a PresenceError exception 2021-01-31 17:00:42 +01:00
mathieui
8689212602 Merge branch 'mix-additions' into 'master'
MIX additions: handle MIX-PAM with roster and new events

See merge request poezio/slixmpp!108
2021-01-31 12:48:44 +01:00
mathieui
68649d0089 Merge branch 'update-doc-xep-titles' into 'master'
doc: update XEP titles

See merge request poezio/slixmpp!110
2021-01-30 19:04:11 +01:00
mathieui
473575d276 doc: update XEP titles 2021-01-30 19:01:38 +01:00
mathieui
ab9b7115de Merge branch 'fix-xep-descriptions' into 'master'
xeps: fix description for the newer plugins

See merge request poezio/slixmpp!109
2021-01-30 18:55:20 +01:00
mathieui
58f4ccf5c7 xeps: fix description for the newer plugins 2021-01-30 18:52:54 +01:00
mathieui
f41fd7cce4 examples: add an example MIX bot
(does the same as the current MUC bot)
2021-01-30 18:39:28 +01:00
mathieui
04a3f609e2 XEP-0405: Manage MIX Roster items 2021-01-30 18:17:12 +01:00
mathieui
119f59ecbe XEP-0369: Add events for channel/participants 2021-01-30 17:42:20 +01:00
mathieui
ee671dfb29 Merge branch 'next-version-1.7.0' into 'master'
Increment version to 1.7.0

See merge request poezio/slixmpp!107
2021-01-29 21:57:26 +01:00
mathieui
d954283fb6 version: update to 1.7.0 2021-01-29 21:50:43 +01:00
mathieui
ed2c03fade DOAP: add an 1.7.0 entry
also remove some duplicate description tags
2021-01-29 21:50:22 +01:00
Link Mauve
a381267d21 Merge branch 'connect-basic-itests' into 'master'
tests: add basic reconnect/connect integration tests

See merge request poezio/slixmpp!106
2021-01-29 16:51:05 +01:00
mathieui
1e1576473b tests: add basic reconnect/connect integration tests 2021-01-29 16:48:30 +01:00
Link Mauve
dbcd0c6050 Merge branch 'reconnect-logic-doomed' into 'master'
fix reconnect logic

See merge request poezio/slixmpp!104
2021-01-29 16:11:29 +01:00
mathieui
f93af07882 XEP-0198: do not send acks when disconnected 2021-01-29 16:07:44 +01:00
mathieui
3f739e513b xmlstream: keep value of "end_session_on_disconnect"
That value should be set statically. Worst case is we fail to resume the
session.
2021-01-29 15:33:44 +01:00
mathieui
fc7d7b4eb7 XEP-0198: Enable SM even if we failed resuming the session
And trigger session_end only after we fail the resuming.
2021-01-29 15:33:44 +01:00
mathieui
3642e2c7f4 xmlstream: ensure slow futures are scheduled on this loop 2021-01-29 15:33:44 +01:00
mathieui
f15311bda8 xmlstream: Make the reconnect handler a coroutine 2021-01-29 15:33:44 +01:00
mathieui
b2dfb4c1f3 xmlstream: do not touch connection state on abort()
leave it to the connection_lost handler
2021-01-29 15:33:44 +01:00
mathieui
d227579d56 xmlstream: set disconnected future on event 2021-01-29 15:33:44 +01:00
mathieui
571774edb4 xmlstream: end the parser when the stream has ended 2021-01-29 15:33:44 +01:00
mathieui
456dff0b61 xmlstream: rename run_filters 2021-01-29 15:33:44 +01:00
mathieui
a0b6bfcefe xmlstream: change the connection logic
* use asyncio wait_for to wait for a disconnected event
* abort the connection if the timeout is not enough
2021-01-29 15:33:44 +01:00
mathieui
9fbd40578c xmlstream: purge send queue and pending tasks on session end
and keep track of slow tasks
2021-01-29 15:33:44 +01:00
mathieui
8700f8d162 xmlstream: do not cancel the send filter task
it does not make sense to cancel it, it does not do anything when the
sending queue is empty, and clients should not fill the send queue when
not connected anyway.
2021-01-28 17:54:40 +01:00
mathieui
efdcd396d8 xmlstream: fix race conditions on handlers 2021-01-28 17:54:40 +01:00
mathieui
0eed84d0b2 xmlstream: handle done tasks in wait_until
and handle other loops properly
2021-01-28 17:54:40 +01:00
mathieui
370abb1d98 Merge branch 'block-threaded-examples-docs' into 'master'
Remove the remaining block and threaded from examples

See merge request poezio/slixmpp!105
2021-01-27 00:20:31 +01:00
mathieui
51866f0d46 docs: update the tutorials a bit 2021-01-27 00:16:56 +01:00
mathieui
9390794401 examples: updates to reflect asyncio 2021-01-27 00:09:26 +01:00
mathieui
70b5081018 Merge branch 'xep-0382-spoiler-messages' into 'master'
XEP-0382: Spoiler Messages

See merge request poezio/slixmpp!100
2021-01-27 00:07:36 +01:00
mathieui
4cb679ae2a Merge branch 'fix-emoji-update' into 'master'
XEP-0444: Fix emoji detection

See merge request poezio/slixmpp!103
2021-01-24 11:33:57 +01:00
mathieui
ab280b44cc XEP-0444: Fix emoji detection
the emoji lib just released a major release after 5 years, which breaks
the API. This new code is compatible with both.
2021-01-24 11:31:17 +01:00
mathieui
0193667ace Merge branch 'ping-cancel-iqs-on-session-end' into 'master'
Cancel  0199 pings on session end

See merge request poezio/slixmpp!102
2021-01-24 11:30:51 +01:00
mathieui
9cb5131f1c XEP-0199: Fix handler default parameter, add typing
Clear futures when disabling the keepalive, and do it on every
disconnect instead of only at session end.
2021-01-24 11:20:43 +01:00
mathieui
0bf1b96859 Merge branch 'handle-connection-errors-in-starttls' into 'master'
Handle connection errors in start_tls (fix #3449)

Closes #3449

See merge request poezio/slixmpp!101
2021-01-24 10:30:45 +01:00
mathieui
c6a0da63ae XEP-0199: cancel ongoing handlers on session end
and keep track of them but be careful to not store too many

fix for #3442
2021-01-22 22:57:15 +01:00
mathieui
3f10dfe138 iq: only update the future if it is not done 2021-01-22 22:55:39 +01:00
mathieui
49577e6c84 Handle connection errors in start_tls (fix #3449) 2021-01-22 22:04:41 +01:00
mathieui
04dcc8628d XEP-0382: update DOAP file 2021-01-22 19:24:11 +01:00
mathieui
81ebf4e8ba XEP-0382: Spoiler Messages 2021-01-22 18:40:37 +01:00
mathieui
b784b68bcd Merge branch 'disconnect-event-after-cleanup' into 'master'
XMLStream: Only fire "disconnected" after removal of related objects

See merge request poezio/slixmpp!99
2021-01-19 21:12:52 +01:00
mathieui
f38c61a6b9 XMLStream: Only fire "disconnected" after removal of related objects
Otherwise we could end up reconnecting and getting some useful things
like the XML parser or other stuff removed afterwards.

Also, move 'session_end' before 'disconnected', it makes more sense that
way.
2021-01-17 18:30:57 +01:00
Link Mauve
2631b25e3e Merge branch 'ad-mucjoin-component-event' into 'master'
XEP-0045: Add a groupchat_join MUC event for components

See merge request poezio/slixmpp!98
2021-01-12 20:36:36 +01:00
mathieui
2b11d81b86 XEP-0045: Add a groupchat_join MUC event for components 2021-01-12 20:29:27 +01:00
Link Mauve
ca465032e7 Merge branch 'xep-0045-fixes-misc' into 'master'
Misc fixes for XEP-0045

See merge request poezio/slixmpp!97
2021-01-10 15:12:20 +01:00
mathieui
6369ee0e5f XEP-0045: Better component handling 2021-01-10 15:07:48 +01:00
mathieui
1e23167ce4 XEP-0045: Better "groupchat_presence" targeting
(do not make EVERY SINGLE presence go through the 0045 handler)
2021-01-10 15:07:48 +01:00
mathieui
cccc1253aa XEP-0045: add more elements (<actor/>) 2021-01-10 15:07:48 +01:00
mathieui
fb31e9c1fd Merge branch 'test-skip-dependency' into 'master'
CI: Skip test if the emoji dep is not here

See merge request poezio/slixmpp!96
2021-01-10 11:27:48 +01:00
mathieui
b4dd1e0132 CI: Skip test if the emoji dep is not here 2021-01-10 11:12:00 +01:00
Link Mauve
525855c17b Fix homepage in DOAP. Thanks mathieui! 2021-01-01 14:35:55 +01:00
mathieui
ce0d615786 Merge branch 'muc-mypy-fixes' into 'master'
XEP-0045: Fix issues found by mypy

See merge request poezio/slixmpp!95
2020-12-27 19:44:31 +01:00
Emmanuel Gil Peyrot
1e08c90018 XEP-0045: Add a set_subject() helper 2020-12-27 02:59:43 +01:00
Emmanuel Gil Peyrot
c05cafc963 XEP-0045: Add missing reason for affiliation and role changes
This is especially useful for ban/kick reasons.
2020-12-27 02:59:09 +01:00
Emmanuel Gil Peyrot
166b265de0 XEP-0045: Fix issues found by mypy 2020-12-27 01:14:17 +01:00
mathieui
d91eea3a3a Merge branch 'fix-moderation-stanzaid' into 'master'
XEP-0425: Use stanzaid in integration test

See merge request poezio/slixmpp!93
2020-12-14 19:04:50 +01:00
mathieui
569b9c5ee2 XEP-0425: Use stanzaid in integration test
It only worked due to a prosody quirk
2020-12-14 18:59:51 +01:00
Maxime Buquet
a3ca4c11c3 Merge branch 'retract-in-groupchats' into 'master'
XEP-0424: fire event even with groupchat messages

See merge request poezio/slixmpp!92
2020-12-13 23:39:12 +01:00
mathieui
489e419e38 XEP-0424: fire event even with groupchat messages 2020-12-13 22:48:17 +01:00
Link Mauve
0b2594aa2c Merge branch 'doap-predict-next-version' into 'master'
doap: add next release link

See merge request poezio/slixmpp!91
2020-12-12 16:59:36 +01:00
mathieui
1b3a00c894 doap: add next release link 2020-12-12 16:57:07 +01:00
Link Mauve
ef201b6ae9 Merge branch 'oopsdate-doap' into 'master'
doap: replace NEXT with 1.6.0

See merge request poezio/slixmpp!90
2020-12-12 16:55:03 +01:00
mathieui
69af0fc1dc doap: replace NEXT with 1.6.0 2020-12-12 16:52:42 +01:00
mathieui
7ecdc7fced Merge branch 'update-slix-version' into 'master'
Release: update version to 1.6.0

See merge request poezio/slixmpp!89
2020-12-12 16:44:34 +01:00
mathieui
39c624f958 Release: update version to 1.6.0 2020-12-12 16:43:29 +01:00
Link Mauve
4c9591d5c9 Merge branch 'create-extras-require' into 'master'
setup.py: Move emoji and aiohttp to extras_require

See merge request poezio/slixmpp!88
2020-12-12 16:33:15 +01:00
mathieui
31841ef3bf setup.py: Move emoji and aiohttp to extras_require 2020-12-12 16:30:34 +01:00
Link Mauve
6773dc4409 Merge branch 'fix-moderation' into 'master'
XEP-0425: small fix & integration test

See merge request poezio/slixmpp!86
2020-12-12 14:51:25 +01:00
Link Mauve
71888b24a6 Merge branch 'retraction-event' into 'master'
XEP-0424: Add an event for message retraction

See merge request poezio/slixmpp!87
2020-12-12 14:45:49 +01:00
mathieui
3b00c56bdc XEP-0424: Add an event for message retraction
+ update the integration test
2020-12-12 14:43:18 +01:00
mathieui
bf17c32705 XEP-0425: Add integration test 2020-12-12 14:34:43 +01:00
mathieui
bc58c5a045 XEP-0425: Fix plugin registration, and add element 2020-12-12 14:33:48 +01:00
Link Mauve
d6be776640 Merge branch 'move-plugin-index-away' into 'master'
docs: move the plugin index away from the main page

See merge request poezio/slixmpp!85
2020-12-10 21:15:17 +01:00
mathieui
878870255f docs: move the plugin index away from the main page
it’s too big
2020-12-10 20:45:26 +01:00
Link Mauve
1e2d15b8f5 Merge branch 'docs-event-sphinx-plugins' into 'master'
Docs: add more events, add plugins to the doc

See merge request poezio/slixmpp!84
2020-12-10 19:45:30 +01:00
mathieui
155fc58a22 docs: add sphinx_autodoc_typehints dep 2020-12-10 19:22:40 +01:00
mathieui
95d40a3ca3 docs: update docstrings for sphinx conformity
Remove most references to timeout/callback/ifrom/timeout_callbacks args
2020-12-10 19:22:40 +01:00
mathieui
010bf6dd70 docs: fix rest issues 2020-12-10 19:22:40 +01:00
mathieui
9d61655215 docs: Add plugins 2020-12-10 19:22:40 +01:00
mathieui
f768a980d8 docs: update event index 2020-12-10 19:22:38 +01:00
mathieui
d371828041 Merge branch 'rai' into 'master'
XEP-0437: Room Activity Indicators

See merge request poezio/slixmpp!83
2020-12-08 18:59:04 +01:00
mathieui
b63dc3bc8c XEP-047: Room Activity Indicators
Implement the XEP
2020-12-08 18:56:26 +01:00
Link Mauve
8258202681 Merge branch 'xep-0333-fixes' into 'master'
XEP-0333: Fix some issues

See merge request poezio/slixmpp!80
2020-12-07 21:25:18 +01:00
Link Mauve
c892fba778 Merge branch 'xep-0439-improved' into 'master'
XEP-0439: add events & tests

See merge request poezio/slixmpp!82
2020-12-07 21:21:43 +01:00
mathieui
758dfb930c XEP-0439: add integration tests 2020-12-07 20:59:04 +01:00
mathieui
91c3d64ca2 XEP-0439: Add events 2020-12-07 20:58:16 +01:00
mathieui
340b0f0f16 Merge branch 'no-emoji-required' into 'master'
CI: do not require the emoji package

See merge request poezio/slixmpp!81
2020-12-07 20:32:27 +01:00
mathieui
a1ef32a122 CI: do not require the emoji package 2020-12-06 21:58:10 +01:00
mathieui
ef6dab81b9 itests: Add a chat markers test 2020-12-06 21:45:53 +01:00
mathieui
b3e2a8eb91 XEP-0333: Add missing feature, and a send_marker method 2020-12-06 21:45:22 +01:00
mathieui
11ac5867ff XEP-0333: Rename plugin file from "hints" to "markers" 2020-12-06 21:29:11 +01:00
mathieui
a61f2248fd Merge branch 'update-readme' into 'master'
README: document integration tests

See merge request poezio/slixmpp!79
2020-12-06 21:01:16 +01:00
mathieui
7a4ea4c1ae README: document integration tests 2020-12-06 20:59:00 +01:00
Link Mauve
c0acb7e34f Merge branch 'more-tests' into 'master'
Add more integration tests

See merge request poezio/slixmpp!78
2020-12-06 19:24:08 +01:00
mathieui
c89a21463f XEP-0444: fix a mistake in plugin_end 2020-12-06 18:59:59 +01:00
mathieui
1836b2b887 itests: add another bunch of tests 2020-12-06 18:59:59 +01:00
mathieui
12e3c9988d itests: fix muc test name 2020-12-06 18:59:59 +01:00
mathieui
b8f368acf3 Integration tests: parallelize client connects 2020-12-06 18:41:21 +01:00
mathieui
bcd8cf085f Merge branch 'no-ordered-stuff' into 'master'
Remove usage of OrderedDict

See merge request poezio/slixmpp!77
2020-12-06 17:08:00 +01:00
Emmanuel Gil Peyrot
cd4c9f82fc Remove OrderedDict usage
We now support only Python 3.7+, this means we can rely on dict being
ordered by order of insertion, and thus no need to use OrderedDict from
collections.
2020-12-06 17:00:47 +01:00
mathieui
73cc2a4008 Merge branch 'first-integration-tests' into 'master'
First integration tests

See merge request poezio/slixmpp!75
2020-12-05 17:37:50 +01:00
Link Mauve
aa5d422f38 Merge branch 'doap' into 'master'
DOAP di doap

See merge request poezio/slixmpp!76
2020-12-05 01:20:45 +01:00
Emmanuel Gil Peyrot
684247b375 XEP-0352: Only enable the feature on ClientXMPP 2020-12-05 01:05:16 +01:00
Emmanuel Gil Peyrot
6db5bb65d3 XEP-0300: Fix tests 2020-12-05 01:00:52 +01:00
Emmanuel Gil Peyrot
cc96e4a6e7 Plugins: Update the list to match what’s available
Piugins for deprecated and obsolete XEPs aren’t loaded by default
anymore.
2020-12-05 01:00:27 +01:00
Emmanuel Gil Peyrot
bb3c61f6e0 DOAP: Add all of the releases 2020-12-04 23:58:13 +01:00
Emmanuel Gil Peyrot
2c764b7c7d DOAP: List the correct versions and support status 2020-12-04 23:58:09 +01:00
mathieui
77587a4843 CI: add integration tests to the gitlab pipeline 2020-12-04 23:08:00 +01:00
mathieui
2cb2fcefbf Add some very basic integration tests 2020-12-04 23:06:50 +01:00
mathieui
d3dc09ce94 CI: add a script to run integration tests
(same as run_tests.py, but use adifferent directory)
2020-12-04 23:04:21 +01:00
mathieui
e6d1badb81 CI: Add helper for integration tests 2020-12-04 23:01:54 +01:00
mathieui
3d1e539d2b XMLStream: Add a wait_until coroutine
It will set a disposable handler on an event and wait on it with a
specific timeout. Useful for integration tests without callback hell.
2020-12-04 22:59:34 +01:00
Link Mauve
05749c4969 Merge branch 'more-xeps' into 'master'
Add a batch of newer XEPs

See merge request poezio/slixmpp!69
2020-12-04 20:03:32 +01:00
mathieui
c2b09c5c83 Update doap.xml 2020-12-04 19:49:41 +01:00
mathieui
fdb0749cd1 XEP-0422,0424,0425,0439: Add basic stanza tests 2020-12-04 19:45:05 +01:00
mathieui
2c523d1a3b XEP-0439: Quick Response 2020-12-04 19:42:23 +01:00
mathieui
41dea80d94 XEP-0425: Message Moderation 2020-12-04 19:42:23 +01:00
mathieui
c4ca15a040 XEP-0424: Message Retraction 2020-12-04 19:14:32 +01:00
mathieui
54d556280a XEP-0428: Fallback Indication 2020-12-04 19:14:32 +01:00
mathieui
c63e9a32b9 XEP-0359: Unique and Stable Stanza IDs
(was partially supported in places before)
2020-12-04 19:14:30 +01:00
mathieui
58c3579f74 XEP-0422: Message Fastening 2020-12-04 19:13:55 +01:00
Link Mauve
e592a46c99 Merge branch 'add-363' into 'master'
XEP-0363: Add 0363 to the extension list

See merge request poezio/slixmpp!74
2020-12-04 19:12:34 +01:00
mathieui
fa6fe5e851 CI: install aiohttp as well 2020-12-04 19:10:46 +01:00
mathieui
6c52843d71 XEP-0363: Add 0363 to the extension list 2020-12-04 18:55:55 +01:00
Link Mauve
d660e447ee Merge branch 'fix-reactions' into 'master'
XEP-0444: Fix session_bind()

See merge request poezio/slixmpp!73
2020-12-04 18:36:25 +01:00
mathieui
70cf35e9bf XEP-0444: Fix session_bind()
wrong method called: remove_feature instead of del_feature
2020-12-04 18:34:27 +01:00
mathieui
5c5780503a Merge branch 'xep-0353' into 'master'
XEP-0353: Jingle Message Initiation

See merge request poezio/slixmpp!72
2020-12-04 13:14:24 +01:00
Emmanuel Gil Peyrot
203628d707 XEP-0353: Jingle Message Initiation 2020-12-04 12:38:59 +01:00
Link Mauve
922ad8d9ea Merge branch 'muc-more' into 'master'
MUC: Fix invite/decline issue and add basic stanza tests

See merge request poezio/slixmpp!71
2020-12-04 00:30:13 +01:00
mathieui
8eb756d55c XEP-0045: Add basic stanza tests 2020-12-04 00:27:26 +01:00
mathieui
4da1c8573e XEP-0045: Register the missing invite/decline element 2020-12-04 00:22:22 +01:00
mathieui
380f0e4e38 Tests: Remove tabnanny
it is not actively useful and takes 70% of the time of the tests
2020-12-04 00:20:51 +01:00
mathieui
56f44dc47d Merge branch 'muc-improvements' into 'master'
MUC improvements

See merge request poezio/slixmpp!70
2020-12-03 23:50:14 +01:00
mathieui
fa7e33110f XEP-0045: Misc small fixes. 2020-12-03 23:28:27 +01:00
mathieui
7033bc0061 XEP-0045: Better invitation handling 2020-12-03 23:28:27 +01:00
mathieui
98b9a6f9e3 XEP-0045: Remove "self" returns from stanza methods 2020-12-03 23:28:27 +01:00
mathieui
de548fbcce XEP-0045: Add status_codes interface to the MUC element 2020-12-03 23:28:27 +01:00
mathieui
af46efc12a Merge branch 'doap' into 'master'
DOAP: Add the list of XEPs we support

See merge request poezio/slixmpp!68
2020-12-02 19:30:08 +01:00
Emmanuel Gil Peyrot
88132def60 DOAP: Add the list of XEPs we support
This comes from slixmpp/plugins/__init__.py
2020-12-02 19:27:58 +01:00
Link Mauve
26db6175f2 Merge branch 'doap' into 'master'
doap.xml

See merge request poezio/slixmpp!54
2020-12-02 19:22:53 +01:00
mathieui
4d5586f4a1 Merge branch 'mix-implementation' into 'master'
First try at a MIX implementation

See merge request poezio/slixmpp!63
2020-12-02 19:19:14 +01:00
mathieui
4eb2bb7da8 ElementBase: serialize JID objects as strings automatically
This is a shortcut to avoid defining custom methods each time a
substanza containing a JID exists in a plugin.

Same thing with attributes, there is no place where we do not want this.
2020-12-02 19:17:33 +01:00
mathieui
15bf6bc827 XEP-0405: add basic stanza tests 2020-12-02 19:17:33 +01:00
mathieui
3d1615ea54 XEP-0369: add basic stanza tests 2020-12-02 19:17:33 +01:00
mathieui
350f85a8d1 XEP-0403: MIX-Presence 2020-12-02 19:17:33 +01:00
mathieui
b62ea49de3 XEP-0404: MIX-Anon: JID hidden channels
(not found)
2020-12-02 19:17:33 +01:00
mathieui
bdc12c00c6 XEP-0405: MIX-PAM 2020-12-02 19:17:33 +01:00
mathieui
51cc459bd0 XEP-0369: MIX-Core 2020-12-02 19:17:33 +01:00
Link Mauve
54b9721f3a Merge branch 'xep-0047-fix-sequence-number' into 'master'
XEP-0047: Fix the max sequence number

See merge request poezio/slixmpp!67
2020-12-02 17:28:03 +01:00
Link Mauve
c20b72376e Merge branch 'muc-update' into 'master'
XEP-0045 examples: remove wait arg to join_muc calls

See merge request poezio/slixmpp!66
2020-12-02 17:27:47 +01:00
mathieui
b27510f05b XEP-0047: Fix the max sequence number
The max seq allowed according to the XEP is 65535, therefore we must
modulo using 65536 to allow that value.
2020-12-01 20:13:34 +01:00
mathieui
45a14871ee Examples: remove wait arg to join_muc calls
it hasn’t worked in years, and I removed it recently
2020-12-01 19:51:33 +01:00
mathieui
6ff5162fb4 Merge branch 'adhoc-execute-next' into 'master'
Allow execute to be used with the meaning of 'next'.

Closes #3432

See merge request poezio/slixmpp!13
2020-11-27 20:21:12 +01:00
mathieui
c3a6352a6b Merge branch 'fix-xep_0115-disco-component' into 'master'
Fix 'from' attribute missing for ComponentXMPP Disco IQ

Closes #3455

See merge request poezio/slixmpp!60
2020-11-27 20:06:53 +01:00
Link Mauve
086dc894d1 Merge branch 'remove-protoxep-occupantid' into 'master'
Remove protoxep_occupantid

See merge request poezio/slixmpp!65
2020-11-27 20:03:41 +01:00
mathieui
a245ba54bd Remove protoxep_occupantid
And fix some minor details in 0421 plugin.
2020-11-27 20:02:03 +01:00
Link Mauve
c86a6ad299 Merge branch 'xep-0444-and-not-protoxep' into 'master'
Promote protoxep_reactions to XEP-0444

See merge request poezio/slixmpp!64
2020-11-27 19:54:13 +01:00
mathieui
7e4b664742 Install emoji in docker 2020-11-27 19:46:42 +01:00
mathieui
ddc3974d1b Update protoxep_reactions to XEP-0444 2020-11-27 19:44:13 +01:00
Link Mauve
9b5ab741c8 Merge branch 'xep-45-misc-fixes' into 'master'
Misc fixes for xep-0045

See merge request poezio/slixmpp!62
2020-11-26 20:48:44 +01:00
mathieui
a9a7bdc6c3 XEP-0045: update methods for asyncio & stanza, typing
- This rewrites most of the stuff in the plugin by using the newly added
  elements instead of raw ElementTree stuff with hardcoded namespaces.
- Adds methods for affiliation/roles
- Adds some type hints
- Fix many cases where the call would simply not work since slixmpp
  exists (and break the API but it was already broken ¯\_(ツ)_/¯)
2020-11-26 20:47:21 +01:00
mathieui
fe68d19f91 XEP-0045: register the new elements & reformat init 2020-11-22 18:11:18 +01:00
mathieui
fe46643f2f XEP-0045: add more stanza elements 2020-11-22 18:11:18 +01:00
Maxime Buquet
985505297c Merge branch 'master' into 'master'
Cancel run_filters task upon disconnect

See merge request poezio/slixmpp!57
2020-10-01 17:15:06 +02:00
Maxime Buquet
0b38eeaa4a Merge branch 'xep-0363-callback-fix' into 'master'
XEP-0363 fix: call callback when receiving the upload slot.

See merge request poezio/slixmpp!58
2020-10-01 13:52:28 +02:00
Maxime Buquet
4dbabfa211 Merge branch 'stanzabase-docstring' into 'master'
StanzaBase.send: remove inexisting param in docstring -- thanks elghinn

See merge request poezio/slixmpp!61
2020-10-01 13:08:44 +02:00
Maxime “pep” Buquet
57c8196d9c
StanzaBase.send: remove inexisting param in docstring -- thanks elghinn
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-10-01 13:06:37 +02:00
aearil
f90713cb9e Fix 'from' attribute missing for ComponentXMPP Disco IQ
Fixes #3455

This reuses the 'to' attribute of the received presence as a 'from' for
the Disco IQ. I don't know if this is the best way to do it, but in
testing with a simple component it fixed the error.

Also I'm not sure whether pres['to'] would also be valid when
is_component is False.
2020-08-05 20:35:30 -04:00
Maxime Buquet
9b9ace97f4 Merge branch 'muc-package' into 'master'
XEP-0045: Move into a package module. Add MUCMessage stanza plugin

See merge request poezio/slixmpp!56
2020-07-08 11:03:23 +02:00
Maxime “pep” Buquet
d497f94e6f Revert "Merge branch 'muc-stanza-format' into 'master'"
This reverts commit cde9ac123d, reversing
changes made to bb61f0f39d.
2020-07-08 10:53:03 +02:00
Maxime Buquet
cde9ac123d Merge branch 'muc-stanza-format' into 'master'
Muc stanza format

See merge request poezio/slixmpp!59
2020-07-08 10:23:05 +02:00
Maxime “pep” Buquet
c8d1eaa2dc
xep_0045: also return default value when attr doesn't exist
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-07-08 10:21:16 +02:00
Maxime “pep” Buquet
200e1a6128
xep_0045: Make format string actually format strings
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-07-08 10:20:58 +02:00
cnngimenez
9c7f3d59d8 XEP-363 fix: call callback when receiving the upload slot. 2020-06-28 21:01:40 -03:00
ehendrix23
145bb7a36e Cancel run_filters task upon disconnect 2020-06-12 19:03:58 +02:00
Maxime “pep” Buquet
67fb5fe4c3 XEP-0045: register_stanza_plgin(Message, MUCMessage)
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 23:35:31 +02:00
Maxime “pep” Buquet
605a58a864 XEP-0045: Split __init__
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 23:35:31 +02:00
Maxime “pep” Buquet
a3d343b253 XEP-0045: Add MUCMessage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 23:35:31 +02:00
Maxime “pep” Buquet
d58f59980f XEP-0045: Remove unused MUCPresence attributes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 23:35:31 +02:00
Maxime “pep” Buquet
9e8ac6b769 XEP-0045: Add some types in stanza
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 23:35:31 +02:00
Maxime “pep” Buquet
3b3eed544e
XEP-0045: Add stanza.NS* consts
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 17:27:51 +02:00
Maxime “pep” Buquet
03ee9bc4cc
XEP-0045: Split stanza into sub-module
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 17:25:18 +02:00
Maxime “pep” Buquet
4fad5c62ce
XEP-0045: Remove useless Python2-ness
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 14:15:28 +02:00
Maxime “pep” Buquet
5ccae3ce2a
XEP-0045: Change to a package module
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 14:15:04 +02:00
Maxime “pep” Buquet
a104e3722e
XEP-0045: Move into a package module. Add MUCMessage stanza plugin
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-29 01:33:32 +02:00
mathieui
bb61f0f39d Merge branch 'xep-0421' into 'master'
New XEP: 0421 Occupant-id

See merge request poezio/slixmpp!55
2020-05-28 00:35:48 +02:00
Maxime “pep” Buquet
a29ce4b547
XEP-0421: Add shorthand to namespace
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-27 23:45:41 +02:00
Maxime “pep” Buquet
07b1a4c1cd XEP-0421: add has_feature helper
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-27 22:39:52 +02:00
Maxime “pep” Buquet
cec34686fc New XEP: 0421 Occupant-id
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-27 22:39:52 +02:00
Maxime “pep” Buquet
03148ed92e
WIP: doap.xml
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-24 22:59:05 +02:00
Maxime Buquet
6f4e9b485f Merge branch 'plugin-377' into 'master'
Add a plugin for XEP-0377: spam reporting

See merge request poezio/slixmpp!53
2020-05-24 15:05:24 +02:00
mathieui
28123083f7 Add stanza tests for 0377 2020-05-24 15:00:20 +02:00
mathieui
ef961392be Enforce <spam/> and <abuse/> quantity constraints 2020-05-24 13:46:47 +02:00
mathieui
2e31de3f45 Add a plugin for XEP-0377: spam reporting 2020-05-24 13:33:51 +02:00
mathieui
8a52730f11 Merge branch 'tutorial' into 'master'
Tutorial - english and polish version.

See merge request poezio/slixmpp!33
2020-05-24 13:05:56 +02:00
mathieui
04df50feac Merge branch 'release-slix-1.5.2' into 'master'
Update version to 1.5.2

See merge request poezio/slixmpp!52
2020-05-23 23:46:01 +02:00
mathieui
c7bd224182 Update version to 1.5.2 2020-05-23 23:43:27 +02:00
mathieui
bac1e9b44a Merge branch 'muc-presence' into 'master'
xep_0045: don't create empty item

See merge request poezio/slixmpp!51
2020-05-22 16:32:27 +02:00
Maxime “pep” Buquet
b62f0e90c1
xep_0045: don't create empty item
Only create an item if an attribute is set. Don't create it when reading
if it wasn't already present.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-20 00:37:46 +02:00
mathieui
9ace053992 Merge branch 'upload-filetoobig' into 'master'
xep_0363: pass more information to FileTooBig exception

See merge request poezio/slixmpp!50
2020-05-12 01:53:00 +02:00
Maxime “pep” Buquet
c7cd2fcf33
xep_0363: pass more information to FileTooBig exception
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-12 01:49:56 +02:00
Maxime Buquet
e57289358f Merge branch 'upload-disco-form' into 'master'
xep_0363: Ensure every form in disco#info is read

See merge request poezio/slixmpp!49
2020-05-12 01:04:41 +02:00
Maxime “pep” Buquet
4aa35c11ab
xep_0363: Ensure every form in disco#info is read
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-12 01:03:50 +02:00
mathieui
d6f7d32bbe Merge branch 'version-1.5.1' into 'master'
Update version to 1.5.1

See merge request poezio/slixmpp!47
2020-05-02 19:44:54 +02:00
mathieui
0dd32be7f5 Update version to 1.5.1
1.5.0 changed what could be expected to be sent before calling
  disconnect(), this fixes it.
2020-05-02 19:39:21 +02:00
Maxime Buquet
bf69698af1 Merge branch 'add-forever-false-examples' into 'master'
Add forever=False to some examples to make them terminate

See merge request poezio/slixmpp!46
2020-05-02 17:54:50 +02:00
Maxime Buquet
aa732b3c94 Merge branch 'fix-disconnect-send-queue' into 'master'
Fix a regression introduced in 1.5.0

See merge request poezio/slixmpp!45
2020-05-02 17:35:17 +02:00
mathieui
d076cef023 Add forever=False to some examples to make them terminate 2020-05-02 17:34:11 +02:00
mathieui
f884b67b8b Fix a regression introduced in 1.5.0
Due to the send queue, messages sent immediatly before calling
"disconnect" would not be sent.
2020-05-02 17:17:08 +02:00
Maxime Buquet
0d3116dbdf Merge branch 'fix-start-handlers' into 'master'
Change session_start callback to async in most examples

See merge request poezio/slixmpp!44
2020-05-02 16:51:51 +02:00
mathieui
f1ab9ab964 Change session_start callback to async in most examples
If we fetch the roster, we should probably wait until we get it back
2020-05-02 16:47:04 +02:00
mathieui
e520ab1f5e Merge branch 'release-1.5.0' into 'master'
Update version to 1.5.0

See merge request poezio/slixmpp!43
2020-05-01 16:00:58 +02:00
mathieui
3dcb96d9d8 Update version to 1.5.0 2020-05-01 15:26:24 +02:00
Maxime Buquet
0a7a4c3abe Merge branch 'python-version' into 'master'
Update Python version minimum requirement to 3.7

See merge request poezio/slixmpp!42
2020-05-01 15:14:49 +02:00
Maxime “pep” Buquet
a4bbc404ed
Update Python version minimum requirement to 3.7
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-05-01 15:13:19 +02:00
Paulina
1314e70460 Changing the use of 'threading' in python for more suitable 'subprocesses'. Change of English names to Polish equivalents, as requested by the authors. 2020-04-14 21:21:35 +02:00
Paulina
f84bfce5f3 Correction and editing of the tutorials.
[100%] English version
     [100%] Polish version
     [100%] Both version consistency check
     [98 %] Final sanity check + formating
2020-04-10 12:37:31 +02:00
Maxime “pep” Buquet
c3fbc6cb80 xep_0196: Use correct tag local name (thanks ivucica)
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-06 12:57:12 +02:00
Maxime “pep” Buquet
355d789061 docs: remove andyet logo/link on every page
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2020-04-06 12:57:12 +02:00
mathieui
47ed67c04e Merge branch 'add-github-pr-template' into 'master'
Add a github pull request template

See merge request poezio/slixmpp!41
2020-04-04 20:06:23 +02:00
mathieui
34567f450a
Add a github pull request template 2020-04-04 20:04:23 +02:00
mathieui
9126bd8392 Merge branch 'fix-deprecations' into 'master'
Fix deprecation warning regarding invalid escape sequences.

See merge request poezio/slixmpp!40
2020-04-04 18:53:15 +02:00
mathieui
02202f7cd8 Merge branch 'fix-nonetype-error' into 'master'
Fix an issue when deleting subelements: TypeError: 'NoneType' object is not an iterator

See merge request poezio/slixmpp!39
2020-04-04 18:44:25 +02:00
jheling
2add94f5b0
Fix TypeError: 'NoneType' object is not an iterator
When deleting sub-elements in a stanza.
2020-04-04 18:42:48 +02:00
Karthikeyan Singaravelan
5fc757f200 Fix deprecation warning regarding invalid escape sequences. 2020-04-04 16:08:44 +00:00
mathieui
98108d0445 Merge branch 'fix-celementtree-import' into 'master'
cElementTree has been deprecated since Python 3.3 and removed in Python 3.9.

See merge request poezio/slixmpp!38
2020-04-04 17:55:11 +02:00
Maxime Buquet
76f4fb49d6 Merge branch 'sync-fixes' into 'master'
Sync fixes

See merge request poezio/slixmpp!37
2020-04-04 15:28:59 +02:00
Georg Lukas
5be46a5e68 fire 'disconnected' callback from abort() 2020-04-04 13:16:33 +02:00
Georg Lukas
ab9040c30e expose is_connecting state based on connection attempt future 2020-04-04 13:16:31 +02:00
Maxime Buquet
a16e2a0f6c Merge branch 'fix-0198' into 'master'
XEP-0198: unset end_session_on_disconnect on resume/enable

See merge request poezio/slixmpp!36
2020-03-29 14:28:06 +02:00
Maxime Buquet
842aa3be8f Merge branch 'fix-reconnect-2.0' into 'master'
Reset reconnect delay on manual reconnect, add delay event

See merge request poezio/slixmpp!35
2020-03-29 14:26:15 +02:00
Georg Lukas
6c28b49e7f XEP-0198: unset end_session_on_disconnect on resume/enable 2020-03-29 14:21:40 +02:00
Georg Lukas
621255027d Reset reconnect delay on manual reconnect, add delay event
This is just a hotfix workaround for an underlying problem. The
`_connect_routine` code is "blocking" (in an async way) for
`connect_loop_wait` seconds, so that a fresh-started manual reconnect
will be silenty delayed. This code does the following changes:

1. It moves the delay to before the DNS resolution (with the exponential
   back-off it might well be that the DNS records are changed while
   slixmpp is waiting).

2. It adds a new event `reconnect_delay` that gets passed the number of
   seconds it will delay before actually reconnecting

3. It resets the `connect_loop_wait` timer on a manual connect/reconnect
   call to fix the interactive experience.

A *proper fix* would replace the sleep in `_connect_routine` with a
properly timered re-invocation of it, but I don't understand enough of
asyncio for pulling off that magic, and this is actually a proper
improvement. Also I tested this and it works!
2020-03-29 14:21:05 +02:00
Maxime Buquet
efe316dc8c Merge branch 'fix-0198' into 'master'
XEP-0198: properly disable on disconnect, fix reconnect-loop

See merge request poezio/slixmpp!34
2020-03-28 22:11:52 +01:00
Maxime Buquet
e9a87a0b77 Merge branch 'master' into 'master'
reconnect: fix callback when not currently connected

See merge request poezio/slixmpp!32
2020-03-28 22:11:34 +01:00
Georg Lukas
85c9967b9c XEP-0198: fix race conditions on enable/resume
This code splits out the `enabled` property into `enabled_in` and
`enabled_out` to reflect that client and server enable 0198
asynchronously.

This also moves the actual enabling code into the stanza processing
logic, because apparently, `enable.send()` was just added into the end
of the send queue, but `enable` got enabled immediately, so that poezio
requested ACKs for whatever happened to be in the queue before.

Async is hard, let's go get fishing.
2020-03-28 21:49:18 +01:00
Georg Lukas
deb6d4f176 XEP-0198: properly disable on disconnect, fix reconnect-loop
When the connection is disconnected (but the session didn't "end",
because 0198 resumption is enabled), poezio will reconnect and try to
send an <r/> element because the 0198 plugin doesn't realize that SM
wasn't re-enabled yet.
2020-03-28 20:50:55 +01:00
Karthikeyan Singaravelan
7218bb4499 cElementTree has been deprecated since Python 3.3 and removed in Python 3.9. 2020-03-28 04:42:23 +00:00
Georg Lukas
d85efec7a2 reconnect: fix callback when not currently connected
The 'disconnected' event is normally fired from connection_lost(), which
is called by the connection code when the connection is lost after being
established. However, if the connection wasn't successfully established,
a manual /reconnect no-ops because it waits for the 'disconnected'
callback which never fires. This patch does two things:

1. Immediately fire a 'disconnected' event in disconnect() if there is
   no transport.

2. Register the 'disconnected' event handler in reconnect() *before* it
   can be fired.
2020-03-23 18:59:29 +01:00
Paulina
9fd8684c5a Correction and editing of the tutorials.
[98 %] English version
 [98  %] Polish version
 [100%] Both version consistency check
 [95 %] Final sanity check + formating
2020-03-21 17:08:31 +01:00
Paulina
fc77fb7648 Correction and editing of the tutorials.
[95 %] English version
 [95  %] Polish version
 [100%] Both version consistency check
 [95 %] Final sanity check + formating
2020-03-15 18:02:46 +01:00
Paulina
c8d802a6c7 Correction and editing of the tutorials.
[95 %] English version
            [95  %] Polish version
            [100%] Both version consistency check
            [80  %] Final sanity check + formating
2020-03-15 17:27:47 +01:00
Paulina
3529a36974 Merge branch 'tutorial' of https://lab.louiz.org/Hoacyn/slixmpp into tutorial 2020-03-15 15:27:36 +01:00
Paulina
fe6458303a Correction and editing of the tutorials.
[85 %] English version
        [90  %] Polish version
        [45 %] Both version consistency check
        [0  %] Final sanity check + formating
2020-03-15 15:26:21 +01:00
Paulina
b15d4aa0fa Correction and editing of the tutorials.
[95 %] English version
        [95 %] Polish version
        [100%] Both version consistency check
        [80 %] Final sanity check + formating
2020-03-15 15:17:00 +01:00
Paulina
01371041a3 Correction and editing of the tutorials.
[85 %] English version
    [90  %] Polish version
    [45 %] Both version consistency check
    [0  %] Final sanity check + formating
2020-03-08 21:01:51 +01:00
Paulina
9c4e3956a7 Correction and editing of the tutorials.
[80 %] English version
[0  %] Polish version
[20 %] Both version consistency check
[0  %] Final sanity check

TODO:
- comments in the code blocks
- side-by-side consistency check
2020-02-29 10:31:52 +01:00
Paulina
cd5b47f76c Eng and pl tutorials added. 2020-02-27 16:58:54 +01:00
mathieui
115c234527 Merge branch 'async-filters' into 'master'
Add async filters on the send process

See merge request poezio/slixmpp!24
2019-12-27 15:35:00 +01:00
mathieui
a0f5cb6e09
Put the queue exception at toplevel 2019-12-27 15:27:29 +01:00
mathieui
110bbf8afc
Improve the send queue code a bit 2019-12-27 15:27:29 +01:00
mathieui
d97efa0bd8
add a separate place for slow ass filters 2019-12-27 15:27:29 +01:00
mathieui
672f1b28f6
raise Exception 2019-12-27 15:27:29 +01:00
mathieui
27d3ae958b
Try/except around outbound stanza processing
to avoid killing the send loop when a filter has an error
2019-12-27 15:27:29 +01:00
mathieui
a32794ec35
Remove trailing whitespace 2019-12-27 15:27:28 +01:00
mathieui
aa11ba463e
Skip 0323 because 2019-12-27 15:27:28 +01:00
mathieui
a83c00e933
Update test framework to work with new filters
(eewww)
2019-12-27 15:27:28 +01:00
mathieui
31f6ef6814
Run the send queue in a separate coroutine
To be able to run async stream filters
2019-12-27 15:27:25 +01:00
Maxime “pep” Buquet
9b3874b5df
xep_0048: Ensure Conference jid is of type str when given a JID
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-11-11 14:00:19 +01:00
mathieui
0139fb291e
Fix a bug in the 0202 plugin where a time result would send back a result
poezio bug #3499
2019-09-19 22:54:53 +02:00
mathieui
e58988484a
Match the sender JID as well as the queryid in MAM results 2019-09-10 23:13:04 +02:00
mathieui
5d5e5cda19
Add typing/docstring in the MAM plugin 2019-09-10 22:44:46 +02:00
root
11f707987d Added amount parameter, so that limit on the msgs received per query can be changed. 2019-09-08 14:22:48 +02:00
Maxime “pep” Buquet
db13794e0f Revert "Remove a block of compatibility code"
This reverts commit 37bc1bb9b3.

Confusion confusion. Mathieui thought this was a sleekxmpp thing when
it's actually been added not so long ago.
2019-08-28 00:12:10 +02:00
mathieui
37bc1bb9b3
Remove a block of compatibility code
even if the user makes that mistake, it does not cause problems down the
line.
2019-08-26 12:00:38 +02:00
mathieui
9be30e5291
fix a typo in the invalidjid exception name case 2019-08-25 01:42:00 +02:00
Maxime Buquet
9fe20a4056 Merge branch 'origin-id' into 'master'
Implement Origin-id (XEP-0359)

See merge request poezio/slixmpp!21
2019-08-23 17:10:42 +02:00
Maxime “pep” Buquet
3253d34c0a basexmpp: Make origin-id opt-out
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-23 17:09:21 +02:00
Maxime “pep” Buquet
fef575ee1a Implement origin-id (XEP-0359)
This XEP is not implemented as a plugin but directly into Message.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-23 17:09:21 +02:00
Maxime Buquet
540ff89427 Merge branch 'mam' into 'master'
Assign 'True' to 'before' tag if it's value is 'None'.

See merge request poezio/slixmpp!26
2019-08-23 16:37:12 +02:00
root
dd8ac8fc87 Assign True to the 'before' tag if it's value is None (eg:at the start no msg is there in the group, so no stanza-id) 2019-08-23 04:39:20 +05:30
Maxime Buquet
2249d878d1 Merge branch 'mam' into 'master'
Removed assigning 'reverse' value to the 'before' tag

See merge request poezio/slixmpp!25
2019-08-23 00:03:07 +02:00
root
89fa9dc1dd Removed before tag. (Code for setting it is already there) 2019-08-23 00:21:42 +05:30
root
d7729e8683 Removed assigning 'reverse' value to the 'before' tag (It's value is set in xep_0313 (mam.py file) and if not then by default it is takes as 'None'). 2019-08-23 00:15:56 +05:30
louiz’
d618f55dea Merge branch 'mam' into 'master'
Added <before> tag for querying messages before a stanza-id.

See merge request poezio/slixmpp!23
2019-08-13 09:54:43 +02:00
Madhur Garg
b0e688eb35 Added <before> tag for querying messages before a stanza-id. 2019-08-12 23:39:01 +05:30
Maxime “pep” Buquet
0e7176483b
xep_0030: add docstring to get_info_from_domain
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-08-03 16:05:09 +02:00
Emmanuel Gil Peyrot
f35569a2c1 Remove the last instances of a block argument to iq.send().
Thanks Madhur Garg for spotting this in
027ce2434d7fd3cf4a286dd373cb761c0d114c66!
2019-08-01 22:36:59 +02:00
Link Mauve
bec6f7c8f3 Merge branch 'mam' into 'master'
Removed 'block' from set_preferences as it was giving a TypeError while sending the staza.

See merge request poezio/slixmpp!20
2019-08-01 22:30:58 +02:00
Madhur Garg
027ce2434d Removed 'block' from set_preferences as it was giving a TypeError while sending the staza. 2019-08-02 01:57:36 +05:30
Maxime Buquet
d57fbb57a2 Merge branch 'mam' into 'master'
Added a function in xep313 plugin to get current MAM preferences.

See merge request poezio/slixmpp!19
2019-07-22 22:05:05 +02:00
Madhur Garg
85cd7a9166 Added a function to get current MAM preferences. 2019-07-18 16:55:11 +05:30
Maxime “pep” Buquet
d50d996c68
xmlstream/stanzabase: remove unused interfaces and types attributes
These are already on each stanza, and were not applicable to all stanzas
anyway.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-07-16 11:26:54 +02:00
mathieui
371ad20ca7
Do not add disco#info for occupantid, it’s a server thing 2019-07-14 13:25:22 +02:00
mathieui
5f49df6b56
Add the occupant id stanza elements 2019-07-14 13:13:59 +02:00
mathieui
b50bfb2f34
Initial commit for reactions protoxep 2019-07-13 19:44:32 +02:00
Maxime “pep” Buquet
b29bb30eb7
Make generated stanza id truly random
Fix long-standing security issues where stanza @id be predictable.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-07-13 14:07:31 +02:00
Maxime “pep” Buquet
4435c81d77 xmlstream.disconnect: add compat behaviour, set wait to default 2.0 when True is passed. Update documentation
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-07-03 21:36:17 +02:00
Madhur Garg
2638ba2744 Added 'reverse' argument. 2019-07-03 14:18:33 +05:30
Madhur Garg
dbc9758311 Added 'reverse' parameter in mam and rsm plugins 2019-07-03 10:31:18 +05:30
Maxime “pep” Buquet
47968963b1
Revert part of previous commit. Return NotImplemented when object is not a valid JID
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-05-07 11:56:39 +01:00
Maxime “pep” Buquet
4e8800f954
jid: return not equal if value can't be converted to JID
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-05-07 10:08:46 +01:00
Maxime “pep” Buquet
40053518aa Merge remote-tracking branch 'origin/mr/13' 2019-04-27 12:59:23 +01:00
Maxime “pep” Buquet
1ee0f72ead
xmlstream.disconnect: fix frenchism in docstring
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24 23:35:33 +01:00
Maxime “pep” Buquet
4bb81228ae
xmlstream.disconnect: typing hints
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24 23:35:06 +01:00
Maxime “pep” Buquet
60a7a5b8df
presence: Ensure <show/> value is valid when returned as presence @type value
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24 20:29:54 +01:00
Maxime “pep” Buquet
946674f424
xep_0045: Ensure <show/> value is valid.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-24 20:28:58 +01:00
Maxime “pep” Buquet
412a9169bd
Fixes #3432. Allow execute to be used with the meaning of 'next'.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-14 02:34:22 +01:00
Maxime “pep” Buquet
72b355de8c
xep_0050: Fix indentation
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-14 02:19:58 +01:00
Maxime “pep” Buquet
af246dcfe1
slixmpp/jid: add types
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-07 23:14:44 +01:00
Maxime Buquet
9612e518fb Merge branch 'master' into 'master'
Communicate the reason for a disconnect to the application

See merge request poezio/slixmpp!12
2019-04-07 00:24:50 +02:00
Maxime “pep” Buquet
fde8264191
xep_0202: Fix plugin_init docstring
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-06 13:44:05 +01:00
Maxime “pep” Buquet
1cdc656208
Fixes poezio/poezio#3472: Don't remove TZ in 0202 utc tag
<utc/> MUST conform to 0082 dateTime profile and thus include a
timezone definition.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-06 13:42:26 +01:00
Maxime “pep” Buquet
0042108a67
poezio/poezio#3472: Ensure tz is correctly set when offset is an int
Thanks lovetox!

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-04-03 23:16:37 +01:00
Georg Lukas
704161a285 mark end-of-stream as session-ending event 2019-03-26 15:16:52 +01:00
Georg Lukas
6b1b58a339 XEP-0199: use new 0-timeout reconnect() with reason 2019-03-26 12:09:43 +01:00
Georg Lukas
4f96e5fa75 Do not directly enqueue connect() as event handler, parameter mismatch 2019-03-26 12:09:43 +01:00
Georg Lukas
bcb90a653e Do not close stream on 0-timeout disconnect, allows 0198 resume 2019-03-26 11:02:28 +01:00
Georg Lukas
7e435b703d Propagate disconnect() reason into 'disconnected' event 2019-03-26 11:01:36 +01:00
Maxime “pep” Buquet
2dda6b80d4 Partially fix poezio/poezio#3452. Prevent groupchat_subject from triggered sent when body or thread are in the message.
0045 says:
> The subject is changed by sending a message of type "groupchat" to the
> <room@service>, where the <message/> MUST contain a <subject/> element that
> specifies the new subject but MUST NOT contain a <body/> element (or a
> <thread/> element). In accordance with the core definition of XMPP, other child
> elements are allowed (although the entity that receives them might ignore
> them).
>
> Note: A message with a <subject/> and a <body/> or a <subject/> and a <thread/>
> is a legitimate message, but it SHALL NOT be interpreted as a subject change.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-03-23 17:06:07 +00:00
mathieui
5629e44710 Merge branch 'patch-1' into 'master'
Fix slixmpp.ClientXMPP.cancel_connection_attempt()

See merge request poezio/slixmpp!10
2019-03-15 00:38:35 +01:00
Maxime “pep” Buquet
6a06881d8b
xep_0030: fix typo on 'remote' in get_info docstring
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-03-05 00:00:14 +00:00
Maxime “pep” Buquet
2b666eb1de Revert "Remove license from unused project"
This reverts commit fbab3ad214.
2019-02-24 12:16:06 +00:00
Emmanuel Gil Peyrot
400e7a3903 Remove SocksiPy license
I wrote a SOCKS5 implementation back in
9c5dd024b1, and removed SocksiPy from
slixmpp’s codebase at the same time.
2019-02-24 13:02:08 +01:00
Maxime “pep” Buquet
fbab3ad214
Remove license from unused project
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-24 12:00:16 +00:00
mathieui
628b357b06 Merge branch 'eme-add-method' into 'master'
xep_0380: Add add_eme method

See merge request poezio/slixmpp!11
2019-02-23 14:07:15 +01:00
Maxime “pep” Buquet
88260cc240
xep_0380: Add add_eme method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 12:54:56 +00:00
Maxime “pep” Buquet
e9f2f503b8
xep_0380: Remove remove_handler call in plugin_end
Remove probable copy paste fail in EME plugin_end handler.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 12:36:40 +00:00
ehendrix23
696a72247b Fix slixmpp.ClientXMPP.cancel_connection_attempt() 2019-02-22 00:41:02 +01:00
Maxime “pep” Buquet
05d76e4b1d
Change more URLs to lab.louiz.org
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-12 10:34:57 +00:00
Maxime “pep” Buquet
d52d4fbbbe
Update project URLs to lab.louiz.org
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-12 10:26:04 +00:00
Maxime “pep” Buquet
e53c0fcb30 README: Add pep as a contributor
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-10 14:18:28 +00:00
Maxime “pep” Buquet
97d68c5196 setup.py: GTalk is no more
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-10 14:18:28 +00:00
mathieui
b42fafabb4
Make the cache encode and decode not crash if something goes wrong 2019-02-02 17:42:24 +01:00
mathieui
3a44ec8f15
Add tests for the cache api 2019-02-02 17:32:10 +01:00
mathieui
93f385562f
Add a "remove" action on the cache API 2019-02-02 17:31:48 +01:00
mathieui
9cab02438b
Fix XEP-0335 2019-02-02 15:41:55 +01:00
Emmanuel Gil Peyrot
74ed50e626 Set @id by default on outgoing messages and presences.
Respects RFC6120 §8.1.3’s RECOMMENDED.
2019-01-31 16:46:51 +01:00
mathieui
9d378c611c
Release 1.4.2 2019-01-31 14:50:26 +01:00
Link Mauve
d85d8f4479 Merge branch 'xep-0335' into 'master'
Add xep_0335: JSON Containers

See merge request poezio/slixmpp!5
2019-01-22 19:28:38 +01:00
Emmanuel Gil Peyrot
fb75f7cda9 Stop requesting avatar without the intervention of the client. 2019-01-22 15:12:00 +01:00
Emmanuel Gil Peyrot
41419a2161 Fix authenticating on a non-TLS socket.
This was broken since c1562b76b2.
2019-01-21 01:02:06 +01:00
Emmanuel Gil Peyrot
7cd73b594e XEP-0223: Fix default access_model, it MUST be whitelist. 2019-01-17 12:08:51 +01:00
Emmanuel Gil Peyrot
15c6b775ff Simplify the non-CDATA path of tostring.escape. 2019-01-09 15:03:05 +01:00
Emmanuel Gil Peyrot
4b482477e2 Split ns only once in fix_ns(). 2019-01-09 14:57:39 +01:00
Emmanuel Gil Peyrot
f7e4caadfe Split tag and attrib only once in tostring(). 2019-01-09 14:55:27 +01:00
Emmanuel Gil Peyrot
5f25b0b6a0 Add a default timeout to iq.send().
This fixes a leak of MatchIDSender in handlers, making it more and more
expensive to match stanzas as more iqs have been sent.
2019-01-09 14:20:31 +01:00
Mateusz Piotrowski
d228bc42ea
Mention that GnuPG is required for tests 2018-12-27 17:21:12 +01:00
mathieui
ecdc44a601 Merge branch 'master' into 'master'
Decode bytes in GSSAPI handling, as expected by the kerberos module API.

See merge request poezio/slixmpp!8
2018-12-27 16:55:47 +01:00
Emmanuel Gil Peyrot
33370e42f1 XEP-0363: Use a specific exception for HTTP errors 2018-11-20 07:44:09 +01:00
Florian Klien
4699861925 catch http upload errors on upload 2018-11-20 07:34:56 +01:00
Jelmer Vernooij
2d228bdb56
Decode bytes in GSSAPI handling, as expected by the kerberos module API. 2018-10-30 22:29:20 +00:00
mathieui
570e653ac2
Release slixmpp 1.4.1 2018-10-28 14:15:51 +01:00
mathieui
282a481059 Merge branch 'setup_dependency_fix' into 'master'
added aiohttp dependency

See merge request poezio/slixmpp!6
2018-10-28 14:08:26 +01:00
Florian Klien
f386db380b docs: auto-set copyright year to current year 2018-10-28 10:48:23 +01:00
Florian Klien
7b87d98fff auto set version of Slixmpp in Docs
getting version of slixmpp from source tree for documentation
2018-10-28 10:48:23 +01:00
Florian Klien
8779d40602 typo 2018-10-27 23:38:09 +02:00
Emmanuel Gil Peyrot
f0b21c42d5 examples: Add the possibility to use another HTTP File Upload domain. 2018-10-27 23:25:59 +02:00
Emmanuel Gil Peyrot
e241d4e3c7 XEP-0030: Don’t call the timeout_callback on each domain which doesn’t reply to disco#info. 2018-10-27 23:21:27 +02:00
Emmanuel Gil Peyrot
bd22a41a78 XEP-0363: Also check for disco#info’s feature instead of just the identity. 2018-10-27 23:14:39 +02:00
Emmanuel Gil Peyrot
a29a29227a XEP-0363: Add a domain argument to discover an upload service on a specific domain. 2018-10-27 22:51:04 +02:00
Florian Klien
d4d542b741 fixing uncaught async exceptions due to missing await
fixes uncaught exceptions in the event loop.
passing timeout and timeout_callback through.
2018-10-27 22:51:04 +02:00
Florian Klien
dc4936a6d3 added aoihttp dependency
slixmpp uses aiohttp in the XEP_0363 plugin.
2018-10-22 12:41:20 +02:00
Florian Klien
897610d819 fix: failUnlessEqual -> assertEqual 2018-10-15 14:59:23 +02:00
Florian Klien
d33366badd fixing deprecation warnings for pytest 2018-10-15 14:59:23 +02:00
mathieui
809c500002
Add the loop parameters at places where it has been forgotten 2018-10-09 12:34:56 +02:00
Emmanuel Gil Peyrot
dda4e18b81 examples: Remove unused asyncio imports. 2018-10-09 10:57:19 +02:00
Emmanuel Gil Peyrot
8c09d932c8 stanzabase: Remove python2 legacy. 2018-10-03 14:56:07 +02:00
Maxime “pep” Buquet
31f5e84671
Add xep_0335: JSON Containers
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-09-16 22:13:41 +01:00
louiz’
ad0dc33df9 Trigger poezio’s build if this ours succeeded 2018-08-22 23:19:47 +02:00
Emmanuel Gil Peyrot
7c3b3827b4 jid: Make property aliases proper aliases. 2018-08-20 00:23:21 +01:00
Emmanuel Gil Peyrot
9f6fa65139 examples, tests: Replace all @asyncio.coroutines with proper async functions. 2018-08-19 17:47:26 +01:00
mathieui
35fa33e3c2
Release slixmpp 1.4.0 2018-08-12 21:11:21 +02:00
mathieui
86a2f280d2
Document that slixmpp is now 3.5+ only 2018-08-08 23:42:22 +02:00
mathieui
490f15b8fc
Fix compatibility with python 3.5 and 3.6
which do not have loop.start_tls and require the old ssl implementation.
2018-08-08 23:35:33 +02:00
Emmanuel Gil Peyrot
62661ee04f xep_0092: Return <service-unavailable/> instead. Fixes #3415. 2018-08-08 16:52:40 +02:00
Emmanuel Gil Peyrot
37d1f2a6b0 xep_0092: Send a <forbidden/> error if we don’t want to send our version. (thanks lovetox!) 2018-08-08 16:49:16 +02:00
mathieui
20107ad516
features/starttls: handle the case where the socket is an sslobject
Thanks pep.
2018-08-07 23:30:41 +02:00
mathieui
7738a01311
Fix TLS with python 3.7
Use the "new" sslproto API instead of the deprecated TLS API.
Also remove the unused "socket" parameter in XMLStream.__init__.
2018-08-07 23:20:38 +02:00
mathieui
a9abed6151
xep-0054: XMPP clients should not reply to vcard "get" requests 2018-08-07 21:30:13 +02:00
Emmanuel Gil Peyrot
0f690d4005 tests: Fix the XEP-0323 stream test, broken since 59d4420739.
Thanks debacle!
2018-08-02 21:27:19 +02:00
Emmanuel Gil Peyrot
59d4420739 XEP-0323: Display the requested time in addition to the current time on error. 2018-07-29 10:37:28 +02:00
Emmanuel Gil Peyrot
a88f317bbf XEP-0009: Fix invalid function name under Python 3.7. 2018-07-24 18:21:03 +02:00
Link Mauve
2fc2a88970 Merge branch 'factor_find_identities' into 'master'
Factor find identities

See merge request poezio/slixmpp!2
2018-07-22 12:49:37 +02:00
Emmanuel Gil Peyrot
c55e9279ac Fix missing async def in function. 2018-07-02 14:33:21 +02:00
Emmanuel Gil Peyrot
3502480384 Switch from @asyncio.coroutine to async def everywhere. 2018-07-01 18:46:33 +02:00
Maxime “pep” Buquet
caae713dd6
xep_0030: rename find_identities; return all domain infos and let caller filter itself
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:36:26 +01:00
Maxime “pep” Buquet
df0198abfe
xep_0030: Add callback parameter to find_identities
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:32:00 +01:00
Maxime “pep” Buquet
c20f4bf5fa xep_0030: Add cached parameter to find_identities, defaults to True
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:29:31 +01:00
Maxime “pep” Buquet
9740e93aeb xep_0030: Pass kwargs down in find_identities
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:29:31 +01:00
Maxime “pep” Buquet
e7872aaa29 xep_0030: Use self directly as we're already in disco
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:29:31 +01:00
Maxime “pep” Buquet
037706552c Factor out fetching of identities in xep_0363 to xep_0030
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:29:31 +01:00
Maxime “pep” Buquet
b881c6729b xep_0363: Remove unused parameters to find_upload_services
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-01 01:29:31 +01:00
Emmanuel Gil Peyrot
66909aafb3 XEP-0153: Prevent a panic when the BINVAL is invalid. 2018-06-23 14:34:24 +02:00
louiz’
cdfb5d56fc apt install gpg before running the ci tests 2018-06-10 21:40:56 +02:00
Emmanuel Gil Peyrot
d146ce9fb6 examples: Display only the form, and not the entire stanza. 2018-05-13 21:26:47 +02:00
Emmanuel Gil Peyrot
cb59d60034 examples: Display the actual cause for a failed command. 2018-05-13 21:21:06 +02:00
Emmanuel Gil Peyrot
1d9fe3553e examples: Use the existing get_node_config function. 2018-05-13 21:13:22 +02:00
Emmanuel Gil Peyrot
fe66c022ad Revert "XEP-0060: Add support for node configuration."
This reverts commit dd7f67d10d.
2018-05-13 21:12:46 +02:00
Emmanuel Gil Peyrot
92ea131721 examples: Add support for node configuration to pubsub_client. 2018-05-13 20:57:48 +02:00
Emmanuel Gil Peyrot
dd7f67d10d XEP-0060: Add support for node configuration. 2018-05-13 20:47:21 +02:00
Emmanuel Gil Peyrot
c1562b76b2 slixmpp is Python 3.4.4+, remove check for channel binding. 2018-03-31 02:22:53 +02:00
Emmanuel Gil Peyrot
32839f5252 util.cache: Let the user select the bare JID or not. 2018-03-31 00:44:53 +02:00
Emmanuel Gil Peyrot
80b7cf6ff8 util.cache: Support None for encode and decode. 2018-03-31 00:44:23 +02:00
Emmanuel Gil Peyrot
128cc2eeb4 XEP-0115: Use the new cache system. 2018-03-31 00:25:28 +02:00
Emmanuel Gil Peyrot
037912ee89 util.cache: New module handling both in-memory and on-file system caching. 2018-03-31 00:24:21 +02:00
Emmanuel Gil Peyrot
769bc6d3bf session: Also fire the session_start event. 2018-03-14 19:39:01 +01:00
Emmanuel Gil Peyrot
084d6cb5d9 session: Don’t bind if it is optional.
See https://tools.ietf.org/html/draft-cridland-xmpp-session-01
2018-03-14 18:54:17 +01:00
Emmanuel Gil Peyrot
5184713356 Rearm an iq callback if it was addressed to ourself. 2018-03-14 17:37:55 +01:00
Emmanuel Gil Peyrot
2f1225bad3 Carry the node attribute to the disco#info result.
Fixes #3323.
2018-03-14 16:25:21 +01:00
Emmanuel Gil Peyrot
841f5a5a5b xep_0363: Only send the basename() of the filename to the server. 2018-03-11 19:40:15 +01:00
Emmanuel Gil Peyrot
0c6de5e972 xep_0363: Simplify Content-Type guessing. 2018-03-11 19:39:51 +01:00
Emmanuel Gil Peyrot
81dc61c55c xep_0363: Fix max_file_size variable name. 2018-03-11 19:39:30 +01:00
Emmanuel Gil Peyrot
bd63b1ce70 Simplify usage of HTTP File Upload plugin.
This makes it usable only on Python 3.5, as documented.
2018-03-08 14:29:07 +01:00
Emmanuel Gil Peyrot
29faf114a7 Add max-file-size support to HTTP File Upload example. 2018-03-08 12:11:26 +01:00
Emmanuel Gil Peyrot
94ea8151d4 Add an HTTP File Upload example. 2018-03-08 03:39:23 +01:00
Emmanuel Gil Peyrot
66500ef5fb Add an HTTP File Upload plugin. 2018-03-08 03:38:59 +01:00
mathieui
979396bb1e
asyncio.async has been scheduled for removal for a long time now
move to asyncio.ensure_future
2018-02-11 19:25:38 +01:00
mathieui
e177726387
Fix usage of the 0004 plugin interface
form['fields'] is an ordered list of fields while most plugins expect a
dict there. Fixes, among other things, a caps bug.
2018-02-11 16:42:59 +01:00
Emmanuel Gil Peyrot
20e88fda50 Fix typos, thanks codespell! 2018-01-10 02:18:07 +01:00
Emmanuel Gil Peyrot
f252be9b6d XEP-0115: Fix typo. 2018-01-05 18:03:42 +01:00
Emmanuel Gil Peyrot
ee98159586 Test all known python versions in travais 2017-12-27 15:49:52 +01:00
Emmanuel Gil Peyrot
c6443af29a stringprep: Make pure-Python punycode() return bytes.
Fixes #3366.
2017-12-27 15:48:42 +01:00
mathieui
d73f56a7af
Release slixmpp 1.3.0 2017-11-28 20:16:08 +01:00
Emmanuel Gil Peyrot
7c7f4308c5 Add a Markup plugin. 2017-11-23 12:18:01 +00:00
mathieui
eab8c265f4
Record the current connection attempt in a future and allow cancellation
It does not make sense to have competing connection attempts, as the
XMLStream class is not designed for this. On slow and unpredictable
networks, it means we could have two c2s connections opened, leading to
mayhem.
2017-11-23 00:00:37 +01:00
784 changed files with 28997 additions and 10408 deletions

2
.gitignore vendored
View File

@ -13,3 +13,5 @@ slixmpp.egg-info/
.baboon/
.DS_STORE
.idea/
.vscode/
venv/

View File

@ -1,8 +0,0 @@
test:
tags:
- docker
image: ubuntu:latest
script:
- apt update
- apt install -y python3 cython3
- ./run_tests.py

22
.readthedocs.yaml Normal file
View File

@ -0,0 +1,22 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# We recommend specifying your dependencies to enable reproducible builds:
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt

View File

@ -1,10 +0,0 @@
language: python
python:
- "2.6"
- "2.7"
- "3.2"
- "3.3"
- "3.4"
install:
- "pip install ."
script: testall.py

9
.woodpecker/lint.yml Normal file
View File

@ -0,0 +1,9 @@
when:
event: [ push, pull_request ]
steps:
mypy:
image: python:3
commands:
- pip3 install mypy types-setuptools
- mypy slixmpp

View File

@ -0,0 +1,23 @@
when:
event: [ push, pull_request ]
steps:
test_integration:
image: "python:3.11"
environment:
CI_ACCOUNT1:
from_secret: ci_account1
CI_ACCOUNT1_PASSWORD:
from_secret: ci_account1_password
CI_ACCOUNT2:
from_secret: ci_account2
CI_ACCOUNT2_PASSWORD:
from_secret: ci_account2_password
CI_MUC_SERVER:
from_secret: ci_muc_server
commands:
- apt-get update
- apt-get install -y python3-pip cython3 gpg idn libidn-dev
- pip3 install emoji aiohttp aiodns
- python3 setup.py build_ext --inplace
- ./run_integration_tests.py

19
.woodpecker/test.yml Normal file
View File

@ -0,0 +1,19 @@
when:
event: [ push, pull_request ]
steps:
unit_tests:
image: "python:${TAG}"
commands:
- apt-get update
- apt-get install -y python3 python3-pip cython3 gpg
- pip3 install emoji aiohttp cryptography setuptools
- ./run_tests.py
matrix:
TAG:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"

View File

@ -5,7 +5,7 @@ To contribute, the preferred way is to commit your changes on some
publicly-available git repository (on a fork `on github
<https://github.com/poezio/slixmpp>`_ or on your own repository) and to
notify the developers with either:
- a ticket `on the bug tracker <https://dev.poez.io/new>`_
- a ticket `on the bug tracker <https://codeberg.org/poezio/slixmpp/issues/new>`_
- a pull request on github
- a simple message on `the XMPP MUC <xmpp:slixmpp@muc.poez.io>`_

View File

@ -1,6 +1,7 @@
Pre-requisites:
- Python 3.4
- Python 3.7+
- Cython 0.22 and libidn, optionally (making JID faster by compiling the stringprep module)
- GnuPG, for testing
Install:
> python3 setup.py install

53
LICENSE
View File

@ -86,34 +86,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
OrderedDict - A port of the Python 2.7+ OrderedDict to Python 2.6
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright (c) 2009 Raymond Hettinger
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
SUELTA A PURE-PYTHON SASL CLIENT LIBRARY
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -167,28 +139,3 @@ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
socksipy: A Python SOCKS client module.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright 2006 Dan-Haim. All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of Dan Haim nor the names of his contributors may be used
to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY DAN HAIM "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL DAN HAIM OR HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMANGE.

View File

@ -1,7 +1,7 @@
Slixmpp
#########
Slixmpp is an MIT licensed XMPP library for Python 3.4+. It is a fork of
Slixmpp is an MIT licensed XMPP library for Python 3.7+. It is a fork of
SleekXMPP.
Slixmpp's goals is to only rewrite the core of the library (the low level
@ -31,6 +31,21 @@ To run the test suite for Slixmpp::
python run_tests.py
Integration tests require the following environment variables to be set:::
$CI_ACCOUNT1
$CI_ACCOUNT1_PASSWORD
$CI_ACCOUNT2
$CI_ACCOUNT2_PASSWORD
$CI_MUC_SERVER
where the account variables are JIDs of valid, existing accounts, and
the passwords are the account passwords. The MUC server must allow room
creation from those JIDs.
To run the integration test suite for Slixmpp::
python run_integration_tests.py
The Slixmpp Boilerplate
-------------------------
@ -113,6 +128,7 @@ Slixmpp Credits
- Gasper Zejn (`Gasper Zejn <mailto:zejn@kiberpipa.org>`_)
- Krzysztof Kotlenga (`Krzysztof Kotlenga <mailto:pocek@users.sf.net>`_)
- Tsukasa Hiiragi (`Tsukasa Hiiragi <mailto:bakalolka@gmail.com>`_)
- Maxime Buquet (`pep <xmpp:pep@bouah.net?message>`_)
Credits (SleekXMPP)
-------------------

1138
doap.xml Normal file

File diff suppressed because it is too large Load Diff

452
docs/_static/agogo.css vendored
View File

@ -1,452 +0,0 @@
/*
* agogo.css_t
* ~~~~~~~~~~~
*
* Sphinx stylesheet -- agogo theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
* {
margin: 0px;
padding: 0px;
}
body {
font-family: "Verdana", Arial, sans-serif;
line-height: 1.4em;
color: black;
background-color: #eeeeec;
}
/* Page layout */
div.header, div.content, div.footer {
width: 70em;
margin-left: auto;
margin-right: auto;
}
div.header-wrapper {
background: url(bgtop.png) top left repeat-x;
border-bottom: 3px solid #2e3436;
}
/* Default body styles */
a {
color: #ce5c00;
}
div.bodywrapper a, div.footer a {
text-decoration: underline;
}
.clearer {
clear: both;
}
.left {
float: left;
}
.right {
float: right;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
h1, h2, h3, h4 {
font-family: "Georgia", "Times New Roman", serif;
font-weight: normal;
color: #3465a4;
margin-bottom: .8em;
}
h1 {
color: #204a87;
}
h2 {
padding-bottom: .5em;
border-bottom: 1px solid #3465a4;
}
a.headerlink {
visibility: hidden;
color: #dddddd;
padding-left: .3em;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
img {
border: 0;
}
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 2px 7px 1px 7px;
border-left: 0.2em solid black;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
dt:target, .highlighted {
background-color: #fbe54e;
}
/* Header */
div.header {
padding-top: 10px;
padding-bottom: 10px;
}
div.header h1 {
font-family: "Georgia", "Times New Roman", serif;
font-weight: normal;
font-size: 180%;
letter-spacing: .08em;
}
div.header h1 a {
color: white;
}
div.header div.rel {
margin-top: 1em;
}
div.header div.rel a {
color: #fcaf3e;
letter-spacing: .1em;
text-transform: uppercase;
}
p.logo {
float: right;
}
img.logo {
border: 0;
}
/* Content */
div.content-wrapper {
background-color: white;
padding-top: 20px;
padding-bottom: 20px;
}
div.document {
width: 50em;
float: left;
}
div.body {
padding-right: 2em;
text-align: justify;
}
div.document ul {
margin: 1.5em;
list-style-type: square;
}
div.document dd {
margin-left: 1.2em;
margin-top: .4em;
margin-bottom: 1em;
}
div.document .section {
margin-top: 1.7em;
}
div.document .section:first-child {
margin-top: 0px;
}
div.document div.highlight {
padding: 3px;
background-color: #eeeeec;
border-top: 2px solid #dddddd;
border-bottom: 2px solid #dddddd;
margin-top: .8em;
margin-bottom: .8em;
}
div.document h2 {
margin-top: .7em;
}
div.document p {
margin-bottom: .5em;
}
div.document li.toctree-l1 {
margin-bottom: 1em;
}
div.document .descname {
font-weight: bold;
}
div.document .docutils.literal {
background-color: #eeeeec;
padding: 1px;
}
div.document .docutils.xref.literal {
background-color: transparent;
padding: 0px;
}
div.document blockquote {
margin: 1em;
}
div.document ol {
margin: 1.5em;
}
/* Sidebar */
div.sidebar {
width: 20em;
float: right;
font-size: .9em;
}
div.sidebar a, div.header a {
text-decoration: none;
}
div.sidebar a:hover, div.header a:hover {
text-decoration: underline;
}
div.sidebar h3 {
color: #2e3436;
text-transform: uppercase;
font-size: 130%;
letter-spacing: .1em;
}
div.sidebar ul {
list-style-type: none;
}
div.sidebar li.toctree-l1 a {
display: block;
padding: 1px;
border: 1px solid #dddddd;
background-color: #eeeeec;
margin-bottom: .4em;
padding-left: 3px;
color: #2e3436;
}
div.sidebar li.toctree-l2 a {
background-color: transparent;
border: none;
margin-left: 1em;
border-bottom: 1px solid #dddddd;
}
div.sidebar li.toctree-l3 a {
background-color: transparent;
border: none;
margin-left: 2em;
border-bottom: 1px solid #dddddd;
}
div.sidebar li.toctree-l2:last-child a {
border-bottom: none;
}
div.sidebar li.toctree-l1.current a {
border-right: 5px solid #fcaf3e;
}
div.sidebar li.toctree-l1.current li.toctree-l2 a {
border-right: none;
}
/* Footer */
div.footer-wrapper {
background: url(bgfooter.png) top left repeat-x;
border-top: 4px solid #babdb6;
padding-top: 10px;
padding-bottom: 10px;
min-height: 80px;
}
div.footer, div.footer a {
color: #888a85;
}
div.footer .right {
text-align: right;
}
div.footer .left {
text-transform: uppercase;
}
/* Styles copied from basic theme */
img.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
clear: both;
text-align: center;
}
.align-right {
text-align: right;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
/* -- viewcode extension ---------------------------------------------------- */
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family:: "Verdana", Arial, sans-serif;
}
div.viewcode-block:target {
margin: -1px -3px;
padding: 0 3px;
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

532
docs/_static/basic.css vendored
View File

@ -1,532 +0,0 @@
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 230px;
margin-left: -100%;
font-size: 90%;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
img {
border: 0;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- general body styles --------------------------------------------------- */
a.headerlink {
visibility: hidden;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.field-list ul {
padding-left: 1em;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
clear: both;
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px 7px 0 7px;
background-color: #efefef;
width: 40%;
float: right;
-mox-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
p.sidebar-title {
font-weight: bold;
text-transform: uppercase;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px 7px 0 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
div.admonition dl {
margin-bottom: 0;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
border: 0;
border-collapse: collapse;
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.field-list td, table.field-list th {
border: 0 !important;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
dl {
margin-bottom: 15px;
}
dd p {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dt:target, .highlighted {
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.refcount {
color: #060;
}
.optional {
font-size: 1.3em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
td.linenos pre {
padding: 5px 0px;
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
margin-left: 0.5em;
}
table.highlighttable td {
padding: 0 0.5em 0 0.5em;
}
tt.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
tt.descclassname {
background-color: transparent;
}
tt.xref, a tt {
background-color: transparent;
font-weight: bold;
}
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}

View File

@ -1,256 +0,0 @@
/*
* default.css_t
* ~~~~~~~~~~~~~
*
* Sphinx stylesheet -- default theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: sans-serif;
font-size: 100%;
background-color: #11303d;
color: #000;
margin: 0;
padding: 0;
}
div.document {
background-color: #1c4e63;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 230px;
}
div.body {
background-color: #ffffff;
color: #000000;
padding: 0 20px 30px 20px;
}
div.footer {
color: #ffffff;
width: 100%;
padding: 9px 0 9px 0;
text-align: center;
font-size: 75%;
}
div.footer a {
color: #ffffff;
text-decoration: underline;
}
div.related {
background-color: #133f52;
line-height: 30px;
color: #ffffff;
}
div.related a {
color: #ffffff;
}
div.sphinxsidebar {
}
div.sphinxsidebar h3 {
font-family: 'Trebuchet MS', sans-serif;
color: #ffffff;
font-size: 1.4em;
font-weight: normal;
margin: 0;
padding: 0;
}
div.sphinxsidebar h3 a {
color: #ffffff;
}
div.sphinxsidebar h4 {
font-family: 'Trebuchet MS', sans-serif;
color: #ffffff;
font-size: 1.3em;
font-weight: normal;
margin: 5px 0 0 0;
padding: 0;
}
div.sphinxsidebar p {
color: #ffffff;
}
div.sphinxsidebar p.topless {
margin: 5px 10px 10px 10px;
}
div.sphinxsidebar ul {
margin: 10px;
padding: 0;
color: #ffffff;
}
div.sphinxsidebar a {
color: #98dbcc;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
/* -- hyperlink styles ------------------------------------------------------ */
a {
color: #355f7c;
text-decoration: none;
}
a:visited {
color: #355f7c;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* -- body styles ----------------------------------------------------------- */
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: 'Trebuchet MS', sans-serif;
background-color: #f2f2f2;
font-weight: normal;
color: #20435c;
border-bottom: 1px solid #ccc;
margin: 20px -20px 10px -20px;
padding: 3px 0 3px 10px;
}
div.body h1 { margin-top: 0; font-size: 200%; }
div.body h2 { font-size: 160%; }
div.body h3 { font-size: 140%; }
div.body h4 { font-size: 120%; }
div.body h5 { font-size: 110%; }
div.body h6 { font-size: 100%; }
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
padding: 0 4px 0 4px;
text-decoration: none;
}
a.headerlink:hover {
background-color: #c60f0f;
color: white;
}
div.body p, div.body dd, div.body li {
text-align: justify;
line-height: 130%;
}
div.admonition p.admonition-title + p {
display: inline;
}
div.admonition p {
margin-bottom: 5px;
}
div.admonition pre {
margin-bottom: 5px;
}
div.admonition ul, div.admonition ol {
margin-bottom: 5px;
}
div.note {
background-color: #eee;
border: 1px solid #ccc;
}
div.seealso {
background-color: #ffc;
border: 1px solid #ff6;
}
div.topic {
background-color: #eee;
}
div.warning {
background-color: #ffe4e4;
border: 1px solid #f66;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre {
padding: 5px;
background-color: #eeffcc;
color: #333333;
line-height: 120%;
border: 1px solid #ac9;
border-left: none;
border-right: none;
}
tt {
background-color: #ecf0f3;
padding: 0 1px 0 1px;
font-size: 0.95em;
}
th {
background-color: #ede;
}
.warning tt {
background: #efc2c2;
}
.note tt {
background: #d6d6d6;
}
.viewcode-back {
font-family: sans-serif;
}
div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

431
docs/_static/haiku.css vendored
View File

@ -1,431 +0,0 @@
/*
* haiku.css_t
* ~~~~~~~~~~~
*
* Sphinx stylesheet -- haiku theme.
*
* Adapted from http://haiku-os.org/docs/Haiku-doc.css.
* Original copyright message:
*
* Copyright 2008-2009, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Francois Revol <revol@free.fr>
* Stephan Assmus <superstippi@gmx.de>
* Braden Ewing <brewin@gmail.com>
* Humdinger <humdingerb@gmail.com>
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@import url("basic.css");
@font-face {
font-family: "Museo Slab";
font-weight: normal;
font-style: normal;
src: local("Museo Slab"),
url("fonts/Museo_Slab_500.otf") format("opentype");
}
@font-face {
font-family: "Yanone Kaffeesatz";
font-weight: bold;
font-style: normal;
src: local("Yanone Kaffeesatz"),
url("fonts/YanoneKaffeesatz-Bold.ttf") format("truetype");
}
@font-face {
font-family: "Yanone Kaffeesatz";
font-weight: lighter;
font-style: normal;
src: local("Yanone Kaffeesatz"),
url("fonts/YanoneKaffeesatz-Regular.ttf") format("truetype");
}
html {
margin: 0px;
padding: 0px;
background: #FFF url(header.png) top left repeat-x;
}
body {
line-height: 1.5;
margin: auto;
padding: 0px;
font-family: "Helvetica Neueu", Helvetica, sans-serif;
min-width: 30em;
max-width: 70em;
color: #444;
text-align: center;
}
div.footer {
padding: 8px;
font-size: 11px;
text-align: center;
letter-spacing: 0.5px;
}
/* link colors and text decoration */
a:link {
font-weight: bold;
text-decoration: none;
color: #00ADEE;
}
a:visited {
font-weight: bold;
text-decoration: none;
color: #00ADEE;
}
a:hover, a:active {
text-decoration: underline;
color: #F46DBA;
}
/* Some headers act as anchors, don't give them a hover effect */
h1 a:hover, a:active {
text-decoration: none;
color: #CFCFCF;
}
h2 a:hover, a:active {
text-decoration: none;
color: #CFCFCF;
}
h3 a:hover, a:active {
text-decoration: none;
color: #CFCFCF;
}
h4 a:hover, a:active {
text-decoration: none;
color: #CFCFCF;
}
a.headerlink {
color: #a7ce38;
padding-left: 5px;
}
a.headerlink:hover {
color: #a7ce38;
}
/* basic text elements */
div.content {
margin: auto;
margin-top: 20px;
margin-bottom: 50px;
font-size: 0.9em;
width: 700px;
text-align: left;
}
/* heading and navigation */
div.header {
position: relative;
margin: auto;
margin-top: 125px;
height: 85px;
padding: 0 40px;
font-family: "Yanone Kaffeesatz";
text-align: left;
width: 750px;
}
div.header h1 {
font-size: 2.6em;
font-weight: normal;
letter-spacing: 1px;
color: #CFCFCF;
border: 0;
margin: 0;
padding-top: 15px;
font-family: "Yanone Kaffeesatz";
text-shadow: 1px 1px 1px rgba(175, 175, 175, .8);
font-variant: small-caps;
}
div.header h1 a {
font-weight: normal;
color: #00ADEE;
}
div.header h2 {
font-size: 1.3em;
font-weight: normal;
letter-spacing: 1px;
text-transform: uppercase;
color: #aaa;
border: 0;
margin-top: -3px;
padding: 0;
font-family: "Yanone Kaffeesatz";
}
div.header img.rightlogo {
float: right;
}
div.title {
font-size: 1.3em;
font-weight: bold;
color: #CFCFCF;
border-bottom: dotted thin #e0e0e0;
margin-bottom: 25px;
}
div.topnav {
position: relative;
z-index: 0;
}
div.topnav p {
margin: auto;
margin-top: 0;
margin-bottom: 0px;
text-align: right;
font-size: 0.8em;
width: 750px;
}
div.bottomnav {
background: #eeeeee;
}
div.bottomnav p {
margin-right: 40px;
text-align: right;
font-size: 0.8em;
}
a.uplink {
font-weight: normal;
}
/* contents box */
table.index {
margin: 0px 0px 30px 30px;
padding: 1px;
border-width: 1px;
border-style: dotted;
border-color: #e0e0e0;
}
table.index tr.heading {
background-color: #e0e0e0;
text-align: center;
font-weight: bold;
font-size: 1.1em;
}
table.index tr.index {
background-color: #eeeeee;
}
table.index td {
padding: 5px 20px;
}
table.index a:link, table.index a:visited {
font-weight: normal;
text-decoration: none;
color: #4A7389;
}
table.index a:hover, table.index a:active {
text-decoration: underline;
color: #ff4500;
}
/* Haiku User Guide styles and layout */
/* Rounded corner boxes */
/* Common declarations */
div.admonition {
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border-style: dotted;
border-width: thin;
border-color: #dcdcdc;
padding: 10px 15px 10px 15px;
margin-bottom: 15px;
margin-top: 15px;
}
div.note {
padding: 10px 15px 10px 15px;
background-color: #e4ffde;
/*background: #e4ffde url(alert_info_32.png) 15px 15px no-repeat;*/
min-height: 42px;
}
div.warning {
padding: 10px 15px 10px 15px;
background-color: #fffbc6;
/*background: #fffbc6 url(alert_warning_32.png) 15px 15px no-repeat;*/
min-height: 42px;
}
div.seealso {
background: #e4ffde;
}
/* More layout and styles */
h1 {
font-size: 1.6em;
color: #aaa;
border-bottom: dotted thin #e0e0e0;
margin-top: 30px;
font-family: "Museo Slab";
text-shadow: 1px 1px 1px rgba(175, 175, 175, .25);
}
h2 {
font-size: 1.5em;
font-weight: normal;
color: #aaa;
border-bottom: dotted thin #e0e0e0;
margin-top: 30px;
font-family: "Museo Slab";
text-shadow: 1px 1px 1px rgba(175, 175, 175, .25);
}
h3 {
font-size: 1.4em;
font-weight: normal;
color: #aaa;
margin-top: 30px;
font-family: "Museo Slab";
text-shadow: 1px 1px 1px rgba(175, 175, 175, .25);
}
h4 {
font-size: 1.3em;
font-weight: normal;
color: #CFCFCF;
margin-top: 30px;
}
p {
text-align: justify;
}
p.last {
margin-bottom: 0;
}
ol {
padding-left: 20px;
}
ul {
padding-left: 5px;
margin-top: 3px;
}
li {
line-height: 1.3;
}
div.content ul > li {
-moz-background-clip:border;
-moz-background-inline-policy:continuous;
-moz-background-origin:padding;
background: transparent url(bullet_orange.png) no-repeat scroll left 0.45em;
list-style-image: none;
list-style-type: none;
padding: 0 0 0 1.666em;
margin-bottom: 3px;
}
td {
vertical-align: top;
}
tt {
background-color: #e2e2e2;
font-size: 1.0em;
font-family: monospace;
}
pre {
font-size: 1.1em;
margin: 0 0 12px 0;
padding: 0.8em;
background-image: url(noise_dk.png);
background-color: #222;
}
hr {
border-top: 1px solid #ccc;
border-bottom: 0;
border-right: 0;
border-left: 0;
margin-bottom: 10px;
margin-top: 20px;
}
/* printer only pretty stuff */
@media print {
.noprint {
display: none;
}
/* for acronyms we want their definitions inlined at print time */
acronym[title]:after {
font-size: small;
content: " (" attr(title) ")";
font-style: italic;
}
/* and not have mozilla dotted underline */
acronym {
border: none;
}
div.topnav, div.bottomnav, div.header, table.index {
display: none;
}
div.content {
margin: 0px;
padding: 0px;
}
html {
background: #FFF;
}
}
.viewcode-back {
font-family: "DejaVu Sans", Arial, Helvetica, sans-serif;
}
div.viewcode-block:target {
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
margin: -1px -12px;
padding: 0 12px;
}
#from_andyet {
-webkit-box-shadow: #CCC 0px 0px 3px;
background: rgba(255, 255, 255, 1);
bottom: 0px;
right: 17px;
padding: 3px 10px;
position: fixed;
}
#from_andyet h2 {
background-image: url("images/from_&yet.png");
background-repeat: no-repeat;
height: 29px;
line-height: 0;
text-indent: -9999em;
width: 79px;
margin-top: 0;
margin: 0px;
padding: 0px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,70 +0,0 @@
.highlight .hll { background-color: #ffffcc }
.highlight { background: #000000; color: #f6f3e8; }
.highlight .c { color: #7C7C7C; } /* Comment */
.highlight .err { color: #f6f3e8; } /* Error */
.highlight .g { color: #f6f3e8; } /* Generic */
.highlight .k { color: #00ADEE; } /* Keyword */
.highlight .l { color: #f6f3e8; } /* Literal */
.highlight .n { color: #f6f3e8; } /* Name */
.highlight .o { color: #f6f3e8; } /* Operator */
.highlight .x { color: #f6f3e8; } /* Other */
.highlight .p { color: #f6f3e8; } /* Punctuation */
.highlight .cm { color: #7C7C7C; } /* Comment.Multiline */
.highlight .cp { color: #96CBFE; } /* Comment.Preproc */
.highlight .c1 { color: #7C7C7C; } /* Comment.Single */
.highlight .cs { color: #7C7C7C; } /* Comment.Special */
.highlight .gd { color: #f6f3e8; } /* Generic.Deleted */
.highlight .ge { color: #f6f3e8; } /* Generic.Emph */
.highlight .gr { color: #ffffff; background-color: #ff0000 } /* Generic.Error */
.highlight .gh { color: #f6f3e8; font-weight: bold; } /* Generic.Heading */
.highlight .gi { color: #f6f3e8; } /* Generic.Inserted */
.highlight .go { color: #070707; } /* Generic.Output */
.highlight .gp { color: #f6f3e8; } /* Generic.Prompt */
.highlight .gs { color: #f6f3e8; } /* Generic.Strong */
.highlight .gu { color: #f6f3e8; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #ffffff; font-weight: bold; background-color: #FF6C60 } /* Generic.Traceback */
.highlight .kc { color: #6699CC; } /* Keyword.Constant */
.highlight .kd { color: #6699CC; } /* Keyword.Declaration */
.highlight .kn { color: #6699CC; } /* Keyword.Namespace */
.highlight .kp { color: #6699CC; } /* Keyword.Pseudo */
.highlight .kr { color: #6699CC; } /* Keyword.Reserved */
.highlight .kt { color: #FFFFB6; } /* Keyword.Type */
.highlight .ld { color: #f6f3e8; } /* Literal.Date */
.highlight .m { color: #FF73FD; } /* Literal.Number */
.highlight .s { color: #F46DBA;/*#A8FF60;*/ } /* Literal.String */
.highlight .na { color: #f6f3e8; } /* Name.Attribute */
.highlight .nb { color: #f6f3e8; } /* Name.Builtin */
.highlight .nc { color: #f6f3e8; } /* Name.Class */
.highlight .no { color: #99CC99; } /* Name.Constant */
.highlight .nd { color: #f6f3e8; } /* Name.Decorator */
.highlight .ni { color: #E18964; } /* Name.Entity */
.highlight .ne { color: #f6f3e8; } /* Name.Exception */
.highlight .nf { color: #F64DBA; } /* Name.Function */
.highlight .nl { color: #f6f3e8; } /* Name.Label */
.highlight .nn { color: #f6f3e8; } /* Name.Namespace */
.highlight .nx { color: #f6f3e8; } /* Name.Other */
.highlight .py { color: #f6f3e8; } /* Name.Property */
.highlight .nt { color: #00ADEE; } /* Name.Tag */
.highlight .nv { color: #C6C5FE; } /* Name.Variable */
.highlight .ow { color: #ffffff; } /* Operator.Word */
.highlight .w { color: #f6f3e8; } /* Text.Whitespace */
.highlight .mf { color: #FF73FD; } /* Literal.Number.Float */
.highlight .mh { color: #FF73FD; } /* Literal.Number.Hex */
.highlight .mi { color: #FF73FD; } /* Literal.Number.Integer */
.highlight .mo { color: #FF73FD; } /* Literal.Number.Oct */
.highlight .sb { color: #A8FF60; } /* Literal.String.Backtick */
.highlight .sc { color: #A8FF60; } /* Literal.String.Char */
.highlight .sd { color: #A8FF60; } /* Literal.String.Doc */
.highlight .s2 { color: #A8FF60; } /* Literal.String.Double */
.highlight .se { color: #A8FF60; } /* Literal.String.Escape */
.highlight .sh { color: #A8FF60; } /* Literal.String.Heredoc */
.highlight .si { color: #A8FF60; } /* Literal.String.Interpol */
.highlight .sx { color: #A8FF60; } /* Literal.String.Other */
.highlight .sr { color: #A8FF60; } /* Literal.String.Regex */
.highlight .s1 { color: #A8FF60; } /* Literal.String.Single */
.highlight .ss { color: #A8FF60; } /* Literal.String.Symbol */
.highlight .bp { color: #f6f3e8; } /* Name.Builtin.Pseudo */
.highlight .vc { color: #C6C5FE; } /* Name.Variable.Class */
.highlight .vg { color: #C6C5FE; } /* Name.Variable.Global */
.highlight .vi { color: #C6C5FE; } /* Name.Variable.Instance */
.highlight .il { color: #FF73FD; } /* Literal.Number.Integer.Long */

View File

@ -1,245 +0,0 @@
/*
* nature.css_t
* ~~~~~~~~~~~~
*
* Sphinx stylesheet -- nature theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: Arial, sans-serif;
font-size: 100%;
background-color: #111;
color: #555;
margin: 0;
padding: 0;
}
div.documentwrapper {
float: left;
width: 100%;
}
div.bodywrapper {
margin: 0 0 0 230px;
}
hr {
border: 1px solid #B1B4B6;
}
div.document {
background-color: #eee;
}
div.body {
background-color: #ffffff;
color: #3E4349;
padding: 0 30px 30px 30px;
font-size: 0.9em;
}
div.footer {
color: #555;
width: 100%;
padding: 13px 0;
text-align: center;
font-size: 75%;
}
div.footer a {
color: #444;
text-decoration: underline;
}
div.related {
background-color: #6BA81E;
line-height: 32px;
color: #fff;
text-shadow: 0px 1px 0 #444;
font-size: 0.9em;
}
div.related a {
color: #E2F3CC;
}
div.sphinxsidebar {
font-size: 0.75em;
line-height: 1.5em;
}
div.sphinxsidebarwrapper{
padding: 20px 0;
}
div.sphinxsidebar h3,
div.sphinxsidebar h4 {
font-family: Arial, sans-serif;
color: #222;
font-size: 1.2em;
font-weight: normal;
margin: 0;
padding: 5px 10px;
background-color: #ddd;
text-shadow: 1px 1px 0 white
}
div.sphinxsidebar h4{
font-size: 1.1em;
}
div.sphinxsidebar h3 a {
color: #444;
}
div.sphinxsidebar p {
color: #888;
padding: 5px 20px;
}
div.sphinxsidebar p.topless {
}
div.sphinxsidebar ul {
margin: 10px 20px;
padding: 0;
color: #000;
}
div.sphinxsidebar a {
color: #444;
}
div.sphinxsidebar input {
border: 1px solid #ccc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar input[type=text]{
margin-left: 20px;
}
/* -- body styles ----------------------------------------------------------- */
a {
color: #005B81;
text-decoration: none;
}
a:hover {
color: #E32E00;
text-decoration: underline;
}
div.body h1,
div.body h2,
div.body h3,
div.body h4,
div.body h5,
div.body h6 {
font-family: Arial, sans-serif;
background-color: #BED4EB;
font-weight: normal;
color: #212224;
margin: 30px 0px 10px 0px;
padding: 5px 0 5px 10px;
text-shadow: 0px 1px 0 white
}
div.body h1 { border-top: 20px solid white; margin-top: 0; font-size: 200%; }
div.body h2 { font-size: 150%; background-color: #C8D5E3; }
div.body h3 { font-size: 120%; background-color: #D8DEE3; }
div.body h4 { font-size: 110%; background-color: #D8DEE3; }
div.body h5 { font-size: 100%; background-color: #D8DEE3; }
div.body h6 { font-size: 100%; background-color: #D8DEE3; }
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
padding: 0 4px 0 4px;
text-decoration: none;
}
a.headerlink:hover {
background-color: #c60f0f;
color: white;
}
div.body p, div.body dd, div.body li {
line-height: 1.5em;
}
div.admonition p.admonition-title + p {
display: inline;
}
div.highlight{
background-color: white;
}
div.note {
background-color: #eee;
border: 1px solid #ccc;
}
div.seealso {
background-color: #ffc;
border: 1px solid #ff6;
}
div.topic {
background-color: #eee;
}
div.warning {
background-color: #ffe4e4;
border: 1px solid #f66;
}
p.admonition-title {
display: inline;
}
p.admonition-title:after {
content: ":";
}
pre {
padding: 10px;
background-color: White;
color: #222;
line-height: 1.2em;
border: 1px solid #C6C9CB;
font-size: 1.1em;
margin: 1.5em 0 1.5em 0;
-webkit-box-shadow: 1px 1px 1px #d8d8d8;
-moz-box-shadow: 1px 1px 1px #d8d8d8;
}
tt {
background-color: #ecf0f3;
color: #222;
/* padding: 1px 2px; */
font-size: 1.1em;
font-family: monospace;
}
.viewcode-back {
font-family: Arial, sans-serif;
}
div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,70 +0,0 @@
.highlight .hll { background-color: #ffffcc }
.highlight { background: #000000; color: #f6f3e8; }
.highlight .c { color: #7C7C7C; } /* Comment */
.highlight .err { color: #f6f3e8; } /* Error */
.highlight .g { color: #f6f3e8; } /* Generic */
.highlight .k { color: #00ADEE; } /* Keyword */
.highlight .l { color: #f6f3e8; } /* Literal */
.highlight .n { color: #f6f3e8; } /* Name */
.highlight .o { color: #f6f3e8; } /* Operator */
.highlight .x { color: #f6f3e8; } /* Other */
.highlight .p { color: #f6f3e8; } /* Punctuation */
.highlight .cm { color: #7C7C7C; } /* Comment.Multiline */
.highlight .cp { color: #96CBFE; } /* Comment.Preproc */
.highlight .c1 { color: #7C7C7C; } /* Comment.Single */
.highlight .cs { color: #7C7C7C; } /* Comment.Special */
.highlight .gd { color: #f6f3e8; } /* Generic.Deleted */
.highlight .ge { color: #f6f3e8; } /* Generic.Emph */
.highlight .gr { color: #ffffff; background-color: #ff0000 } /* Generic.Error */
.highlight .gh { color: #f6f3e8; font-weight: bold; } /* Generic.Heading */
.highlight .gi { color: #f6f3e8; } /* Generic.Inserted */
.highlight .go { color: #070707; } /* Generic.Output */
.highlight .gp { color: #f6f3e8; } /* Generic.Prompt */
.highlight .gs { color: #f6f3e8; } /* Generic.Strong */
.highlight .gu { color: #f6f3e8; font-weight: bold; } /* Generic.Subheading */
.highlight .gt { color: #ffffff; font-weight: bold; background-color: #FF6C60 } /* Generic.Traceback */
.highlight .kc { color: #6699CC; } /* Keyword.Constant */
.highlight .kd { color: #6699CC; } /* Keyword.Declaration */
.highlight .kn { color: #6699CC; } /* Keyword.Namespace */
.highlight .kp { color: #6699CC; } /* Keyword.Pseudo */
.highlight .kr { color: #6699CC; } /* Keyword.Reserved */
.highlight .kt { color: #FFFFB6; } /* Keyword.Type */
.highlight .ld { color: #f6f3e8; } /* Literal.Date */
.highlight .m { color: #FF73FD; } /* Literal.Number */
.highlight .s { color: #F46DBA;/*#A8FF60;*/ } /* Literal.String */
.highlight .na { color: #f6f3e8; } /* Name.Attribute */
.highlight .nb { color: #f6f3e8; } /* Name.Builtin */
.highlight .nc { color: #f6f3e8; } /* Name.Class */
.highlight .no { color: #99CC99; } /* Name.Constant */
.highlight .nd { color: #f6f3e8; } /* Name.Decorator */
.highlight .ni { color: #E18964; } /* Name.Entity */
.highlight .ne { color: #f6f3e8; } /* Name.Exception */
.highlight .nf { color: #F64DBA; } /* Name.Function */
.highlight .nl { color: #f6f3e8; } /* Name.Label */
.highlight .nn { color: #f6f3e8; } /* Name.Namespace */
.highlight .nx { color: #f6f3e8; } /* Name.Other */
.highlight .py { color: #f6f3e8; } /* Name.Property */
.highlight .nt { color: #00ADEE; } /* Name.Tag */
.highlight .nv { color: #C6C5FE; } /* Name.Variable */
.highlight .ow { color: #ffffff; } /* Operator.Word */
.highlight .w { color: #f6f3e8; } /* Text.Whitespace */
.highlight .mf { color: #FF73FD; } /* Literal.Number.Float */
.highlight .mh { color: #FF73FD; } /* Literal.Number.Hex */
.highlight .mi { color: #FF73FD; } /* Literal.Number.Integer */
.highlight .mo { color: #FF73FD; } /* Literal.Number.Oct */
.highlight .sb { color: #A8FF60; } /* Literal.String.Backtick */
.highlight .sc { color: #A8FF60; } /* Literal.String.Char */
.highlight .sd { color: #A8FF60; } /* Literal.String.Doc */
.highlight .s2 { color: #A8FF60; } /* Literal.String.Double */
.highlight .se { color: #A8FF60; } /* Literal.String.Escape */
.highlight .sh { color: #A8FF60; } /* Literal.String.Heredoc */
.highlight .si { color: #A8FF60; } /* Literal.String.Interpol */
.highlight .sx { color: #A8FF60; } /* Literal.String.Other */
.highlight .sr { color: #A8FF60; } /* Literal.String.Regex */
.highlight .s1 { color: #A8FF60; } /* Literal.String.Single */
.highlight .ss { color: #A8FF60; } /* Literal.String.Symbol */
.highlight .bp { color: #f6f3e8; } /* Name.Builtin.Pseudo */
.highlight .vc { color: #C6C5FE; } /* Name.Variable.Class */
.highlight .vg { color: #C6C5FE; } /* Name.Variable.Global */
.highlight .vi { color: #C6C5FE; } /* Name.Variable.Instance */
.highlight .il { color: #FF73FD; } /* Literal.Number.Integer.Long */

View File

@ -1,339 +0,0 @@
/*
* sphinxdoc.css_t
* ~~~~~~~~~~~~~~~
*
* Sphinx stylesheet -- sphinxdoc theme. Originally created by
* Armin Ronacher for Werkzeug.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
@import url("basic.css");
/* -- page layout ----------------------------------------------------------- */
body {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
'Verdana', sans-serif;
font-size: 14px;
letter-spacing: -0.01em;
line-height: 150%;
text-align: center;
background-color: #BFD1D4;
color: black;
padding: 0;
border: 1px solid #aaa;
margin: 0px 80px 0px 80px;
min-width: 740px;
}
div.document {
background-color: white;
text-align: left;
background-image: url(contents.png);
background-repeat: repeat-x;
}
div.bodywrapper {
margin: 0 240px 0 0;
border-right: 1px solid #ccc;
}
div.body {
margin: 0;
padding: 0.5em 20px 20px 20px;
}
div.related {
font-size: 1em;
}
div.related ul {
background-image: url(navigation.png);
height: 2em;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
div.related ul li {
margin: 0;
padding: 0;
height: 2em;
float: left;
}
div.related ul li.right {
float: right;
margin-right: 5px;
}
div.related ul li a {
margin: 0;
padding: 0 5px 0 5px;
line-height: 1.75em;
color: #EE9816;
}
div.related ul li a:hover {
color: #3CA8E7;
}
div.sphinxsidebarwrapper {
padding: 0;
}
div.sphinxsidebar {
margin: 0;
padding: 0.5em 15px 15px 0;
width: 210px;
float: right;
font-size: 1em;
text-align: left;
}
div.sphinxsidebar h3, div.sphinxsidebar h4 {
margin: 1em 0 0.5em 0;
font-size: 1em;
padding: 0.1em 0 0.1em 0.5em;
color: white;
border: 1px solid #86989B;
background-color: #AFC1C4;
}
div.sphinxsidebar h3 a {
color: white;
}
div.sphinxsidebar ul {
padding-left: 1.5em;
margin-top: 7px;
padding: 0;
line-height: 130%;
}
div.sphinxsidebar ul ul {
margin-left: 20px;
}
div.footer {
background-color: #E3EFF1;
color: #86989B;
padding: 3px 8px 3px 0;
clear: both;
font-size: 0.8em;
text-align: right;
}
div.footer a {
color: #86989B;
text-decoration: underline;
}
/* -- body styles ----------------------------------------------------------- */
p {
margin: 0.8em 0 0.5em 0;
}
a {
color: #CA7900;
text-decoration: none;
}
a:hover {
color: #2491CF;
}
div.body a {
text-decoration: underline;
}
h1 {
margin: 0;
padding: 0.7em 0 0.3em 0;
font-size: 1.5em;
color: #11557C;
}
h2 {
margin: 1.3em 0 0.2em 0;
font-size: 1.35em;
padding: 0;
}
h3 {
margin: 1em 0 -0.3em 0;
font-size: 1.2em;
}
div.body h1 a, div.body h2 a, div.body h3 a, div.body h4 a, div.body h5 a, div.body h6 a {
color: black!important;
}
h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
display: none;
margin: 0 0 0 0.3em;
padding: 0 0.2em 0 0.2em;
color: #aaa!important;
}
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
h5:hover a.anchor, h6:hover a.anchor {
display: inline;
}
h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
h5 a.anchor:hover, h6 a.anchor:hover {
color: #777;
background-color: #eee;
}
a.headerlink {
color: #c60f0f!important;
font-size: 1em;
margin-left: 6px;
padding: 0 4px 0 4px;
text-decoration: none!important;
}
a.headerlink:hover {
background-color: #ccc;
color: white!important;
}
cite, code, tt {
font-family: 'Consolas', 'Deja Vu Sans Mono',
'Bitstream Vera Sans Mono', monospace;
font-size: 0.95em;
letter-spacing: 0.01em;
}
tt {
background-color: #f2f2f2;
border-bottom: 1px solid #ddd;
color: #333;
}
tt.descname, tt.descclassname, tt.xref {
border: 0;
}
hr {
border: 1px solid #abc;
margin: 2em;
}
a tt {
border: 0;
color: #CA7900;
}
a tt:hover {
color: #2491CF;
}
pre {
font-family: 'Consolas', 'Deja Vu Sans Mono',
'Bitstream Vera Sans Mono', monospace;
font-size: 0.95em;
letter-spacing: 0.015em;
line-height: 120%;
padding: 0.5em;
border: 1px solid #ccc;
background-color: #f8f8f8;
}
pre a {
color: inherit;
text-decoration: underline;
}
td.linenos pre {
padding: 0.5em 0;
}
div.quotebar {
background-color: #f8f8f8;
max-width: 250px;
float: right;
padding: 2px 7px;
border: 1px solid #ccc;
}
div.topic {
background-color: #f8f8f8;
}
table {
border-collapse: collapse;
margin: 0 -0.5em 0 -0.5em;
}
table td, table th {
padding: 0.2em 0.5em 0.2em 0.5em;
}
div.admonition, div.warning {
font-size: 0.9em;
margin: 1em 0 1em 0;
border: 1px solid #86989B;
background-color: #f7f7f7;
padding: 0;
}
div.admonition p, div.warning p {
margin: 0.5em 1em 0.5em 1em;
padding: 0;
}
div.admonition pre, div.warning pre {
margin: 0.4em 1em 0.4em 1em;
}
div.admonition p.admonition-title,
div.warning p.admonition-title {
margin: 0;
padding: 0.1em 0 0.1em 0.5em;
color: white;
border-bottom: 1px solid #86989B;
font-weight: bold;
background-color: #AFC1C4;
}
div.warning {
border: 1px solid #940000;
}
div.warning p.admonition-title {
background-color: #CF0000;
border-bottom-color: #940000;
}
div.admonition ul, div.admonition ol,
div.warning ul, div.warning ol {
margin: 0.1em 0.5em 0.5em 3em;
padding: 0;
}
div.versioninfo {
margin: 1em 0 0 0;
border: 1px solid #ccc;
background-color: #DDEAF0;
padding: 8px;
line-height: 1.3em;
font-size: 0.9em;
}
.viewcode-back {
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
'Verdana', sans-serif;
}
div.viewcode-block:target {
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}

View File

@ -1,70 +0,0 @@
{#
haiku/layout.html
~~~~~~~~~~~~~~~~~
Sphinx layout template for the haiku theme.
:copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
#}
{% extends "basic/layout.html" %}
{% set script_files = script_files + ['_static/theme_extras.js'] %}
{% set css_files = css_files + ['_static/print.css'] %}
{# do not display relbars #}
{% block relbar1 %}{% endblock %}
{% block relbar2 %}{% endblock %}
{% macro nav() %}
<p>
{%- block haikurel1 %}
{%- endblock %}
{%- if prev %}
«&#160;&#160;<a href="{{ prev.link|e }}">{{ prev.title }}</a>
&#160;&#160;::&#160;&#160;
{%- endif %}
<a class="uplink" href="{{ pathto(master_doc) }}">{{ _('Contents') }}</a>
{%- if next %}
&#160;&#160;::&#160;&#160;
<a href="{{ next.link|e }}">{{ next.title }}</a>&#160;&#160;»
{%- endif %}
{%- block haikurel2 %}
{%- endblock %}
</p>
{% endmacro %}
{% block content %}
<div class="header">
{%- block haikuheader %}
{%- if theme_full_logo != "false" %}
<a href="{{ pathto('index') }}">
<img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
</a>
{%- else %}
{%- if logo -%}
<img class="rightlogo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
{%- endif -%}
<h1 class="heading"><a href="{{ pathto('index') }}">
<span>{{ title|striptags }}</span></a></h1>
<h2 class="heading"><span>{{ shorttitle|e }}</span></h2>
{%- endif %}
{%- endblock %}
</div>
<div class="topnav">
{{ nav() }}
</div>
<div class="content">
{#{%- if display_toc %}
<div id="toc">
<h3>Table Of Contents</h3>
{{ toc }}
</div>
{%- endif %}#}
{% block body %}{% endblock %}
</div>
<div class="bottomnav">
{{ nav() }}
</div>
<a id="from_andyet" href="http://andyet.net"><h2>From &amp;yet</h2></a>
{% endblock %}

88
docs/api/api.rst Normal file
View File

@ -0,0 +1,88 @@
.. _internal-api:
Internal "API"
==============
Slixmpp has a generic API registry that can be used by its plugins to allow
access control, redefinition of behaviour, without having to inherit from the
plugin or do more dark magic.
The idea is that each api call can be replaced, most of them use a form
of in-memory storage that can be, for example, replaced with database
or file-based storaged.
Each plugin is assigned an API proxy bound to itself, but only a few make use
of it.
See also :ref:`api-simple-tuto`.
Description of a generic API call
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: python
def get_toto(jid, node, ifrom, args):
return 'toto'
self.xmpp.plugin['xep_XXXX'].api.register(handler, 'get_toto')
Each API call will receive 4 parameters (which can be ``None`` if data
is not relevant to the operation), which are ``jid`` (``Optional[JID]``),
``node`` (``Optional[str]``), ``ifrom`` (``Optional[JID]``), and ``args``
(``Any``).
- ``jid``, if relevant, represents the JID targeted by that operation
- ``node``, if relevant is an arbitrary string, but was thought for, e.g.,
a pubsub or disco node.
- ``ifrom``, if relevant, is the JID the event is coming from.
- ``args`` is the event-specific data passed on by the plugin, often a dict
of arguments (can be None as well).
.. note::
Since 1.8.0, API calls can be coroutines.
Handler hierarchy
~~~~~~~~~~~~~~~~~
The ``self.api.register()`` signature is as follows:
.. code-block:: python
def register(handler, op, jid=None, node=None, default=False):
pass
As you can see, :meth:`~.APIRegistry.register` takes an additional ctype
parameter, but the :class:`~.APIWrapper` takes care of that for us (in most
cases, it is the name of the XEP plugin, such as ``'xep_0XXX'``).
When you register a handler, you register it for an ``op``, for **operation**.
For example, ``get_vcard``.
``handler`` and ``op`` are the only two required parameters (and in many cases,
all you will ever need). You can, however, go further and register handlers
for specific values of the ``jid`` and ``node`` parameters of the calls.
The priority of the execution of handlers is as follows:
- Check if a handler for both values of ``node`` and ``jid`` has been defined
- If not found, check if a handler for this value of ``jid`` has been defined
- If not found, check if a handler for this value of ``node`` has been defined
- If still not found, get the global handler (no parameter registered)
Raw documentation
~~~~~~~~~~~~~~~~~
This documentation is provided for reference, but :meth:`~.APIRegistry.register`
should be all you need.
.. module:: slixmpp.api
.. autoclass:: APIRegistry
:members:
.. autoclass:: APIWrapper

17
docs/api/index.rst Normal file
View File

@ -0,0 +1,17 @@
API Reference
-------------
.. toctree::
:maxdepth: 3
clientxmpp
componentxmpp
basexmpp
exceptions
xmlstream/jid
xmlstream/stanzabase
xmlstream/handler
xmlstream/matcher
xmlstream/xmlstream
xmlstream/tostring
api

111
docs/api/plugins/index.rst Normal file
View File

@ -0,0 +1,111 @@
Plugin index
============
.. 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_0055
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_0100
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_0264
xep_0279
xep_0280
xep_0292
xep_0297
xep_0300
xep_0308
xep_0313
xep_0317
xep_0319
xep_0332
xep_0333
xep_0334
xep_0335
xep_0352
xep_0353
xep_0356
xep_0359
xep_0363
xep_0369
xep_0372
xep_0377
xep_0380
xep_0382
xep_0385
xep_0394
xep_0402
xep_0403
xep_0404
xep_0405
xep_0421
xep_0422
xep_0424
xep_0425
xep_0428
xep_0437
xep_0439
xep_0441
xep_0444
xep_0446
xep_0447
xep_0461
xep_0469
xep_0490
xep_0492

View File

@ -0,0 +1,21 @@
XEP-0004: Data Forms
====================
.. 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: Jabber-RPC
====================
.. 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,56 @@
XEP-0012: Last Activity
=======================
.. module:: slixmpp.plugins.xep_0012
.. autoclass:: XEP_0012
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0012:
Internal API methods
--------------------
This plugin uses an in-memory storage by default to keep track of the
received and sent last activities.
.. glossary::
get_last_activity
- **jid**: :class:`~.JID` of whom to retrieve the last activity
- **node**: unused
- **ifrom**: who the request is from (None = local)
- **args**: ``None`` or an :class:`~.Iq` that is requesting the
- **returns**
information.
Get the last activity of a JID from the storage.
set_last_activity
- **jid**: :class:`~.JID` of whom to set the last activity
- **node**: unused
- **ifrom**: unused
- **args**: A dict containing ``'seconds'`` and ``'status'``
``{'seconds': Optional[int], 'status': Optional[str]}``
Set the last activity of a JID in the storage.
del_last_activity
- **jid**: :class:`~.JID` to delete from the storage
- **node**: unused
- **ifrom**: unused
- **args**: unused
Remove the last activity of a JID from the storage.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0012.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0013: Flexible Offline Message Retrieval
============================================
.. 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: Feature Negotiation
=============================
.. 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,62 @@
XEP-0027: Current Jabber OpenPGP Usage
======================================
.. module:: slixmpp.plugins.xep_0027
.. autoclass:: XEP_0027
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0027:
Internal API methods
--------------------
The default API here is managing a JID→Keyid dict in-memory.
.. glossary::
get_keyid
- **jid**: :class:`~.JID` to get.
- **node**: unused
- **ifrom**: unused
- **args**: unused
- **returns**: ``Optional[str]``, the keyid or None
Get the KeyiD for a JID, None if it is not found.
set_keyid
- **jid**: :class:`~.JID` to set the id for.
- **node**: unused
- **ifrom**: unused
- **args**: ``str``, keyid to set
Set the KeyiD for a JID.
del_keyid
- **jid**: :class:`~.JID` to delete from the mapping.
- **node**: unused
- **ifrom**: unused
- **args**: unused
Delete the KeyiD for a JID.
get_keyids
- **jid**: unused
- **node**: unused
- **ifrom**: unused
- **args**: unused
- **returns**: ``Dict[JID, str]`` the full internal mapping
Get all currently stored KeyIDs.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0027.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,39 @@
XEP-0030: Service Discovery
===========================
.. module:: slixmpp.plugins.xep_0030
.. autoclass:: XEP_0030
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0030:
Internal API Methods
--------------------
All ``api`` operations supported by the 0030 plugin are implemented as part of
the :class:`~.StaticDisco` class which implement an in-memory cache for disco
info and items.
.. automodule:: slixmpp.plugins.xep_0030.static
:members:
:member-order: bysource
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0030.stanza.info
:members:
:member-order: bysource
:undoc-members:
.. automodule:: slixmpp.plugins.xep_0030.stanza.items
:members:
:member-order: bysource
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0033: Extended Stanza Addressing
====================================
.. 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,19 @@
XEP-0045: Multi-User Chat
=========================
.. module:: slixmpp.plugins.xep_0045
.. autoclass:: XEP_0045
:member-order: bysource
: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,89 @@
XEP-0047: In-band Bytestreams
=============================
.. module:: slixmpp.plugins.xep_0047
.. autoclass:: XEP_0047
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. autoclass:: IBBytestream
:members:
.. _api-0047:
Internal API methods
--------------------
The API here is used to manage streams and authorize. The default handlers
work with the config parameters.
.. glossary::
authorized_sid (0047 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: :class:`~.Iq` of the stream request.
- **returns**: ``True`` if the stream should be accepted,
``False`` otherwise.
Check if the stream should be accepted. Uses
the information setup by :term:`preauthorize_sid (0047 version)`
by default.
authorized (0047 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: :class:`~.Iq` of the stream request.
- **returns**: ``True`` if the stream should be accepted,
``False`` otherwise.
A fallback handler (run after :term:`authorized_sid (0047 version)`)
to check if a stream should be accepted. Uses the ``auto_accept``
parameter by default.
preauthorize_sid (0047 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream will be from.
- **args**: Unused.
Register a stream id to be accepted automatically (called from
other plugins such as XEP-0095).
get_stream
- **jid**: :class:`~.JID` of local receiver.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: unused
- **returns**: :class:`~.IBBytestream`
Return a currently opened stream between two JIDs.
set_stream
- **jid**: :class:`~.JID` of local receiver.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: unused
Register an opened stream between two JIDs.
del_stream
- **jid**: :class:`~.JID` of local receiver.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: unused
Delete a stream between two JIDs.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0047.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0049: Private XML Storage
=============================
.. 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: Ad-Hoc Commands
=========================
.. 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,52 @@
XEP-0054: vcard-temp
====================
.. module:: slixmpp.plugins.xep_0054
.. autoclass:: XEP_0054
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0054:
Internal API methods
--------------------
This plugin maintains by default an in-memory cache of the received
VCards.
.. glossary::
set_vcard
- **jid**: :class:`~.JID` of whom to set the vcard
- **node**: unused
- **ifrom**: unused
- **args**: :class:`~.VCardTemp` object to store for this JID.
Set a VCard for a JID.
get_vcard
- **jid**: :class:`~.JID` of whom to set the vcard
- **node**: unused
- **ifrom**: :class:`~.JID` the request is coming from
- **args**: unused
- **returns**: :class:`~.VCardTemp` object for this JID or None.
Get a stored VCard for a JID.
del_vcard
- **jid**: :class:`~.JID` of whom to set the vcard
- **node**: unused
- **ifrom**: unused
- **args**: unused
Delete a stored VCard for a JID.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0054.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0055: Jabber search
=======================
.. module:: slixmpp.plugins.xep_0055
.. autoclass:: XEP_0055
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0055.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,21 @@
XEP-0059: Result Set Management
===============================
.. module:: slixmpp.plugins.xep_0059
.. autoclass:: XEP_0059
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. autoclass:: ResultIterator
:members:
:member-order: bysource
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0059.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,37 @@
XEP-0060: Publish-Subscribe
===========================
.. 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,60 @@
XEP-0065: SOCKS5 Bytestreams
============================
.. module:: slixmpp.plugins.xep_0065
.. autoclass:: XEP_0065
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0065:
Internal API methods
--------------------
The internal API is used here to authorize or pre-authorize streams.
.. glossary::
authorized_sid (0065 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: :class:`~.Iq` of the stream request.
- **returns**: ``True`` if the stream should be accepted,
``False`` otherwise.
Check if the stream should be accepted. Uses
the information setup by :term:`preauthorize_sid (0065 version)`
by default.
authorized (0065 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream is from.
- **args**: :class:`~.Iq` of the stream request.
- **returns**: ``True`` if the stream should be accepted,
``False`` otherwise.
A fallback handler (run after :term:`authorized_sid (0065 version)`)
to check if a stream should be accepted. Uses the ``auto_accept``
parameter by default.
preauthorize_sid (0065 version)
- **jid**: :class:`~.JID` receiving the stream initiation.
- **node**: stream id
- **ifrom**: who the stream will be from.
- **args**: Unused.
Register a stream id to be accepted automatically (called from
other plugins such as XEP-0095).
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0065.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0066: Out of Band Data
==========================
.. 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: Verifying HTTP Requests via XMPP
==========================================
.. 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: XHTML-IM
==================
.. 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,65 @@
XEP-0077: In-Band Registration
==============================
.. module:: slixmpp.plugins.xep_0077
.. autoclass:: XEP_0077
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Internal APi methods
--------------------
The API here is made to allow components to manage registered users.
The default handlers make use of the plugin options and store users
in memory.
.. glossary::
user_get
- **jid**: unused
- **node**: unused
- **ifrom**: who the request is coming from
- **args**: :class:`~.Iq` registration request.
- **returns**: ``dict`` containing user data or None.
Get user data for a user.
user_validate
- **jid**: unused
- **node**: unused
- **ifrom**: who the request is coming from
- **args**: :class:`~.Iq` registration request, 'register' payload.
- **raises**: ValueError if some fields are invalid
Validate form fields and save user data.
user_remove
- **jid**: unused
- **node**: unused
- **ifrom**: who the request is coming from
- **args**: :class:`~.Iq` registration removal request.
- **raises**: KeyError if the user is not found.
Remove a user from the store.
make_registration_form
- **jid**: unused
- **node**: unused
- **ifrom**: who the request is coming from
- **args**: :class:`~.Iq` registration request.
- **raises**: KeyError if the user is not found.
Return an :class:`~.Iq` reply for the request, with a form and
options set. By default, use ``form_fields`` and ``form_instructions``
plugin config options.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0077.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0079: Advanced Message Processing
=====================================
.. 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: User Location
=======================
.. 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: XMPP Date and Time Profiles
=====================================
.. 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: User Avatar
=====================
.. 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: Chat State Notifications
==================================
.. 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: Error Condition Mappings
==================================
.. 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: Software Version
==========================
.. 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-0100: Gateway interaction
=============================
.. module:: slixmpp.plugins.xep_0100
.. autoclass:: XEP_0100
:members:
:exclude-members: session_bind, plugin_init, plugin_end

View File

@ -0,0 +1,9 @@
XEP-0106: JID Escaping
======================
.. 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: User Mood
===================
.. 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: User Activity
=======================
.. 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,66 @@
XEP-0115: Entity Capabilities
=============================
.. module:: slixmpp.plugins.xep_0115
.. autoclass:: XEP_0115
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0115:
Internal API methods
--------------------
This internal API extends the Disco internal API, and also manages an
in-memory cache of verstring→disco info, and fulljid→verstring.
.. glossary::
cache_caps
- **jid**: unused
- **node**: unused
- **ifrom**: unused
- **args**: a ``dict`` containing the verstring and
:class:`~.DiscoInfo` payload (
``{'verstring': Optional[str], 'info': Optional[DiscoInfo]}``)
Cache a verification string with its payload.
get_caps
- **jid**: JID to retrieve the verstring for (unused with the default
handler)
- **node**: unused
- **ifrom**: unused
- **args**: a ``dict`` containing the verstring
``{'verstring': str}``
- **returns**: The :class:`~.DiscoInfo` payload for that verstring.
Get a disco payload from a verstring.
assign_verstring
- **jid**: :class:`~.JID` (full) to assign the verstring to
- **node**: unused
- **ifrom**: unused
- **args**: a ``dict`` containing the verstring
``{'verstring': str}``
Cache JID→verstring information.
get_verstring
- **jid**: :class:`~.JID` to use for fetching the verstring
- **node**: unused
- **ifrom**: unused
- **args**: unused
- **returns**: ``str``, the verstring
Retrieve a verstring for a JID.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0115.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0118: User Tune
===================
.. 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: Data Forms Validation
===============================
.. 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,44 @@
XEP-0128: Service Discovery Extensions
======================================
.. module:: slixmpp.plugins.xep_0128
.. autoclass:: XEP_0128
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0128:
Internal API methods
--------------------
.. glossary::
add_extended_info
- **jid**: JID to set the extended info for
- **node**: note to set the info at
- **ifrom**: unused
- **args**: A :class:`~.Form` or list of forms to add to the disco
extended info for this JID/node.
Add extended info for a JID/node.
set_extended_info
- **jid**: JID to set the extended info for
- **node**: note to set the info at
- **ifrom**: unused
- **args**: A :class:`~.Form` or list of forms to set as the disco
extended info for this JID/node.
Set extended info for a JID/node.
del_extended_info
- **jid**: JID to delete the extended info from
- **node**: note to delete the info from
- **ifrom**: unused
- **args**: unused
Delete extended info for a JID/node.

View File

@ -0,0 +1,18 @@
XEP-0131: Stanza Headers and Internet Metadata
==============================================
.. 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: Service Administration
================================
.. 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: Reachability Addresses
================================
.. 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,55 @@
XEP-0153: vCard-Based Avatars
=============================
.. module:: slixmpp.plugins.xep_0153
.. autoclass:: XEP_0153
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0153:
Internal API methods
--------------------
The internal API is used here to maintain an in-memory JID→avatar hash
cache.
.. glossary::
set_hash
- **jid**: :class:`~.JID` of whom to retrieve the last activity
- **node**: unused
- **ifrom**: unused
- **args**: ``str``, avatar hash
Set the avatar hash for a JID.
reset_hash
- **jid**: :class:`~.JID` of whom to retrieve the last activity
- **node**: unused
- **ifrom**: :class:`~.JID` of the entity requesting the reset.
- **args**: unused
- **returns**
information.
Reset the avatar hash for a JID. This downloads the vcard and computes
the hash.
get_hash
- **jid**: :class:`~.JID` of whom to retrieve the last activity
- **node**: unused
- **ifrom**: unused
- **args**: unused
- **returns**: ``Optional[str]``, the avatar hash
Get the avatar hash for a JID.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0153.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,9 @@
XEP-0163: Personal Eventing Protocol (PEP)
==========================================
.. 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: User Nickname
=======================
.. 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: Message Delivery Receipts
===================================
.. 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: Invisible Command
===========================
.. 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: Blocking Command
==========================
.. 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: User Gaming
=====================
.. 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: Stream Management
===========================
.. 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: XMPP Ping
===================
.. 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: Entity Time
=====================
.. 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: Delayed Delivery
==========================
.. 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: Data Forms Media Element
==================================
.. 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: Persistent Storage of Public Data via PubSub
======================================================
.. 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: Persistent Storage of Private Data via PubSub
=======================================================
.. 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: Attention
===================
.. 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,53 @@
XEP-0231: Bits of Binary
========================
.. module:: slixmpp.plugins.xep_0231
.. autoclass:: XEP_0231
:members:
:exclude-members: session_bind, plugin_init, plugin_end
.. _api-0231:
Internal API methods
--------------------
The default API handlers for this plugin manage an in-memory cache of
bits of binary by content-id.
.. glossary::
set_bob
- **jid**: :class:`~.JID` sending the bob
- **node**: unused
- **ifrom**: :class:`~JID` receiving the bob
- **args**: :class:`~.BitsOfBinary` element.
Set a BoB in the cache.
get_bob
- **jid**: :class:`~.JID` receiving the bob
- **node**: unused
- **ifrom**: :class:`~JID` sending the bob
- **args**: ``str`` content-id of the bob
- **returns**: :class:`~.BitsOfBinary` element.
Get a BoB from the cache.
del_bob
- **jid**: unused
- **node**: unused
- **ifrom**: :class:`~JID` sending the bob
- **args**: ``str`` content-id of the bob
Delete a BoB from the cache.
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0231.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0235: OAuth Over XMPP
=========================
.. 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: Direct MUC Invitations
================================
.. 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: Last Activity in Presence
===================================
.. 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: Client Certificate Management for SASL EXTERNAL
=========================================================
.. 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: Security Labels in XMPP
=================================
.. 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-0264: Jingle Content Thumbnails
===================================
.. module:: slixmpp.plugins.xep_0264
.. autoclass:: XEP_0264
:members:
:exclude-members: session_bind, plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0264.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0279: Server IP Check
=========================
.. 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: Message Carbons
=========================
.. 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,17 @@
XEP-0292: vCard4 Over XMPP
==========================
.. module:: slixmpp.plugins.xep_0292
.. autoclass:: XEP_0292
:members:
:exclude-members: plugin_init, plugin_end
Stanza elements
---------------
.. automodule:: slixmpp.plugins.xep_0292.stanza
:members:
:undoc-members:

View File

@ -0,0 +1,18 @@
XEP-0297: Stanza Forwarding
===========================
.. 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: Use of Cryptographic Hash Functions in XMPP
=====================================================
.. 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:

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