self.close()
case '001' | 'NICK':
self._update_db('nickname', value=msg.params[0], confirm=True)
+ case 'NOTICE' | 'PRIVMSG':
+ scope = LogScope.CHAT if '!' in msg.source else LogScope.SERVER
+ self._log(msg.params[-1], scope=scope, channel=msg.params[0],
+ out=False, is_notice=msg.verb == 'NOTICE',
+ sender=msg.nick_from_source)
case 'PRIVMSG':
self._log(msg.params[-1], scope=LogScope.CHAT, out=False,
sender=msg.nick_from_source, channel=msg.params[0])
def log(self, msg: str, scope: LogScope, **kwargs) -> None:
'From parsing scope, kwargs, build prefix before sending to logger.'
- prefix = ''
- if 'out' in kwargs:
- prefix += _LOG_PREFIX_OUT if kwargs['out'] else _LOG_PREFIX_IN
+ first_char = '$'
+ sender_label = ''
+ if 'out' in kwargs and scope != LogScope.SERVER:
+ first_char = _LOG_PREFIX_OUT if kwargs['out'] else _LOG_PREFIX_IN
if scope == LogScope.CHAT:
nickname = (self._db.nickname if kwargs['out']
else kwargs['sender'])
- prefix += f' [{nickname}]'
- else:
- prefix += _LOG_PREFIX_SERVER
+ sender_label = f' [{nickname}]'
+ if kwargs.get('is_notice', False):
+ first_char *= 3
+ prefix = f'{first_char}{sender_label}'
self._tui_log(msg, scope=scope, prefix=prefix, **kwargs)
def update(self, key: str, value: str, confirmed: bool, scope: LogScope