Ascrod / ambassador

Fork of ChatZilla for the Unified XUL Platform.
Mozilla Public License 2.0
34 stars 7 forks source link

Implement IRCv3 Capabilities #11

Closed Ascrod closed 5 years ago

Ascrod commented 6 years ago

A few pieces for supporting IRCv3 extensions are already present, such as what was implemented with 30c8763f4a5e2811499946578df359792f82e638. However, actually requesting and implementing many of the capabilities listed in the IRCv3 registry is not done. Ideally, I'd like to implement every single capability and spec listed, but it will certainly take time.

For starters, I think the following features can be implemented first:

Update - Adding this list for the next round of enhancements:

Meta issues:

Ascrod commented 6 years ago

ChatZilla doesn't use the logged in/out status for anything, so account-notify isn't really useful at this time. away-notify will be implemented, but will require some changes to how WHO polling is done. As the spec recommends, a channel should be polled only once, on join. After that, we can use AWAY to track away state.

Ascrod commented 6 years ago

Negotiation should be done with ad7c6d03eea1c3f58ec9f82dd9e5375fe7510528 and 6551170609cb52db97ab6a6316d72d64b48b6942. away-notify should be done with 3a99375b64494944263ef978d3223ee6458219b8 and 5e995ebf239d7dbaa0c5d8378adb370763e58db5.

Ascrod commented 6 years ago

extended-join is in the same boat as account-notify - until ChatZilla is modified to keep track of account information, this extension isn't much use.

I have something for chghost in place, but it needs proper testing.

Ascrod commented 6 years ago

multi-prefix is already supported. It doesn't show up explicitly in the userlist, but the client doesn't choke on WHO and NAMES queries, and the highest status still displays correctly. That should be fine for now.

Ascrod commented 6 years ago

Relevant bugs from Bugzilla, for reference. https://bugzilla.mozilla.org/show_bug.cgi?id=687798 https://bugzilla.mozilla.org/show_bug.cgi?id=687804 https://bugzilla.mozilla.org/show_bug.cgi?id=1064210 https://bugzilla.mozilla.org/show_bug.cgi?id=1287842 https://bugzilla.mozilla.org/show_bug.cgi?id=1322910

Ascrod commented 6 years ago

chghost and userhost-in-names added with 5ef72d0b95ea4dc6c645ba09c2ccdc68542b6548. Again, the UI doesn't show anything about it, but it's there.

Ascrod commented 6 years ago

sasl 3.1 with the PLAIN mechanic added with ae3ed5e8a0c9e5178c3a693d63c0e9e971848a34.

Ascrod commented 5 years ago

Supported added for account tracking. Again, nothing shows in the UI, but the back-end updates correctly.

Ascrod commented 5 years ago

Added a number of items to this list.

Ascrod commented 5 years ago

Cap negotiation 3.2 and cap-notify added with 02e5d97 and 62079e6.

tls added with 1b8fc16.

Ascrod commented 5 years ago

SASL authentication 3.2 done via 7537fde and 446cc56.

Ascrod commented 5 years ago

MONITOR implemented with 190eb98.

echo-imessage implemented with 6616b97, but due to the potentially undesirable delay inherent with the capability, it is not enabled by default.

Ascrod commented 5 years ago

One slew of commits later, sts should be finished.

Ascrod commented 5 years ago

message-tags is implemented.

Ascrod commented 5 years ago

batch has been implemented. With this, I'm closing this meta issue in favor of using individual issues for addressing IRCv3 compatibility from here on out.