diff options
Diffstat (limited to 'poezio/tabs/basetabs.py')
-rw-r--r-- | poezio/tabs/basetabs.py | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/poezio/tabs/basetabs.py b/poezio/tabs/basetabs.py index 75d8bf71..2f221afe 100644 --- a/poezio/tabs/basetabs.py +++ b/poezio/tabs/basetabs.py @@ -49,8 +49,13 @@ from poezio.text_buffer import TextBuffer from poezio.theming import get_theme, dump_tuple from poezio.user import User from poezio.ui.funcs import truncate_nick -from poezio.ui.types import BaseMessage, InfoMessage, Message from poezio.timed_events import DelayedEvent +from poezio.ui.types import ( + BaseMessage, + Message, + PersistentInfoMessage, + LoggableTrait, +) from slixmpp import JID, InvalidJID, Message as SMessage @@ -581,6 +586,11 @@ class ChatTab(Tab): raise TypeError("Name %r must be of type JID or str." % value) @property + def log_name(self) -> str: + """Name used for the log filename""" + return self.jid.bare + + @property def jid(self) -> JID: return copy(self._jid) @@ -595,22 +605,17 @@ class ChatTab(Tab): def general_jid(self) -> JID: raise NotImplementedError - def log_message(self, message: BaseMessage, typ: int = 1): + def log_message(self, message: BaseMessage): """ Log the messages in the archives. """ - name = self.jid.bare - if not isinstance(message, Message): + if not isinstance(message, LoggableTrait): return - was_logged = logger.log_message( - name, message.nickname or '', message.txt, - date=message.time, typ=typ - ) - if not was_logged: + if not logger.log_message(self.log_name, message): self.core.information('Unable to write in the log file', 'Error') - def add_message(self, message: BaseMessage, typ=1): - self.log_message(message, typ=typ) + def add_message(self, message: BaseMessage): + self.log_message(message) self._text_buffer.add_message(message) def modify_message(self, @@ -627,7 +632,7 @@ class ChatTab(Tab): txt, old_id, new_id, user=user, jid=jid, time=time ) if message: - self.log_message(message, typ=1) + self.log_message(message) self.text_win.modify_message(message.identifier, message) self.core.refresh_window() return True @@ -1025,8 +1030,7 @@ class OneToOneTab(ChatTab): if status.show in SHOW_NAME: msg += 'show: %s, ' % SHOW_NAME[status.show] self.add_message( - InfoMessage(txt=msg[:-2]), - typ=2, + PersistentInfoMessage(txt=msg[:-2]) ) def ack_message(self, msg_id: str, msg_jid: JID): |