New stanza interfaces:
Adding a message receipt request:
msg['request_receipt'] = True
Adding a message receipt:
msg['receipt'] = '123-24234'
Retrieving the acked message ID:
ack_id = msg['receipt']
print(ack_id)
'123-24234'
New configuration options:
auto_ack:
If True, auto reply to messages that request receipts.
Defaults to True
auto_request:
If True, auto add receipt requests to appropriate outgoing
messages.
Defaults to False
The post_init() system can only reliably handle a single layer
of dependencies between plugins, but PEP plugins with XEP-0115
exceed that limit and plugins can be post_init'ed out of order. To
resolve this, we will special case XEP-0115 to be post_init'ed
first until the new plugin system with dependency tracking is
stable.
Each state element must have its own stanza class now. A stanza class
with an empty name field causes errors in ElementTree, even though
it works fine with cElementTree.
As part of adding this feature:
- fixed bug in update_caps() not assigning verstrings
- fixed xep_0004 typo
- can now use None as a roster key which will map to boundjid.bare
- fixed using JID objects in disco node handlers
- fixed failing test related to get_roster
Several of these bugs I've fixed before, so I either didn't push them
earlier, or I clobbered something when merging. *shrug*
New plugin configuration options:
use_cache - Enable caching disco info results. Defaults to True
wrap_results - Always return disco results in an Iq stanza. Defaults
to False
Node handler changes:
Handlers now take four arguments: jid, node, ifrom, data
Most older style handlers will still work, depending on if they
raise a TypeError for incorrect number of arguments. Handlers that
used *args may not work.
New get_info options:
cached - Passing cached=True to get_info() will attempt to load
results from the cache. If nothing is found, a query
will be sent as normal. If set to False, the cache
will be skipped, even if it contains results.
New method:
supports() - Given a JID/node pair and a feature, return True
if the feature is supported, False if not, and
None if there was a timeout. By default, the search
will use the cache.
Fixes:
README.rst now included
Double line spacing removed from long_description
Source package now includes tests, examples, etc using Manifest.in
README.rst typos fixed
Added README.rst section on installing dnspython for Python3
Version bumped to RC2
Version is now taken from sleekxmpp.version.__version__ without
having to pull in the entire library
Added 'test' command for setup.py
Simplified testall.py
Docs build cleanly from source package after installation
Form fields now remember their current type if the type is deleted. This
allows for fields to properly format their values if set after the form
has been changed to the 'submit' type.