class _TuiClientDb(_UpdatingNode, SharedClientDbFields):
+ channels: _UpdatingDict[_UpdatingChannel]
caps: _UpdatingDict[_UpdatingServerCapability]
isupport: _UpdatingDict[str]
motd: tuple[str, ...] = tuple()
users: _UpdatingDict[_UpdatingUser]
- channels: _UpdatingDict[_UpdatingChannel]
def recursive_set_and_report_change(self, update: _Update) -> None:
super().recursive_set_and_report_change(update)
def __init__(self,
tui_log: Callable,
tui_new_window: Callable,
- path_logs: Optional[Path]
+ path_logs: Optional[Path],
+ to_highlight: tuple[str, ...]
) -> None:
self._tui_log = tui_log
self._tui_new_window = tui_new_window
self._path_logs = path_logs
+ self._to_highlight = to_highlight
self.db = _TuiClientDb()
self.windows: list[_ClientWindow] = []
prefix = _LOG_PREFIX_OUT if out else LOG_PREFIX_IN
kwargs = {'alert': True} if alert else {}
kwargs |= {'target': target} if target else {}
+ for word in [word for word in self._to_highlight if word in msg]:
+ prefix += '*'
+ break
self._tui_log(msg, scope=scope, prefix=prefix, **kwargs)
def update_db(self, update: _Update) -> bool:
_client_cls = ClientKnowingTui
_path_config: Optional[Path] = _PATH_CONFIG
_path_logs: Optional[Path] = _PATH_LOGS
+ _to_highlight: tuple[str, ...] = tuple()
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
config = toml_load(f)
else:
self.log(f'No config at {self._path_config}, proceeding without.')
+ self._to_highlight = config.get('to_highlight', tuple())
for server_conf in config.get('server', []):
self.log(f'Connecting: {server_conf}')
hostname = server_conf['hostname']
msg, client_id=client_id, **kw),
tui_new_window=lambda win_cls, **kw: self._new_window(
win_cls, _q_out=self._q_out, client_id=client_id, **kw),
- path_logs=self._path_logs)
+ path_logs=self._path_logs, to_highlight=self._to_highlight)
if getattr(self._client_mngrs[client_id], todo)(**kwargs) is not False:
self.redraw_affected()