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

Ratify bot-mode #495

Merged
merged 2 commits into from
Apr 26, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 5 additions & 17 deletions extensions/bot-mode.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
title: Bot Mode
layout: spec
work-in-progress: true
meta-description: A user mode that indicates a user is a bot.
copyrights:
-
Expand All @@ -10,17 +9,6 @@ copyrights:
email: "[email protected]"
---

## Notes for implementing work-in-progress version

This is a work-in-progress specification.

Software implementing this work-in-progress specification MUST NOT use the
unprefixed `bot` tag name. Instead, implementations SHOULD use the
`draft/bot` tag name to be interoperable with other software
implementing a compatible work-in-progress version.

The final version of the specification will use an unprefixed tag name.

## Introduction
This is a standardised mode that lets clients mark themselves as bots, and lets other clients see them as bots.
progval marked this conversation as resolved.
Show resolved Hide resolved

Expand All @@ -40,8 +28,8 @@ Like other WHOIS reply numerics, `<nick>` is the nick of the sender, `<target>`
## The `WHO` bot flag
When a `RPL_WHOREPLY` `(352)` numeric is returned for a bot, the character used as the value of the ISUPPORT `BOT` token is returned in the flags (alongside `H|G`).

## The `draft/bot` tag
The `draft/bot` tag indicates that the given user is a bot. This tag SHOULD be added by the server to all commands sent by a bot (e.g. `PRIVMSG`, `JOIN`, `MODE`, `NOTICE`, and all others). The tag SHOULD also be added by the ircd to all numerics directly caused by the bot. This tag MUST only be sent to users who have requested the `message-tags` capability. Servers MUST NOT send this tag with a value, and clients MUST ignore any value if it exists.
## The `bot` tag
The `bot` tag indicates that the given user is a bot. This tag SHOULD be added by the server to all commands sent by a bot (e.g. `PRIVMSG`, `JOIN`, `MODE`, `NOTICE`, and all others). The tag SHOULD also be added by the ircd to all numerics directly caused by the bot. This tag MUST only be sent to users who have requested the `message-tags` capability. Servers MUST NOT send this tag with a value, and clients MUST ignore any value if it exists.

## Examples

Expand Down Expand Up @@ -78,10 +66,10 @@ Server: :irc.ircv3.net 352 alice #chat ~u 198.51.100.103 irc.ircv3.net alice H :
Server: :irc.ircv3.net 352 alice #chat ~u 203.0.113.22 irc.ircv3.net robodan Hb :0 Hi, I'm a bot!
Server: :irc.ircv3.net 315 alice #chat :End of WHO list
[ ... ]
Server: @draft/bot :[email protected] PRIVMSG #chat :Hello! Try typing .help to see my commands!
Server: @bot :[email protected] PRIVMSG #chat :Hello! Try typing .help to see my commands!
```

Example of some future value being sent, which the receiving client will ignore and process as a bare `@draft/bot` tag:
Example of some future value being sent, which the receiving client will ignore and process as a bare `@bot` tag:
```
Server: @draft/bot=someFutureValueHere=2343 :[email protected] PRIVMSG #chat :Hello! Try typing .help to see my commands!
Server: @bot=someFutureValueHere=2343 :[email protected] PRIVMSG #chat :Hello! Try typing .help to see my commands!
```