def windows_for_userid(self, user_id: str, w_channels=True
) -> list[_ClientWindow]:
'Return windows interacting with userid (all if "me").'
- if user_id == 'me':
- return self.windows[:]
chan_names = [c for c, v in self.db.channels.items()
if user_id in v.user_ids]
return [w for w in self.windows
and isinstance(w, _ChannelWindow)
and w.chatname in chan_names)
or (isinstance(w, _QueryWindow)
- and w.chatname in {
+ and (user_id == 'me' or w.chatname in {
self.db.users[user_id].nick,
- self.db.users[user_id].prev_nick}))]
+ self.db.users[user_id].prev_nick})))]
def log(self, msg: str, scope: LogScope, **kwargs) -> None:
'From parsing scope, kwargs, build prefix before sending to logger.'
1,2 $ requesting disconnect …
2 > QUIT :ircplom says bye
2 < :foo!~foobarbaz@baz.bar.foo QUIT :Client Quit
-1,2,3,4,5,6 $ foo!~foobarbaz@baz.bar.foo quits: Client Quit
+3,6 $ foo!~foobarbaz@baz.bar.foo quits: Client Quit
1,2 $ channels:#testtest:exits:me set to: [QClient Quit]
1,2 $ channels:#testtest:user_ids set to:
5 $ quits: foo!~foobarbaz@baz.bar.foo: Client Quit