from getpass import getuser
from typing import (Any, Callable, Collection, Generic, Iterable, Iterator,
Optional, Self, Set, TypeVar)
-from uuid import uuid4
# ourselves
from ircplom.events import AffectiveEvent, QueueMixin
from ircplom.irc_conn import (
class _UpdatingUsersDict(_UpdatingDict[_UpdatingUser]):
+ def __init__(self, **kwargs) -> None:
+ super().__init__(**kwargs)
+ self._top_id = 0
+
def __getitem__(self, key: str) -> _UpdatingUser:
user = super().__getitem__(key)
user.id_ = key
else:
assert stored.host == nickuserhost.host
elif create_if_none:
- id_ = str(uuid4())
+ self._top_id += 1
+ id_ = str(self._top_id)
self[id_].nickuserhost = nickuserhost
else:
return None
2 < :SaslServ!SaslServ@services.bar.baz NOTICE foo :Last login from ~plom@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
3 <<< [SaslServ] Last login from ~plom@foo.bar.baz on Jan 1 22:00:00 2021 +0000.
-> /disconnect
-0 !# invalid prompt command: /disconnect unknown
-
+> /join #test
+0 !# invalid prompt command: /join unknown
> /list
0 # windows available via /window:
0 # 0) :start
0 # 3) foo.bar.baz SaslServ
> /window 1
+> /join #test
+2 > JOIN :#test
+2 < :foo!~plom@baz.bar.foo JOIN #test
+1,2 $ users:me:user set to: [~plom]
+2 < :foo.bar.baz 353 foo @ #test :foo @bar
+, $ ?!?@? renames ?
+, $ ?!?@? renames bar
+2 < :foo.bar.baz 366 foo #test :End of /NAMES list.
+4 $ residents: bar, foo
+2 < :bar!~bar@bar.bar PRIVMSG #test :hi there
+1,2 $ users:1:user set to: [~bar]
+1,2 $ users:1:host set to: [bar.bar]
+4 < [bar] hi there
+
> /disconnect
1,2 $ requesting disconnect …
2 > QUIT :ircplom says bye
2 < ERROR :Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]
-1,2,3 $ connection_state set to: [Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]]
-1,2,3 $ connection_state set to: []
+1,2,3,4 $ connection_state set to: [Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]]
+1,2,3,4 $ connection_state set to: []
1,2 $ isupport cleared
1,2 $ sasl_account set to: []
1,2 $ sasl_auth_state set to: []
1,2 $ users cleared
> /reconnect
-1,2,3 $ connection_state set to: [connecting]
+1,2,3,4 $ connection_state set to: [connecting]
# except for two positions marked with NB comment, exactly same as on 1st time
-1,2,3 $ ?!?@? renames ?
+1,2,3,4 $ ?!?@? renames ?
1,2 $ users:me:user set to: [plom]
-1,2,3 $ connection_state set to: [connected]
+1,2,3,4 $ connection_state set to: [connected]
1,2 $ caps cleared
2 > CAP LS :302
2 > USER plom 0 * :baz
2 < AUTHENTICATE +
2 > AUTHENTICATE :Zm9vAGZvbwBiYXI=
2 < :foo.bar.baz 900 foo foo!plom@baz.bar.foo foo :You are now logged in as foo
-1,2,3 $ ?!plom@? renames foo
+1,2,3,4 $ ?!plom@? renames foo
1,2 $ users:me:host set to: [baz.bar.foo]
1,2 $ sasl_account set to: [foo]
2 < :foo.bar.baz 903 foo :SASL authentication successful