Last active
August 18, 2020 13:05
-
-
Save DanielOaks/a64a1b0e01609e6e0f86a6cf92973caa to your computer and use it in GitHub Desktop.
Revisions
-
DanielOaks revised this gist
Jul 18, 2017 . 1 changed file with 2 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -19,6 +19,8 @@ When sending messages out, clients should only send PRIVMSG or NOTICE messages w When receiving messages, clients should assume that the server can send it any supported channel priv prefixes in a statusmsg target. This is because the `STATUSMSG` token may be missing or outdated, and simply because it's the most resilient behaviour. For example, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then your client should not break if it receives a target of `%#ircv3`. Similarly, if no `STATUSMSG` token was sent in the above example, clients should accept targets of `+#ircv3`, `%#ircv3` and `@#ircv3`. Clients should also keep in mind the `CHANTYPES` ISUPPORT token. Take the characters from the `PREFIX` token, subtract all the characters in `CHANTYPES`, and then accept you can receive statusmsg targets with all of those characters. This is because certain networks like ircnet support both voice with the `+` character, and channels that start with `+`, meaning you can't just assume that a target starting with a character from `PREFIX` is a statusmsg. ### Multiple Prefixes -
DanielOaks revised this gist
Jul 18, 2017 . 1 changed file with 4 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,21 +1,21 @@ # Parsing And Sending STATUSMSG Messages `STATUSMSG` is a type of IRC private message / notice where the target of the private message is the members of a channel with at least a certain level of channel responsibility. In other words, instead of the target of the message just being `#ircv3`, it may be `@#ircv3` and only be send to the ops of the channel, rather than all members of the channel. ## The STATUSMSG ISUPPORT Token The `STATUSMSG` `RPL_ISUPPORT` token is used to note that the server supports sending private messages and notices with these special 'statusmsg targets' (the channel name prefixed by a given privilege level character such as `+`, `%`, `@` or similar). Specifically, this token notes which privilege level characters the server supports from clients that send these messages. For instance, here's an example token: STATUSMSG=+@ The above means that the server supports channel targets prefixed by `+` or `@`. That is, clients can send a message to either `+#ircv3` or `@#ircv3` and it will be delivered to the right users (only those who have voice and above, and only those who have ops and above, respectively). When sending messages out, clients should only send PRIVMSG or NOTICE messages with a statusmsg target if the privilege prefix on the message matches the above. That is, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then they can send messages to `+#ircv3` and `@#ircv3`, but messages sent to `%#ircv3` will most likely fail. When receiving messages, clients should assume that the server can send it any supported channel priv prefixes in a statusmsg target. This is because the `STATUSMSG` token may be missing or outdated, and simply because it's the most resilient behaviour. For example, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then your client should not break if it receives a target of `%#ircv3`. Similarly, if no `STATUSMSG` token was sent in the above example, clients should accept targets of `+#ircv3`, `%#ircv3` and `@#ircv3`. -
DanielOaks revised this gist
Jul 18, 2017 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,7 +17,7 @@ The above means that the server supports channel targets prefixed by `+` or `@`. When sending messages out, clients should only send PRIVMSG or NOTICE messages with a statusmsg target if the privilidge prefix on the message matches the above. That is, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then they can send messages to `+#ircv3` and `@#ircv3`, but messages sent to `%#ircv3` will most likely fail. When receiving messages, clients should assume that the server can send it any supported channel priv prefixes in a statusmsg target. This is because the `STATUSMSG` token may be missing or outdated, and simply because it's the most resilient behaviour. For example, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then your client should not break if it receives a target of `%#ircv3`. Similarly, if no `STATUSMSG` token was sent in the above example, clients should accept targets of `+#ircv3`, `%#ircv3` and `@#ircv3`. ### Multiple Prefixes -
DanielOaks created this gist
Jul 18, 2017 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,25 @@ # Parsing And Sending STATUSMSG Messages `STATUSMG` is a type of IRC private message / notice where the target of the private message is the members of a channel with at least a certain level of channel responsibility. In other words, instead of the target of the message just being `#ircv3`, it may be `@#ircv3` and only be send to the ops of the channel, rather than all members of the channel. ## The STATUSMSG ISUPPORT Token The `STATUSMSG` `RPL_ISUPPORT` token is used to note that the server supports sending private messages and notices with these special 'statusmsg targets' (the channel name prefixed by a given privilidge level character such as `+`, `%`, `@` or similar). Specifically, this token notes which privilidge level characters the server supports from clients that send these messages. For instance, here's an example token: STATUSMSG=+@ The above means that the server supports channel targets prefixed by `+` or `@`. That is, clients can send a message to either `+#ircv3` or `@#ircv3` and it will be delivered to the right users (only those who have voice and above, and only those who have ops and above, respectively). When sending messages out, clients should only send PRIVMSG or NOTICE messages with a statusmsg target if the privilidge prefix on the message matches the above. That is, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then they can send messages to `+#ircv3` and `@#ircv3`, but messages sent to `%#ircv3` will most likely fail. When receiving messages, clients should assume that the server can send it any supported channel priv prefixes in a statusmsg target. This is because the `STATUSMSG` token may be missing or outdated. For example, if the server supports these ISUPPORT tokens: `"STATUSMSG=+@ PREFIX=(ohv)@%+"`, then your client should not break if it receives a target of `%#ircv3`. Similarly, if no `STATUSMSG` token was sent in the above example, clients should accept targets of `+#ircv3`, `%#ircv3` and `@#ircv3`. ### Multiple Prefixes Statusmsg targets can contain multiple prefixes, such as `+@#ircv3` or similar. Servers that support STATUSMSG should parse this, and clients that implement STATUSMSG should parse this as well.