summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMadhur Garg <madhurgarg96@gmail.com>2019-08-13 06:18:08 +0530
committerMadhur Garg <madhurgarg96@gmail.com>2019-08-22 00:54:25 +0530
commit592932f7ca2e89a5e6e4384e31bd0bb3ebfcaa58 (patch)
tree1565696fab95e4e27d156e1e28baa69a3a82977d
parent06eeda0233086befae31cf53b17e405aed785c90 (diff)
downloadpoezio-592932f7ca2e89a5e6e4384e31bd0bb3ebfcaa58.tar.gz
poezio-592932f7ca2e89a5e6e4384e31bd0bb3ebfcaa58.tar.bz2
poezio-592932f7ca2e89a5e6e4384e31bd0bb3ebfcaa58.tar.xz
poezio-592932f7ca2e89a5e6e4384e31bd0bb3ebfcaa58.zip
Changed the querry from timestamp to stanza-id based.
-rw-r--r--poezio/mam.py27
-rw-r--r--poezio/tabs/basetabs.py3
2 files changed, 16 insertions, 14 deletions
diff --git a/poezio/mam.py b/poezio/mam.py
index 44eab3f4..fdbfd2af 100644
--- a/poezio/mam.py
+++ b/poezio/mam.py
@@ -49,35 +49,35 @@ async def query(tab, remote_jid, top, start=None, end=None, before=None):
if top:
if isinstance(tab, tabs.MucTab):
try:
- if before:
+ if before is not None:
results = tab.core.xmpp['xep_0313'].retrieve(jid=remote_jid,
iterator=True, reverse=top, before=before)
else:
results = tab.core.xmpp['xep_0313'].retrieve(jid=remote_jid,
- iterator=True, reverse=top, end=end_date)
+ iterator=True, reverse=top, end=end)
except (IqError, IqTimeout):
return tab.core.information('Failed to retrieve messages', 'Error')
else:
try:
- if before:
+ if before is not None:
results = tab.core.xmpp['xep_0313'].retrieve(with_jid=remote_jid,
iterator=True, reverse=top, before=before)
else:
results = tab.core.xmpp['xep_0313'].retrieve(with_jid=remote_jid,
- iterator=True, reverse=top, end=end_date)
+ iterator=True, reverse=top, end=end)
except (IqError, IqTimeout):
return tab.core.information('Failed to retrieve messages', 'Error')
else:
if 'conference' in list(iq['disco_info']['identities'])[0]:
try:
results = tab.core.xmpp['xep_0313'].retrieve(jid=remote_jid,
- iterator=True, reverse=top, start=start_date, end=end_date)
+ iterator=True, reverse=top, start=start_date, end=end)
except (IqError, IqTimeout):
return tab.core.information('Failed to retrieve messages', 'Error')
else:
try:
results = tab.core.xmpp['xep_0313'].retrieve(with_jid=remote_jid,
- iterator=True, reverse=top, start=start_date, end=end_date)
+ iterator=True, reverse=top, start=start_date, end=end)
except (IqError, IqTimeout):
return tab.core.information('Failed to retrieve messages', 'Error')
msg_count = 0
@@ -134,17 +134,20 @@ def mam_scroll(tab):
try:
before = tab.stanza_id
except:
- before = False
+ before = None
end = datetime.now()
- end = end.replace(tzinfo=tzone).astimezone(tz=timezone.utc)
- end = end.replace(tzinfo=None)
- end = datetime.strftime(end, '%Y-%m-%dT%H:%M:%SZ')
- start = False
+ tzone = datetime.now().astimezone().tzinfo
+ end = end.replace(tzinfo=tzone).astimezone(tz=timezone.utc)
+ end = end.replace(tzinfo=None)
+ end = datetime.strftime(end, '%Y-%m-%dT%H:%M:%SZ')
top = True
pos = tab.text_win.pos
tab.text_win.pos += tab.text_win.height - 1
if tab.text_win.pos + tab.text_win.height > len(tab.text_win.built_lines):
- asyncio.ensure_future(query(tab, remote_jid, top, start, end, before))
+ if before is None:
+ asyncio.ensure_future(query(tab, remote_jid, top, end=end))
+ else:
+ asyncio.ensure_future(query(tab, remote_jid, top, before=before))
tab.query_id = 1
tab.text_win.pos = len(tab.text_win.built_lines) - tab.text_win.height
if tab.text_win.pos < 0:
diff --git a/poezio/tabs/basetabs.py b/poezio/tabs/basetabs.py
index ae133dfb..12fcd170 100644
--- a/poezio/tabs/basetabs.py
+++ b/poezio/tabs/basetabs.py
@@ -927,9 +927,8 @@ class ChatTab(Tab):
return self.text_win.scroll_down(1)
def on_scroll_up(self):
- tab = self
if self.query_id == 0:
- return mam.mam_scroll(tab)
+ return mam.mam_scroll(tab=self)
else:
return self.text_win.scroll_up(self.text_win.height - 1)