update.results += [(_LogScope.ALL, [':DISCONNECTED'])]
elif update.key == 'message' and update.value:
assert isinstance(update.value, ChatMessage)
- update.results += [(_LogScope.CHAT, [':' + update.value.content])]
+ who = (f':{update.value.sender}' if update.value.sender
+ else 'NICK:me')
+ update.results += [(_LogScope.CHAT,
+ [':[', who, f':] {update.value.content}'])]
class _ClientWindowsManager:
def log(self, msg: str, scope: _LogScope, **kwargs) -> None:
'From parsing scope, kwargs, build prefix before sending to logger.'
first_char = '$'
- sender_label = ''
- receiving: Optional[bool] = None
- if scope == _LogScope.RAW:
- receiving = not kwargs.get('out', False)
- if scope == _LogScope.CHAT and 'sender' in kwargs:
- receiving = bool(kwargs['sender'])
- sender_label = ' [' + (kwargs['sender'] if receiving
- else self.db.users['me'].nick) + ']'
- if receiving is not None:
- first_char = _LOG_PREFIX_IN if receiving else _LOG_PREFIX_OUT
+ if 'out' in kwargs:
+ first_char = _LOG_PREFIX_OUT if kwargs['out'] else _LOG_PREFIX_IN
if kwargs.get('is_notice', False):
first_char *= 3
- prefix = f'{first_char}{sender_label}'
+ prefix = f'{first_char}'
self._tui_log(msg, scope=scope, prefix=prefix, **kwargs)
def update_db(self, update: _Update) -> bool:
if update.full_path == ('message',):
log_kwargs['log_target'] = (update.value.target
or update.value.sender)
- log_kwargs['sender'] = update.value.sender
+ log_kwargs['out'] = not bool(update.value.sender)
log_kwargs['is_notice'] = update.value.is_notice
else:
log_kwargs['log_target'] = update.full_path[1]