Use the new slixmpp filesystem cache to store caps.

This commit is contained in:
Emmanuel Gil Peyrot 2018-03-14 17:59:20 +01:00
parent 326de0f161
commit b03a92e7ea
2 changed files with 11 additions and 2 deletions

View file

@ -534,6 +534,7 @@ def check_create_cache_dir():
makedirs(CACHE_DIR) makedirs(CACHE_DIR)
makedirs(path.join(CACHE_DIR, 'avatars')) makedirs(path.join(CACHE_DIR, 'avatars'))
makedirs(path.join(CACHE_DIR, 'images')) makedirs(path.join(CACHE_DIR, 'images'))
makedirs(path.join(CACHE_DIR, 'caps'))
except OSError: except OSError:
pass pass

View file

@ -16,12 +16,15 @@ import subprocess
import sys import sys
import slixmpp import slixmpp
from slixmpp.xmlstream import ET
from slixmpp.plugins.xep_0184 import XEP_0184 from slixmpp.plugins.xep_0184 import XEP_0184
from slixmpp.plugins.xep_0030 import DiscoInfo
from slixmpp.util import FileSystemCache
from poezio import common from poezio import common
from poezio import fixes from poezio import fixes
from poezio.common import safeJID from poezio.common import safeJID
from poezio.config import config, options from poezio.config import config, options, CACHE_DIR
class Connection(slixmpp.ClientXMPP): class Connection(slixmpp.ClientXMPP):
@ -104,6 +107,12 @@ class Connection(slixmpp.ClientXMPP):
self.whitespace_keepalive = False self.whitespace_keepalive = False
self.register_plugin('xep_0004') self.register_plugin('xep_0004')
self.register_plugin('xep_0012') self.register_plugin('xep_0012')
# Must be loaded before 0030.
self.register_plugin('xep_0115', {
'caps_node': 'https://poez.io',
'cache': FileSystemCache(CACHE_DIR, 'caps', encode=str,
decode=lambda x: DiscoInfo(ET.fromstring(x))),
})
self.register_plugin('xep_0030') self.register_plugin('xep_0030')
self.register_plugin('xep_0045') self.register_plugin('xep_0045')
self.register_plugin('xep_0048') self.register_plugin('xep_0048')
@ -117,7 +126,6 @@ class Connection(slixmpp.ClientXMPP):
self.plugin['xep_0077'].create_account = False self.plugin['xep_0077'].create_account = False
self.register_plugin('xep_0084') self.register_plugin('xep_0084')
self.register_plugin('xep_0085') self.register_plugin('xep_0085')
self.register_plugin('xep_0115')
self.register_plugin('xep_0153') self.register_plugin('xep_0153')
# monkey-patch xep_0184 to avoid requesting receipts for messages # monkey-patch xep_0184 to avoid requesting receipts for messages