class _ClientWindow(Window, ClientQueueMixin):
- def __init__(self, **kwargs) -> None:
+ def __init__(self, path_logs: Optional[Path], **kwargs) -> None:
+ self._path_logs = path_logs
super().__init__(**kwargs)
self._title = f'{self.client_id} :DEBUG'
def log(self, msg: str) -> None:
super().log(msg)
+ if self._path_logs is None:
+ return
escaped = ''
for char in self._title:
if (char.isalpha() and char.isascii()) or char in '-.':
class _ClientWindowsManager:
- def __init__(self, tui_log: Callable, tui_new_window: Callable) -> None:
+ def __init__(self,
+ tui_log: Callable,
+ tui_new_window: Callable,
+ path_logs: Optional[Path]
+ ) -> None:
self._tui_log = tui_log
self._tui_new_window = tui_new_window
+ self._path_logs = path_logs
self.db = _TuiClientDb()
self.windows: list[_ClientWindow] = []
def _new_win(self, scope: _LogScope, chatname: str = '') -> _ClientWindow:
if scope == _LogScope.CHAT:
win = self._tui_new_window(
+ chatname=chatname, path_logs=self._path_logs,
win_cls=(_ChannelWindow if self.db.is_chan_name(chatname)
else _QueryWindow),
- chatname=chatname,
get_nick_data=lambda: (self.db.users['me'].nick
if 'me' in self.db.users.keys()
else '?'))
else:
- win = self._tui_new_window(win_cls=_ClientWindow)
+ win = self._tui_new_window(win_cls=_ClientWindow,
+ path_logs=self._path_logs)
self.windows += [win]
return win
'TUI expanded towards Client features.'
_client_cls = ClientKnowingTui
_path_config: Optional[Path] = _PATH_CONFIG
+ _path_logs: Optional[Path] = _PATH_LOGS
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
tui_log=lambda msg, **kw: self.log(
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))
+ win_cls, _q_out=self._q_out, client_id=client_id, **kw),
+ path_logs=self._path_logs)
if getattr(self._client_mngrs[client_id], todo)(**kwargs) is not False:
self.redraw_affected()