pass
@abstractmethod
- def _log(self, msg: str, scope=LogScope.SERVER, **kwargs) -> None:
+ def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs
+ ) -> None:
pass
def send(self, verb: str, *args) -> None:
if user_id == 'me':
self.db.nick_wanted = ret['nick']
elif ret['_verb'] in {'NOTICE', 'PRIVMSG'}:
- kw: dict[str, bool | str | LogScope] = {
- 'as_notice': msg.verb == 'NOTICE'}
- if 'sender' in ret: # not just server message
- kw |= {'sender': ret['sender'].nick, 'scope': LogScope.CHAT,
- 'target': (ret['sender'].nick if 'nick' in ret
- else ret['channel'])}
- self._log(ret['message'], out=False, **kw)
+ kw: dict[str, str | bool] = {'as_notice': ret['_verb'] == 'NOTICE'}
+ if (scope := LogScope.CHAT if 'sender' in ret else None):
+ kw['them'] = ret['sender'].nick
+ kw['target'] = kw['them'] if 'nick' in ret else ret['channel']
+ self._log(ret['message'], out=False, scope=scope, **kw)
elif ret['_verb'] == 'PART':
ret['parter'].part(ret['channel'], ret.get('message', ''))
if ret['parter'] is self.db.users['me']:
if scope == LogScope.CHAT:
sender_label = (
' [' + (self.db.users['me'].nick if kwargs['out']
- else kwargs['sender'])
+ else kwargs['them'])
+ ']')
if kwargs.get('as_notice', False):
first_char *= 3
if scope == LogScope.CHAT:
chatname = (kwargs['target']
if kwargs['target'] != m.db.users['me'].nick
- else kwargs['sender'])
+ else kwargs['them'])
return [m.window(LogScope.CHAT, chatname=chatname)]
if scope == LogScope.USER:
return m.windows_for_userid(kwargs['target'])
return
self._start_connecting()
- def _log(self, msg: str, scope=LogScope.SERVER, **kwargs) -> None:
+ def _log(self, msg: str, scope: Optional[LogScope] = None, **kwargs
+ ) -> None:
to_log = []
if msg:
to_log += [msg]
+ if not scope:
+ scope = LogScope.SERVER
for item in to_log:
self._client_tui_trigger('log', scope=scope, msg=item, **kwargs)
if scope == LogScope.RAW: