From: Christian Heller Date: Thu, 18 Sep 2025 06:01:45 +0000 (+0200) Subject: Allow explicit setting of username. X-Git-Url: https://plomlompom.com/repos/booking/do_day?a=commitdiff_plain;h=f2ce1eb49993f0ac1fc5c4278227acd346c6e9f2;p=ircplom Allow explicit setting of username. --- diff --git a/ircplom/client.py b/ircplom/client.py index 6b9cd10..3e2c946 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -259,6 +259,7 @@ class IrcConnSetup: hostname: str = '' port: int = 0 nick_wanted: str = '' + user_wanted: str = '' realname: str = '' password: str = '' @@ -761,6 +762,8 @@ class Client(ABC, ClientQueueMixin): setattr(self.db, k, getattr(conn_setup, k)) if self.db.port <= 0: self.db.port = PORT_SSL + if not self.db.user_wanted: + self.db.user_wanted = getuser() def connect(self) -> None: 'Attempt to open connection, on success perform session init steps.' @@ -772,10 +775,9 @@ class Client(ABC, ClientQueueMixin): except IrcConnAbortException as e: self.db.connection_state = f'failed to connect: {e}' return - self.db.users['me'].nickuserhost = NickUserHost(user=getuser()) self.db.connection_state = 'connected' self.caps.start_negotation() - self.send('USER', self.db.users['me'].user.lstrip('~'), + self.send('USER', self.db.user_wanted, '0', '*', self.db.realname) self.send('NICK', self.db.nick_wanted,) diff --git a/ircplom/client_tui.py b/ircplom/client_tui.py index 1e5366a..293dde9 100644 --- a/ircplom/client_tui.py +++ b/ircplom/client_tui.py @@ -440,7 +440,7 @@ class ClientTui(BaseTui): def cmd__connect(self, host_port: str, nickname_pw: str = '', - realname: str = '' + username_realname: str = '' ) -> Optional[str]: 'Create Client and pass it via NewClientEvent.' split = host_port.split(':', maxsplit=1) @@ -457,10 +457,16 @@ class ClientTui(BaseTui): split = nickname_pw.split(':', maxsplit=1) nickname = split[0] if nickname_pw else getuser() password = split[1] if len(split) > 1 else '' - if not realname: + if not username_realname: + username = '' realname = nickname + elif ':' in username_realname: + username, realname = username_realname.split(':', maxsplit=1) + else: + username = '' + realname = username_realname self._put(NewClientEvent(self._new_client(IrcConnSetup( - hostname, port, nickname, realname, password)))) + hostname, port, nickname, username, realname, password)))) return None diff --git a/test.txt b/test.txt index 8fbff22..1b842a2 100644 --- a/test.txt +++ b/test.txt @@ -16,7 +16,7 @@ # some simple expected command successes > /help 0 # commands available in this window: -0 # /connect HOST_PORT [NICKNAME_PW] [REALNAME] +0 # /connect HOST_PORT [NICKNAME_PW] [USERNAME_REALNAME] 0 # /help 0 # /list 0 # /prompt_enter @@ -43,7 +43,7 @@ # ETC. # on /connect init databases, log in new windows -> /connect foo.bar.baz foo:bar baz +> /connect foo.bar.baz foo:bar bar:baz 1,2 $ isupport cleared 1,2 $ isupport:CHANTYPES set to: [#&] 1,2 $ isupport:PREFIX set to: [(ov)@+] @@ -55,18 +55,16 @@ 1,2 $ hostname set to: [foo.bar.baz] 1,2 $ port set to: [-1] 1,2 $ nick_wanted set to: [foo] +1,2 $ user_wanted set to: [bar] 1,2 $ realname set to: [baz] 1,2 $ password set to: [bar] 1,2 $ port set to: [6697] 1,2 $ connection_state set to: [connecting] -1,2 $ users:me:nick set to: [?] -1,2 $ ?!?@? renames ? -1,2 $ users:me:user set to: [plom] 1,2 $ connection_state set to: [connected] 2 > CAP LS :302 -2 > USER plom 0 * :baz +2 > USER bar 0 * :baz 2 > NICK :foo 2 < :*.?.net NOTICE * :*** Looking up your ident... @@ -96,10 +94,13 @@ 2 > AUTHENTICATE :PLAIN 2 < AUTHENTICATE + 2 > AUTHENTICATE :Zm9vAGZvbwBiYXI= -2 < :foo.bar.baz 900 foo foo!plom@baz.bar.foo foo :You are now logged in as foo +2 < :foo.bar.baz 900 foo foo!bar@baz.bar.foo foo :You are now logged in as foo +1,2 $ users:me:nick set to: [?] +1,2 $ ?!?@? renames ? 1,2 $ users:me:nick set to: [foo] -1,2 $ ?!plom@? renames foo +1,2 $ ?!?@? renames foo +1,2 $ users:me:user set to: [bar] 1,2 $ users:me:host set to: [baz.bar.foo] 1,2 $ sasl_account set to: [foo] @@ -144,8 +145,8 @@ 2 < :foo MODE foo :+Ziw 1,2 $ users:me:modes set to: [+Ziw] -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. +2 < :SaslServ!SaslServ@services.bar.baz NOTICE foo :Last login from ~bar@foo.bar.baz on Jan 1 22:00:00 2021 +0000. +3 <<< [SaslServ] Last login from ~bar@foo.bar.baz on Jan 1 22:00:00 2021 +0000. > /join #test 0 !# invalid prompt command: /join unknown @@ -159,8 +160,8 @@ > /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.bar.foo JOIN #test +1,2 $ users:me:user set to: [~bar] 2 < :foo.bar.baz 332 foo #test :foo bar baz 2 < :foo.bar.baz 333 foo #test bar!~bar@bar.bar 1234567890 4 $ bar!~bar@bar.bar set topic: foo bar baz @@ -208,8 +209,8 @@ 1,2 $ users:3 cleared 1,2 $ users:3:nick set to: [?] , $ ?!?@? renames ? -2 < :foo!~plom@baz.bar.foo PART :#test -1,2,3,4 $ foo!~plom@baz.bar.foo parts +2 < :foo!~bar@baz.bar.foo PART :#test +1,2,3,4 $ foo!~bar@baz.bar.foo parts 1,2 $ users:3 cleared 1,2 $ channels:#test cleared 1,2 $ users:1 cleared @@ -217,10 +218,10 @@ > /disconnect 1,2 $ requesting disconnect … 2 > QUIT :ircplom says bye -2 < :foo!~plom@baz.bar.foo QUIT :Client Quit -1,2,3,4 $ foo!~plom@baz.bar.foo quits: Client Quit -2 < ERROR :Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye] -1,2,3,4 $ connection_state set to: [Closing link: (plom@baz.bar.foo) [Quit: ircplom says bye]] +2 < :foo!~bar@baz.bar.foo QUIT :Client Quit +1,2,3,4 $ foo!~bar@baz.bar.foo quits: Client Quit +2 < ERROR :Closing link: (bar@baz.bar.foo) [Quit: ircplom says bye] +1,2,3,4 $ connection_state set to: [Closing link: (bar@baz.bar.foo) [Quit: ircplom says bye]] 1,2,3,4 $ connection_state set to: [] 1,2 $ isupport cleared 1,2 $ isupport:CHANTYPES set to: [#&] @@ -236,12 +237,9 @@ 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 $ users:me:nick set to: [?] -1,2,3,4 $ ?!?@? renames ? -1,2 $ users:me:user set to: [plom] 1,2,3,4 $ connection_state set to: [connected] 2 > CAP LS :302 -2 > USER plom 0 * :baz +2 > USER bar 0 * :baz 2 > NICK :foo 2 < :*.?.net NOTICE * :*** Looking up your ident... 1,2 $$$ *** Looking up your ident... @@ -269,9 +267,12 @@ 2 > AUTHENTICATE :PLAIN 2 < AUTHENTICATE + 2 > AUTHENTICATE :Zm9vAGZvbwBiYXI= -2 < :foo.bar.baz 900 foo foo!plom@baz.bar.foo foo :You are now logged in as foo +2 < :foo.bar.baz 900 foo foo!bar@baz.bar.foo foo :You are now logged in as foo +1,2 $ users:me:nick set to: [?] +1,2,3,4 $ ?!?@? renames ? 1,2 $ users:me:nick set to: [foo] -1,2,3,4 $ ?!plom@? renames foo +1,2,3,4 $ ?!?@? renames foo +1,2 $ users:me:user set to: [bar] 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 @@ -307,12 +308,12 @@ 1,2 $ - (to this server) - 2 < :foo MODE foo :+Ziw 1,2 $ users:me:modes set to: [+Ziw] -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. +2 < :SaslServ!SaslServ@services.bar.baz NOTICE foo :Last login from ~bar@foo.bar.baz on Jan 1 22:00:00 2021 +0000. +3 <<< [SaslServ] Last login from ~bar@foo.bar.baz on Jan 1 22:00:00 2021 +0000. > /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.bar.foo JOIN #test +1,2 $ users:me:user set to: [~bar] 2 < :foo.bar.baz 353 foo @ #test :foo @bar 1,2 $ users:4:nick set to: [?] , $ ?!?@? renames ?