Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IRCv3 "bot" mode support #2079

Closed
3 tasks done
dgw opened this issue May 31, 2021 · 2 comments
Closed
3 tasks done

IRCv3 "bot" mode support #2079

dgw opened this issue May 31, 2021 · 2 comments

Comments

@dgw
Copy link
Member

dgw commented May 31, 2021

Background

Spec: https://ircv3.net/specs/extensions/bot-mode

This extension adds a new ISUPPORT token for servers to advertise a mode that BOT clients may set on themselves to indicate their non-human status. Clients with the bot mode enabled are supposed to have their messages tagged with bot (well, draft/bot until spec ratification) so other clients can act appropriately.

Plans

I see two three different, but related, things for Sopel to do here:

  • Set the bot mode specified in the BOT token from ISUPPORT, if given, unless the config explicitly overrides it (can be as simple as looking for the modechar in core.modes and skipping this behavior if it's present, as Limnoria does). [coretasks: handle BOT ISUPPORT token & mode #2088]
  • Start ignoring other clients whose messages are tagged as bot, so there will be less manual .blocks add BotNick work needed from Sopel admins whose instances share channels with other compliant bots and want to minimize the risk of mutual triggers. [coretasks: activate message-tags and use it to ignore other bots' tagged messages #2089]
    • This will also require adding support for the message-tags CAP, since the bot tag is not sent to clients who have not requested message-tags. It shouldn't be much more work than adding it here, since there's already tag parsing in place for server-time and account-tag (the specs for which do not depend on message-tags being enabled).
  • Should probably have a @plugin.allow_bots decorator like that allows a callable to receive messages tagged as coming from another bot. [loader, plugin, plugins.rules: add allow_bots decorator #2244]
@half-duplex
Copy link
Member

I think #2244 resolves the third there, @dgw?

@dgw
Copy link
Member Author

dgw commented Feb 9, 2022

Oops, yes. Updated the OP, and I guess this is ready to close.

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

No branches or pull requests

3 participants