home
·
contact
·
privacy
projects
/
ircplom
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5c71fc7
)
Only enable /part for channel windows.
master
author
Christian Heller
<c.heller@plomlompom.de>
Wed, 13 Aug 2025 06:31:56 +0000
(08:31 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Wed, 13 Aug 2025 06:31:56 +0000
(08:31 +0200)
ircplom/client_tui.py
patch
|
blob
|
history
diff --git
a/ircplom/client_tui.py
b/ircplom/client_tui.py
index c209f00dc538292bb810b773b546862729d3fb64..60fd1aa0940cd7da7c5dbe023abf0a9966fea709 100644
(file)
--- a/
ircplom/client_tui.py
+++ b/
ircplom/client_tui.py
@@
-53,10
+53,6
@@
class _ClientWindow(Window, ClientQueueMixin):
'Attempt joining a channel.'
self._send_msg('JOIN', (channel,))
'Attempt joining a channel.'
self._send_msg('JOIN', (channel,))
- def cmd__part(self, channel: str) -> None:
- 'Attempt joining a channel.'
- self._send_msg('PART', (channel,))
-
def cmd__privmsg(self, target: str, msg: str) -> None:
'Send chat message msg to target.'
self._send_msg('PRIVMSG', (target, msg), log_target=target, to_log=msg)
def cmd__privmsg(self, target: str, msg: str) -> None:
'Send chat message msg to target.'
self._send_msg('PRIVMSG', (target, msg), log_target=target, to_log=msg)
@@
-71,7
+67,7
@@
class _ClientWindow(Window, ClientQueueMixin):
self._send_msg(verb, tuple(params))
self._send_msg(verb, tuple(params))
-class _
PrivmsgPromptWidge
t(PromptWidget):
+class _
ChatPromp
t(PromptWidget):
_nickname: str = ''
_nick_confirmed: bool = False
_nickname: str = ''
_nick_confirmed: bool = False
@@
-95,8
+91,8
@@
class _PrivmsgPromptWidget(PromptWidget):
return f'/window.chat {to_return}'
return f'/window.chat {to_return}'
-class _
Privmsg
Window(_ClientWindow):
- prompt: _
PrivmsgPromptWidge
t
+class _
Chat
Window(_ClientWindow):
+ prompt: _
ChatPromp
t
def __init__(self, chatname: str, get_nick_data: Callable, **kwargs
) -> None:
def __init__(self, chatname: str, get_nick_data: Callable, **kwargs
) -> None:
@@
-117,6
+113,13
@@
class _PrivmsgWindow(_ClientWindow):
self.cmd__privmsg(target=self.chatname, msg=msg)
self.cmd__privmsg(target=self.chatname, msg=msg)
+class _ChannelWindow(_ChatWindow):
+
+ def cmd__part(self) -> None:
+ 'Attempt joining a channel.'
+ self._send_msg('PART', (self.chatname,))
+
+
@dataclass
class _ClientWindowsManager:
_tui_log: Callable
@dataclass
class _ClientWindowsManager:
_tui_log: Callable
@@
-132,7
+135,8
@@
class _ClientWindowsManager:
def _new_win(self, scope: LogScope, chatname: str = '') -> _ClientWindow:
kwargs = {'scope': scope, 'log': self.log, 'win_cls': _ClientWindow}
if scope == LogScope.CHAT:
def _new_win(self, scope: LogScope, chatname: str = '') -> _ClientWindow:
kwargs = {'scope': scope, 'log': self.log, 'win_cls': _ClientWindow}
if scope == LogScope.CHAT:
- kwargs['win_cls'] = _PrivmsgWindow
+ kwargs['win_cls'] = (_ChannelWindow if chatname[0] == '#'
+ else _ChatWindow)
kwargs['chatname'] = chatname
kwargs['get_nick_data'] = lambda: self._db.get_force('nickname')
win = self._tui_new_window(**kwargs)
kwargs['chatname'] = chatname
kwargs['get_nick_data'] = lambda: self._db.get_force('nickname')
win = self._tui_new_window(**kwargs)
@@
-143,8
+147,7
@@
class _ClientWindowsManager:
'Return client window of scope.'
for win in [w for w in self.windows if w.scope == scope]:
if scope == LogScope.CHAT:
'Return client window of scope.'
for win in [w for w in self.windows if w.scope == scope]:
if scope == LogScope.CHAT:
- if isinstance(win, _PrivmsgWindow)\
- and win.chatname == chatname:
+ if isinstance(win, _ChatWindow) and win.chatname == chatname:
return win
continue
return win
return win
continue
return win
@@
-173,7
+176,7
@@
class _ClientWindowsManager:
if changes[i]:
self.log(f'changing {t[0]}{key} to: [{t[1]}]', scope=scope)
for win in [w for w in self.windows
if changes[i]:
self.log(f'changing {t[0]}{key} to: [{t[1]}]', scope=scope)
for win in [w for w in self.windows
- if isinstance(w, _
Privmsg
Window)]:
+ if isinstance(w, _
Chat
Window)]:
win.set_prompt_prefix()
return bool([w for w in self.windows if w.tainted])
win.set_prompt_prefix()
return bool([w for w in self.windows if w.tainted])