Query MUC archives with the correct namespace

This commit is contained in:
Philipp Hörist 2017-11-19 23:45:03 +01:00
parent 3683f23877
commit c45d0f5b27
2 changed files with 16 additions and 1 deletions

View file

@ -491,3 +491,12 @@ class MucCapsCache:
return True return True
except (KeyError, AttributeError): except (KeyError, AttributeError):
return False return False
def get_mam_namespace(self, jid):
try:
if nbxmpp.NS_MAM_2 in self.cache[jid].features:
return nbxmpp.NS_MAM_2
elif nbxmpp.NS_MAM_1 in self.cache[jid].features:
return nbxmpp.NS_MAM_1
except (KeyError, AttributeError):
return

View file

@ -27,6 +27,7 @@ from gajim.common import app
from gajim.common import ged from gajim.common import ged
from gajim.common.logger import KindConstant, JIDConstant from gajim.common.logger import KindConstant, JIDConstant
from gajim.common.const import ArchiveState from gajim.common.const import ArchiveState
from gajim.common.caps_cache import muc_caps_cache
import gajim.common.connection_handlers_events as ev import gajim.common.connection_handlers_events as ev
log = logging.getLogger('gajim.c.message_archiving') log = logging.getLogger('gajim.c.message_archiving')
@ -296,7 +297,12 @@ class ConnectionArchive313:
def get_archive_query(self, query_id, jid=None, start=None, end=None, with_=None, def get_archive_query(self, query_id, jid=None, start=None, end=None, with_=None,
after=None, max_=30): after=None, max_=30):
namespace = self.archiving_namespace # Muc archive query?
namespace = muc_caps_cache.get_mam_namespace(jid)
if namespace is None:
# Query to our own archive
namespace = self.archiving_namespace
iq = nbxmpp.Iq('set', to=jid) iq = nbxmpp.Iq('set', to=jid)
query = iq.addChild('query', namespace=namespace) query = iq.addChild('query', namespace=namespace)
form = query.addChild(node=nbxmpp.DataForm(typ='submit')) form = query.addChild(node=nbxmpp.DataForm(typ='submit'))