Thu, 16 Feb 2023 08:13:28 -0600
IRCv3: Negotiate the message-tags capability and make sure our regex matches the BNF
Previously we were missing the client only prefix and we were allowing .'s and -'s
in the vendor field. I've updated the regex to support this and split the key
into all of it's parts; the key, client only prefix, vendor, and key_name. Right
now we only use the full key, but we may need to change the way we represent
tags in memory to accomidate all of these fields.
This also means we are telling the server we support the TAGMSG command which
we do not yet implement, but that should be fine for now.
Testing Done:
Ran the unit tests
Connected to a local ergo instance and verified the capability was ack'd.
Connected to libera and discovered they don't currently support message tags.
Bugs closed: PIDGIN-17738
Reviewed at https://reviews.imfreedom.org/r/2217/
|
42041
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
1 | # IRCv3 |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
2 | |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
3 | This is a brand new from-scratch protocol plugin which is the first protocol |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
4 | plugin to be 100% code reviewed. It uses regex to tokenize messages. |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
5 | |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
6 | We are intending for it to be subclass-able so other networks like Twitch.tv can |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
7 | be supported but we're not quite there yet. |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
8 | |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
9 | We also are intending to support subclassing in other languages but we've run |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
10 | into some issues with dynamic GObject types and GObject introspection that have |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
11 | slowed us down. |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
12 | |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
13 | ## Capability Support |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
14 | |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
15 | This is a list of capabilities that we currently support. We'll do our best to |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
16 | keep this list up to date, but if you notice we've missed something please let |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
17 | us know! |
|
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
18 | |
|
42055
2f5bbcc91854
IRCv3: Negotiate the message-tags capability and make sure our regex matches the BNF
Gary Kramlich <grim@reaperworld.com>
parents:
42041
diff
changeset
|
19 | * cap-notify |
|
42041
b9ef2851fdc0
IRCv3: Add a basic README.md
Gary Kramlich <grim@reaperworld.com>
parents:
diff
changeset
|
20 | * sasl (right now just PLAIN works) |
|
42055
2f5bbcc91854
IRCv3: Negotiate the message-tags capability and make sure our regex matches the BNF
Gary Kramlich <grim@reaperworld.com>
parents:
42041
diff
changeset
|
21 | * message-tags |