'From parsing scope, kwargs, build prefix before sending to logger.'
first_char = '$'
sender_label = ''
- if 'out' in kwargs and scope != LogScope.DEBUG:
- first_char = _LOG_PREFIX_OUT if kwargs['out'] else _LOG_PREFIX_IN
+ 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'])
if scope == LogScope.CHAT:
- sender_label = (
- ' [' + (self.db.users['me'].nick if kwargs['out']
- else kwargs['them'])
- + ']')
- if kwargs.get('as_notice', False):
- first_char *= 3
+ 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 kwargs.get('is_notice', False):
+ first_char *= 3
prefix = f'{first_char}{sender_label}'
self._tui_log(msg, scope=scope, prefix=prefix, **kwargs)
if update.full_path == ('message',):
log_kwargs['log_target'] = (update.value.target
or update.value.sender)
- log_kwargs['them'] = update.value.sender
- log_kwargs['as_notice'] = update.value.is_notice
- log_kwargs['out'] = False
+ log_kwargs['sender'] = update.value.sender
+ log_kwargs['is_notice'] = update.value.is_notice
else:
log_kwargs['log_target'] = update.full_path[1]
if isinstance(result, list):
self.log(f'{log_path} cleared', **log_kwargs)
else:
announcement = f'{log_path} set to:'
- if isinstance(result, ChatMessage) or not isinstance(result, tuple):
- self.log(f'{announcement} [{result}]', **log_kwargs)
- else:
+ if isinstance(result, tuple):
self.log(announcement, **log_kwargs)
for item in result:
self.log(f' {item}', **log_kwargs)
+ else:
+ self.log(f'{announcement} [{result}]', **log_kwargs)
for win in [w for w in self.windows if isinstance(w, _ChatWindow)]:
win.set_prompt_prefix()
return bool([w for w in self.windows if w.tainted])
except SendFail as e:
self._log(f'{e}', scope=LogScope.SAME, alert=True)
else:
- self._log(msg, scope=LogScope.CHAT, log_target=chat_target,
- out=True)
+ self.db.messaging('').to(chat_target).privmsg = msg # type: ignore
def reconnect(self) -> None:
'Catch /reconnect, only initiate if not connected, else complain back.'
1,2 $ message set to: [P :]
> /privmsg baz hello, how is it going
2 > PRIVMSG baz :hello, how is it going
+1,2 $ message set to: [P baz :hello, how is it going]
7 > [foo1] hello, how is it going
+1,2 $ message set to: [P :]
0:2 < :baz!~baz@baz.baz PRIVMSG foo1 :fine!
1,2 $ message set to: [P baz :fine!]
7 < [baz] fine!
# handle failure to query absent user
> /privmsg barbar hello!
2 > PRIVMSG barbar :hello!
+1,2 $ message set to: [P barbar :hello!]
8 > [foo1] hello!
+1,2 $ message set to: [P :]
0:2 < :*.?.net 401 foo1 barbar :No such nick/channel
8 !$ barbar not online
repeat 63:65
3,4,5,6,7,8 $ CONNECTED
repeat 66:166
-repeat 177:383
+repeat 177:387
> /quit
0 <