Skip to content

Libera services fix 2026 - #762

Open
itzdarc wants to merge 7 commits into
masterfrom
libera-services-fix-2026
Open

Libera services fix 2026#762
itzdarc wants to merge 7 commits into
masterfrom
libera-services-fix-2026

Conversation

@itzdarc

@itzdarc itzdarc commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

The IRC network we use, irc.libera.chat, changed their IRC services from what they used to use on irc.freenode.net.

NickServ Status Break

The new IRC services makes use of a NickServ implementation that has changed the /NickServ STATUS command to no longer use an argument for a user. This command was used to determine if a particular user of a nick was authenticated to NickServ for that nick.

The main fix for this section is comprised of alterations in lib/ircWrappers.js lines 567-570.

On receiving a command now, the following sequence took place:

2026-06-11T12:21:38.902Z info: Message: NickServ status Darc
GOT MESSAGE from Darc: advice
SEND: PRIVMSG NickServ :status Darc
GOT NOTICE from "NickServ": "You are logged in as MrNodeBot."

Notice NickServ tells THE BOT they are authenticated, rather than telling the bot whether the requested user is authenticated. This is a change in the NickServ behavior. A /NickServ help status reveals the following status page:

08:24:17	<Darc>	help status
08:24:17	--	NickServ: ***** NickServ Help *****
08:24:17	--	NickServ:  
08:24:17	--	NickServ: Help for STATUS:
08:24:18	--	NickServ:  
08:24:18	--	NickServ: STATUS returns information about your current
08:24:18	--	NickServ: state. It will show information about your
08:24:18	--	NickServ: nickname, IRC operator, and SRA status.
08:24:18	--	NickServ:  
08:24:18	--	NickServ: Syntax: STATUS
08:24:18	--	NickServ:  
08:24:18	--	NickServ: Example:
08:24:18	--	NickServ:     /msg NickServ STATUS
08:24:18	--	NickServ:  
08:24:18	--	NickServ: ***** End of Help *****

The method used to check whether the user is authenticated to their nick needs to be changed to /NickServ info={nick} according to the following page:

08:24:37	<Darc>	help info
08:24:37	--	NickServ: ***** NickServ Help *****
08:24:37	--	NickServ:  
08:24:37	--	NickServ: Help for INFO:
08:24:37	--	NickServ:  
08:24:37	--	NickServ: INFO displays account information such as
08:24:37	--	NickServ: registration time, flags, and other details.
08:24:37	--	NickServ: Additionally it will display registration
08:24:37	--	NickServ: and last seen time of the nick you give.
08:24:37	--	NickServ:  
08:24:37	--	NickServ: You can query the nick a user is logged in as
08:24:37	--	NickServ: by specifying an equals sign followed by their
08:24:37	--	NickServ: nick. This '=' convention works with most commands.
08:24:37	--	NickServ:  
08:24:37	--	NickServ: Syntax: INFO <nickname>
08:24:37	--	NickServ: Syntax: INFO =<online user>
08:24:37	--	NickServ:  
08:24:37	--	NickServ: Examples:
08:24:38	--	NickServ:  
08:24:38	--	NickServ:     /msg NickServ INFO w00t
08:24:38	--	NickServ:  
08:24:38	--	NickServ:     Shows information about the registered nick w00t.
08:24:38	--	NickServ:  
08:24:38	--	NickServ:     /msg NickServ INFO =w00tie[home]
08:24:38	--	NickServ:  
08:24:38	--	NickServ:     Shows information about the registered nick the user
08:24:38	--	NickServ:     w00tie[home] is logged in as.
08:24:38	--	NickServ:  
08:24:38	--	NickServ: ***** End of Help *****

... and use example:

08:25:54	<Darc>	info =Darc
08:25:55	--	NickServ: Information on Darc (account Darc):
08:25:55	--	NickServ: Registered : May 21 03:16:04 2021 +0000 (5y 3w 1d ago)
08:25:55	--	NickServ: Last addr  : ~darcness@user/Darc
08:25:55	--	NickServ: vHost      : user/Darc (assigned on Mar 04 05:21:06 2022 +0000 (4y 14w 2d ago))
08:25:55	--	NickServ: Last seen  : now
08:25:55	--	NickServ: User seen  : now
08:25:55	--	NickServ: Logins from: Darc
08:25:55	--	NickServ: Nicks      : Darc
08:25:55	--	NickServ: Email      : darc@tzirc.com (hidden)
08:25:55	--	NickServ: Flags      : HideMail, Private
08:25:55	--	NickServ: Channels   : 3 founder, 0 other
08:25:55	--	NickServ: Darc has enabled nick protection
08:25:55	--	NickServ: *** End of Info ***

... and ...

08:26:09	<Darc>	info =joel1
08:26:10	--	NickServ: Information on joel1 (account joel1):
08:26:10	--	NickServ: Registered : May 19 22:30:11 2021 +0000 (5y 3w 2d ago)
08:26:10	--	NickServ: Last seen  : (less than two weeks ago)
08:26:10	--	NickServ: User seen  : (less than two weeks ago)
08:26:10	--	NickServ: Flags      : HideMail, Private
08:26:10	--	NickServ: joel1 has enabled nick protection
08:26:10	--	NickServ: *** End of Info ***

This PR implements that change.

This PR also makes some adjustments to bcrypt rounds which was causing the bot to hang, apparently waiting for the heat death of the container.

This PR also adds support for .env files which can be easily workable with docker containers, as well as a sample working compose.yml file as compose.sample.yml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant