Commit 7250eff3 authored by Madhur Garg's avatar Madhur Garg

Corrected the search for lastlog messages and refresh of the window.

Corrected the search for lastlog messages and refresh of the window.

patch from Maxime Buquet

Corrected the search for lastlog messages and refresh of the window.
parent 1e21de27
......@@ -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='<keyword>', help=(
'Search <keyword> in the buffer and returns results'
'on the screen'
),
)
self.api.add_tab_command(
MucTab, 'lastlog', self.command_lastlog, usage='<keyword>',
help=('Search <keyword> in the buffer and returns results'
'on the screen'),
)
self.api.add_tab_command(
PrivateTab, 'lastlog', self.command_lastlog, usage='<keyword>',
help=('Search <keyword> 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='<keyword>',
help='Search <keyword> 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()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment