From d528a2ff557a5c01f5d9cab6c67034c9237497f3 Mon Sep 17 00:00:00 2001 From: Madhur Garg Date: Thu, 13 Jun 2019 00:29:43 +0530 Subject: Corrected the search for lastlog messages and refresh of the window. --- plugins/lastlog.py | 58 ++++++++++++++---------------------------------------- 1 file changed, 15 insertions(+), 43 deletions(-) diff --git a/plugins/lastlog.py b/plugins/lastlog.py index ae946f46..5198527e 100644 --- a/plugins/lastlog.py +++ b/plugins/lastlog.py @@ -12,7 +12,7 @@ import re from poezio.plugin import BasePlugin -from poezio.tabs import ConversationTab, PrivateTab, MucTab +from poezio import tabs from poezio.text_buffer import Message, TextBuffer @@ -32,60 +32,32 @@ def add_line(text_buffer: TextBuffer, text: str) -> None: ) -def add_message(text_buffer: TextBuffer, msg: Message) -> None: - """Adds a message to the TextBuffer""" - text_buffer.add_message( - msg.txt, - msg.time, - None, # Nickname - None, # Nick Color - False, # History - None, # User - msg.highlight, - msg.identifier, - msg.str_time, - None, # Jid - ) - - class Plugin(BasePlugin): """Lastlog Plugin""" def init(self): - self.api.add_tab_command( - ConversationTab, 'lastlog', self.command_lastlog, - usage='', help=( - 'Search in the buffer and returns results' - 'on the screen' - ), - ) - self.api.add_tab_command( - MucTab, 'lastlog', self.command_lastlog, usage='', - help=('Search in the buffer and returns results' - 'on the screen'), - ) - self.api.add_tab_command( - PrivateTab, 'lastlog', self.command_lastlog, usage='', - help=('Search in the buffer and returns results' - 'on the screen'), - ) + for tab in tabs.ConversationTab, tabs.PrivateTab, tabs.MucTab: + self.api.add_tab_command( + tab, + 'lastlog', + self.command_lastlog, + usage='', + help='Search in the buffer and returns results' + 'on the screen') def command_lastlog(self, input_): """Define lastlog command""" text_buffer = self.api.current_tab()._text_buffer - search_re = re.compile(input_) + search_re = re.compile(input_, re.I) res = [] + add_line(text_buffer, "Lastlog:") for message in text_buffer.messages: - if message.nickname is not None: - self.core.information('Foo: %s> %s' % (message.nickname, message.txt), 'Info') if message.nickname is not None and \ search_re.search(message.txt) is not None: res.append(message) - - add_line(text_buffer, "Lastlog for '%s', %d match(es)" % (input_, len(res))) - - for message in res: - message.nickname = None - add_message(text_buffer, message) + add_line(text_buffer, "%s" % (message.txt)) + add_line(text_buffer, "End of Lastlog") + self.api.current_tab().text_win.pos = 0 + self.api.current_tab().core.refresh_window() -- cgit v1.2.3