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:
d4e21ce
)
Some more refactoring.
master
author
Christian Heller
<c.heller@plomlompom.de>
Tue, 5 Aug 2025 11:43:09 +0000
(13:43 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Tue, 5 Aug 2025 11:43:09 +0000
(13:43 +0200)
ircplom.py
patch
|
blob
|
history
ircplom/client.py
patch
|
blob
|
history
ircplom/client_tui.py
patch
|
blob
|
history
ircplom/events.py
patch
|
blob
|
history
ircplom/irc_conn.py
patch
|
blob
|
history
ircplom/tui_base.py
patch
|
blob
|
history
diff --git
a/ircplom.py
b/ircplom.py
index 007dd0573d9f8cf7abb82a396c90535e5e6f1b48..eb70cda5601cf736a5f1e3e0b3a2c001e8f270a4 100755
(executable)
--- a/
ircplom.py
+++ b/
ircplom.py
@@
-12,8
+12,8
@@
def main_loop() -> None:
q_events: SimpleQueue = SimpleQueue()
clients_db: ClientsDb = {}
try:
q_events: SimpleQueue = SimpleQueue()
clients_db: ClientsDb = {}
try:
- with Terminal(q_out=q_events).setup() as term:
- tui = ClientTui(q_out=q_events, term=term)
+ with Terminal(
_
q_out=q_events).setup() as term:
+ tui = ClientTui(
_
q_out=q_events, term=term)
while True:
event = q_events.get()
if isinstance(event, QuitEvent):
while True:
event = q_events.get()
if isinstance(event, QuitEvent):
diff --git
a/ircplom/client.py
b/ircplom/client.py
index 5453afe274a4c7686867aaeaa586ddc3a08caaa4..e2d38593cd4e127f10dd6ece4b37c1e8a9324b86 100644
(file)
--- a/
ircplom/client.py
+++ b/
ircplom/client.py
@@
-34,11
+34,11
@@
class ClientEvent(AffectiveEvent, ClientIdMixin):
@dataclass
class _IrcConnection(BaseIrcConnection, ClientIdMixin):
@dataclass
class _IrcConnection(BaseIrcConnection, ClientIdMixin):
- hostname: InitVar[str]
- port: InitVar[int]
+ hostname: InitVar[str]
# needed by BaseIrcConnection, but not desired as
+ port: InitVar[int]
# dataclass fields, only for __post_init__ call
def __post_init__(self, hostname, port, **kwargs) -> None:
def __post_init__(self, hostname, port, **kwargs) -> None:
- super().__init__(hostname=hostname, port=port,
q_out=self.
q_out,
+ super().__init__(hostname=hostname, port=port,
_q_out=self._
q_out,
**kwargs)
def _make_recv_event(self, msg: IrcMessage) -> ClientEvent:
**kwargs)
def _make_recv_event(self, msg: IrcMessage) -> ClientEvent:
@@
-48,13
+48,11
@@
class _IrcConnection(BaseIrcConnection, ClientIdMixin):
@dataclass
@dataclass
-class ClientQueueMixin(QueueMixin):
+class ClientQueueMixin(QueueMixin
, ClientIdMixin
):
'To QueueMixin adds _cput to extend ._put with client_id= setting.'
'To QueueMixin adds _cput to extend ._put with client_id= setting.'
- client_id_name = 'id_'
def _cput(self, event_class, **kwargs) -> None:
def _cput(self, event_class, **kwargs) -> None:
- self._put(event_class(client_id=getattr(self, self.client_id_name),
- **kwargs))
+ self._put(event_class(client_id=self.client_id, **kwargs))
def _cputs(self, method_to_call: str, **kwargs) -> None:
self._cput(ClientEvent.make_subtype(method_to_call, **kwargs))
def _cputs(self, method_to_call: str, **kwargs) -> None:
self._cput(ClientEvent.make_subtype(method_to_call, **kwargs))
@@
-176,12
+174,12
@@
class Client(ABC, ClientQueueMixin):
conn: Optional[_IrcConnection] = None
def __init__(self, conn_setup: IrcConnSetup, **kwargs) -> None:
conn: Optional[_IrcConnection] = None
def __init__(self, conn_setup: IrcConnSetup, **kwargs) -> None:
- super().__init__(**kwargs)
self._caps = _CapsManager(self.send)
self.conn_setup = conn_setup
if self.conn_setup.port <= 0:
self.conn_setup.port = PORT_SSL
self._caps = _CapsManager(self.send)
self.conn_setup = conn_setup
if self.conn_setup.port <= 0:
self.conn_setup.port = PORT_SSL
- self.id_ = self.conn_setup.hostname
+ self.client_id = self.conn_setup.hostname
+ super().__init__(client_id=self.client_id, **kwargs)
self.log = Logger(self._log)
self.update_login(nick_confirmed=False,
nickname=self.conn_setup.nickname)
self.log = Logger(self._log)
self.update_login(nick_confirmed=False,
nickname=self.conn_setup.nickname)
@@
-198,8
+196,8
@@
class Client(ABC, ClientQueueMixin):
'not re-connecting since already connected')
self.conn = _IrcConnection(hostname=self.conn_setup.hostname,
port=self.conn_setup.port,
'not re-connecting since already connected')
self.conn = _IrcConnection(hostname=self.conn_setup.hostname,
port=self.conn_setup.port,
-
q_out=self.
q_out,
- client_id=self.
id_
)
+
_q_out=self._
q_out,
+ client_id=self.
client_id
)
self._cputs('on_connect')
except IrcConnAbortException as e:
self.log.alert(str(e))
self._cputs('on_connect')
except IrcConnAbortException as e:
self.log.alert(str(e))
@@
-305,4
+303,4
@@
class NewClientEvent(AffectiveEvent):
payload: Client
def affect(self, target: ClientsDb) -> None:
payload: Client
def affect(self, target: ClientsDb) -> None:
- target[self.payload.
id_
] = self.payload
+ target[self.payload.
client_id
] = self.payload
diff --git
a/ircplom/client_tui.py
b/ircplom/client_tui.py
index 262a2c9ccf5e59bd33b68d29d40f3cb27299713b..366a7268b10af401266c80744de72560a87f7d38 100644
(file)
--- a/
ircplom/client_tui.py
+++ b/
ircplom/client_tui.py
@@
-34,18
+34,12
@@
class _ClientPromptWidget(PromptWidget):
other.prefix = self._prefix
other.prefix = self._prefix
+@dataclass
class _ClientWindow(Window, ClientQueueMixin):
class _ClientWindow(Window, ClientQueueMixin):
- client_id_name = 'client_id'
prompt: _ClientPromptWidget
prompt: _ClientPromptWidget
- def __init__(self,
- parent: 'ClientTui',
- client_id: str,
- chat: str = '',
- **kwargs
- ) -> None:
+ def __init__(self, parent: 'ClientTui', chat: str = '', **kwargs) -> None:
self._parent = parent
self._parent = parent
- self.client_id = client_id
self.chat = chat
super().__init__(**kwargs)
self.chat = chat
super().__init__(**kwargs)
@@
-107,7
+101,7
@@
class ClientTui(BaseTui):
win_class = (_PrivmsgWindow if (chat and chat[0].isalpha())
else _ClientWindow)
win = win_class(parent=self, idx=new_idx, term=self.term,
win_class = (_PrivmsgWindow if (chat and chat[0].isalpha())
else _ClientWindow)
win = win_class(parent=self, idx=new_idx, term=self.term,
-
q_out=self.
q_out, client_id=client_id, chat=chat)
+
_q_out=self._
q_out, client_id=client_id, chat=chat)
self.windows += [win]
self._switch_window(new_idx)
return win
self.windows += [win]
self._switch_window(new_idx)
return win
@@
-163,7
+157,7
@@
class ClientTui(BaseTui):
realname = nickname
self._put(NewClientEvent(
_ClientKnowingTui(
realname = nickname
self._put(NewClientEvent(
_ClientKnowingTui(
-
q_out=self.
q_out,
+
_q_out=self._
q_out,
conn_setup=IrcConnSetup(
hostname, port, nickname, realname, password))))
conn_setup=IrcConnSetup(
hostname, port, nickname, realname, password))))
diff --git
a/ircplom/events.py
b/ircplom/events.py
index 7e96a50667d3d1af2a3135c09abfe75a72311c77..0da75744548a7d738210e89f456b934a5ec92c3e 100644
(file)
--- a/
ircplom/events.py
+++ b/
ircplom/events.py
@@
-48,11
+48,11
@@
class QuitEvent(Event):
@dataclass
class QueueMixin:
@dataclass
class QueueMixin:
- 'Adds SimpleQueue
.q_out
addressable via ._put(Event).'
- q_out: SimpleQueue
+ 'Adds SimpleQueue addressable via ._put(Event).'
+
_
q_out: SimpleQueue
def _put(self, event: Event) -> None:
def _put(self, event: Event) -> None:
- self.q_out.put(event)
+ self.
_
q_out.put(event)
class Loop(QueueMixin):
class Loop(QueueMixin):
diff --git
a/ircplom/irc_conn.py
b/ircplom/irc_conn.py
index 45ebc47a041faeed89c589ffb20be6f5d9f703c4..80510b66f398ee7cca5035292875373fa72c832e 100644
(file)
--- a/
ircplom/irc_conn.py
+++ b/
ircplom/irc_conn.py
@@
-141,7
+141,7
@@
class BaseIrcConnection(QueueMixin, ABC):
except (TimeoutError, socket_gaierror) as e:
raise IrcConnAbortException(e) from e
self._socket.settimeout(_TIMEOUT_RECV_LOOP)
except (TimeoutError, socket_gaierror) as e:
raise IrcConnAbortException(e) from e
self._socket.settimeout(_TIMEOUT_RECV_LOOP)
- self._recv_loop = Loop(iterator=self._read_lines(),
q_out=self.
q_out)
+ self._recv_loop = Loop(iterator=self._read_lines(),
_q_out=self._
q_out)
def close(self) -> None:
'Stop recv loop and close socket.'
def close(self) -> None:
'Stop recv loop and close socket.'
diff --git
a/ircplom/tui_base.py
b/ircplom/tui_base.py
index 9685c13b400e50a4463c750d887d19a4a0d25d45..ca427a9385975290d00159143b07d2ce8e878689 100644
(file)
--- a/
ircplom/tui_base.py
+++ b/
ircplom/tui_base.py
@@
-510,7
+510,7
@@
class Terminal(QueueMixin):
with (self._blessed.raw(),
self._blessed.fullscreen(),
self._blessed.hidden_cursor(),
with (self._blessed.raw(),
self._blessed.fullscreen(),
self._blessed.hidden_cursor(),
- Loop(iterator=self._get_keypresses(),
q_out=self.
q_out)):
+ Loop(iterator=self._get_keypresses(),
_q_out=self._
q_out)):
yield self
@property
yield self
@property