XEP-0115: Use the new cache system.
This commit is contained in:
parent
037912ee89
commit
128cc2eeb4
2 changed files with 11 additions and 4 deletions
|
@ -15,6 +15,7 @@ from slixmpp.stanza import StreamFeatures, Presence, Iq
|
|||
from slixmpp.xmlstream import register_stanza_plugin, JID
|
||||
from slixmpp.xmlstream.handler import Callback
|
||||
from slixmpp.xmlstream.matcher import StanzaPath
|
||||
from slixmpp.util import MemoryCache
|
||||
from slixmpp import asyncio
|
||||
from slixmpp.exceptions import XMPPError, IqError, IqTimeout
|
||||
from slixmpp.plugins import BasePlugin
|
||||
|
@ -37,7 +38,8 @@ class XEP_0115(BasePlugin):
|
|||
default_config = {
|
||||
'hash': 'sha-1',
|
||||
'caps_node': None,
|
||||
'broadcast': True
|
||||
'broadcast': True,
|
||||
'cache': None,
|
||||
}
|
||||
|
||||
def plugin_init(self):
|
||||
|
@ -48,6 +50,9 @@ class XEP_0115(BasePlugin):
|
|||
if self.caps_node is None:
|
||||
self.caps_node = 'http://slixmpp.com/ver/%s' % __version__
|
||||
|
||||
if self.cache is None:
|
||||
self.cache = MemoryCache()
|
||||
|
||||
register_stanza_plugin(Presence, stanza.Capabilities)
|
||||
register_stanza_plugin(StreamFeatures, stanza.Capabilities)
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@ class StaticCaps(object):
|
|||
self.disco = self.xmpp['xep_0030']
|
||||
self.caps = self.xmpp['xep_0115']
|
||||
self.static = static
|
||||
self.ver_cache = {}
|
||||
self.jid_vers = {}
|
||||
|
||||
def supports(self, jid, node, ifrom, data):
|
||||
|
@ -128,7 +127,7 @@ class StaticCaps(object):
|
|||
info = data.get('info', None)
|
||||
if not verstring or not info:
|
||||
return
|
||||
self.ver_cache[verstring] = info
|
||||
self.caps.cache.store(verstring, info)
|
||||
|
||||
def assign_verstring(self, jid, node, ifrom, data):
|
||||
if isinstance(jid, JID):
|
||||
|
@ -139,4 +138,7 @@ class StaticCaps(object):
|
|||
return self.jid_vers.get(jid, None)
|
||||
|
||||
def get_caps(self, jid, node, ifrom, data):
|
||||
return self.ver_cache.get(data.get('verstring', None), None)
|
||||
verstring = data.get('verstring', None)
|
||||
if verstring is None:
|
||||
return None
|
||||
return self.caps.cache.retrieve(verstring)
|
||||
|
|
Loading…
Reference in a new issue