a71823dc04
This was XEP-0237, but is now part of RFC 6121. Roster backends should now expose two additional methods: version(jid): Return the version of the given JID's roster. set_version(jid, version): Update the version of the given JID's roster. A new state field will be passed to the backend if an item has been marked for removal. This is 'removed' which will be set to True.
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""
|
|
SleekXMPP: The Sleek XMPP Library
|
|
Copyright (C) 2012 Nathanael C. Fritz
|
|
This file is part of SleekXMPP.
|
|
|
|
See the file LICENSE for copying permission.
|
|
"""
|
|
|
|
import logging
|
|
|
|
from sleekxmpp.stanza import Iq, StreamFeatures
|
|
from sleekxmpp.features.feature_rosterver import stanza
|
|
from sleekxmpp.xmlstream import register_stanza_plugin
|
|
from sleekxmpp.plugins.base import base_plugin
|
|
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class feature_rosterver(base_plugin):
|
|
|
|
def plugin_init(self):
|
|
self.name = 'Roster Versioning'
|
|
self.rfc = '6121'
|
|
self.description = 'Roster Versioning'
|
|
self.stanza = stanza
|
|
|
|
self.xmpp.register_feature('rosterver',
|
|
self._handle_rosterver,
|
|
restart=False,
|
|
order=9000)
|
|
|
|
register_stanza_plugin(StreamFeatures, stanza.RosterVer)
|
|
|
|
def _handle_rosterver(self, features):
|
|
"""Enable using roster versioning.
|
|
|
|
Arguments:
|
|
features -- The stream features stanza.
|
|
"""
|
|
log.debug("Enabling roster versioning.")
|
|
self.xmpp.features.add('rosterver')
|