freenode/#shirakumo - IRC Chatlog
Search
7:33:19
Shinmera
Anyway, continuing on with the echo: there's an issue with the shirakumo-backfill extension that I don't know how to resolve
7:33:50
Shinmera
As a refresher, this lichat extension lets you "backfill" events for a channel that you've been part of.
7:34:05
Shinmera
The idea being that if you connect with another client, you'd like to see the previous history to get some context for your chatting.
7:34:59
Shinmera
As it stands, the server just records events for a channel in a ring buffer, and when it receives a BACKFILL update from a client, it just sends these events back over the connection.
7:35:24
Shinmera
Now, the issue is that the client doesn't have any way of really distinguishing whether an event it gets is one that is backfilled and one that is not.
7:36:05
Shinmera
This is a problem, because when the client receives a PART or JOIN update, it should, well, exit or enter a channel.
7:37:27
Shinmera
I can't really compare the timestamps, since that would need thresholding (updates' timestamps may be out of order)
7:37:52
Shinmera
I can't add a "backfill done" update because other, real events might arrive interleaved with the backfill events
7:38:12
Shinmera
And I can't do ID duplicate checking because IDs are not normalised, so events from another user might have the same ID as one of yours.
7:39:44
Shinmera
Actually now that I think about it: the only JOIN/LEAVE event that could even be backfilled is the very first one of when the user last joined.
7:44:31
Shinmera
If I just explicitly ignore the join event for the user on the server side it works... so far.