indrora / Atomic

Atomic: an IRC client from the ashes of yaaic
https://indrora.github.io/Atomic/
GNU General Public License v3.0
124 stars 29 forks source link

Support ZNC buffextras #74

Open haarp opened 9 years ago

haarp commented 9 years ago

Buffextras is a ZNC module that adds additional events to the playback, such as joins/parts/nick changes/kicks/mode changes, etc. These events appear to come from the user *buffextras.

Those currently don't look very nice in Atomic. They could be modified to look "native" instead.

A reference implemention for handling them can be found in Hexchat's plugin: https://github.com/knitori/tools/blob/master/hexchat/buffextras.py

kythyria commented 9 years ago

The proper way to do it is to add support for the server-time extension. Alas that requires a bunch of refactoring of both Atomic and PircBot.

indrora commented 9 years ago

Actually, I already support ZNC's time extension. Adding another time extension is not a terribly hard thing to do (in fact, I probably already support it)

On Wed Jan 21 2015 at 10:19:20 AM kythyria notifications@github.com wrote:

The proper way to do it is to add support for the server-time extension https://github.com/ircv3/ircv3-specifications/blob/master/extensions/server-time-3.2.md. Alas that requires a bunch of refactoring of both Atomic and PircBot.

— Reply to this email directly or view it on GitHub https://github.com/indrora/Atomic/issues/74#issuecomment-70879926.

kythyria commented 9 years ago

Huh, I must have missed that, probably because it's not implemented the way I expected (which would have required refactoring :/ ). IIRC ZNC's time extension became the IRCv3 one by dropping the vendor prefix.

Also I missed that buffextras transforms the messages into the fake user thing at the time they occurred, rather than at playback time. Which is annoying given that the ideal is probably sending the real messages inside a BATCH if both that and timestamps are supported.

indrora commented 9 years ago

I doubt I'm going to fully support the buffextras listing, mostly because, despite not needing a huge amount of refactoring (ooh look, I notice that it's called buffextras and punt out a different message onto the stack) I'd rather support the core of ZNC, not its extensions. (Despite this, I have incidental support for the "privmsg" module) On Wed Jan 21 2015 at 11:15:48 PM kythyria notifications@github.com wrote:

Huh, I must have missed that, probably because it's not implemented the way I expected (which would have required refactoring :/ ). IIRC ZNC's time extension became the IRCv3 one by dropping the vendor prefix.

Also I missed that buffextras transforms the messages at the time they occurred into the fake user thing, rather than at playback time. Which is annoying given that the ideal is probably sending the real messages inside a BATCH if both that and timestamps are supported.

— Reply to this email directly or view it on GitHub https://github.com/indrora/Atomic/issues/74#issuecomment-70976411.