From ee972599f01883ddf83705a4834188d4490dadfd Mon Sep 17 00:00:00 2001 From: mathieui Date: Sun, 11 Apr 2021 20:48:53 +0200 Subject: fix: do not fetch ALL messages from logfiles when filling a gap --- poezio/log_loader.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'poezio') diff --git a/poezio/log_loader.py b/poezio/log_loader.py index 1e1d80b9..d729bd91 100644 --- a/poezio/log_loader.py +++ b/poezio/log_loader.py @@ -41,6 +41,10 @@ from poezio.text_buffer import HistoryGap from slixmpp import JID +# Max number of messages to insert when filling a gap +HARD_LIMIT = 999 + + log = logging.getLogger(__name__) @@ -154,7 +158,12 @@ class LogLoader: if end: end = end - timedelta(seconds=1) try: - return await fetch_history(tab, start=start, end=end, amount=999) + return await fetch_history( + tab, + start=start, + end=end, + amount=HARD_LIMIT + ) except (NoMAMSupportException, MAMQueryException, DiscoInfoException): return [] finally: @@ -179,6 +188,8 @@ class LogLoader: break if typ_ == 'message' and (not end or msg['time'] < end): results.append(make_line_local(self.tab, msg)) + if len(results) >= HARD_LIMIT: + break return results[::-1] async def scroll_requested(self): -- cgit v1.2.3