diff options
author | delthas <delthas@dille.cc> | 2022-02-10 15:44:05 +0100 |
---|---|---|
committer | delthas <delthas@dille.cc> | 2022-02-11 12:18:45 +0100 |
commit | b46a755bfc2afbce7276a2ce075d956ab7dc5b01 (patch) | |
tree | cad716b91edbcf5382ef131defc6728cbc25f8b3 /app.go | |
parent | Rename ColorGrey to ColorGray for consistency (diff) |
Add support for the soju.im/read capability and READ command
See: https://github.com/emersion/soju/blob/c7f0634ec8ee94425547b159bc36705582151012/doc/read.md
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -221,6 +221,12 @@ func (app *App) eventLoop() { } if !app.pasting { + if netID, buffer, timestamp := app.win.UpdateRead(); buffer != "" { + s := app.sessions[netID] + if s != nil { + s.ReadSet(buffer, timestamp) + } + } app.setStatus() app.updatePrompt() app.setBufferNumbers() @@ -741,6 +747,7 @@ func (app *App) handleIRCEvent(netID string, ev interface{}) { if _, added := app.win.AddBuffer(netID, "", buffer); added { app.monitor[netID][buffer] = struct{}{} s.MonitorAdd(buffer) + s.ReadGet(buffer) s.NewHistoryRequest(buffer). WithLimit(500). Before(msg.TimeOrNow()) @@ -763,6 +770,7 @@ func (app *App) handleIRCEvent(netID string, ev interface{}) { continue } s.MonitorAdd(target) + s.ReadGet(target) app.win.AddBuffer(netID, "", target) // CHATHISTORY BEFORE excludes its bound, so add 1ms // (precision of the time tag) to include that last message. @@ -809,6 +817,8 @@ func (app *App) handleIRCEvent(netID string, ev interface{}) { if !bounds.IsZero() { app.messageBounds[boundKey{netID, ev.Target}] = bounds } + case irc.ReadEvent: + app.win.SetRead(netID, ev.Target, ev.Timestamp) case irc.BouncerNetworkEvent: _, added := app.win.AddBuffer(ev.ID, ev.Name, "") if added { |