diff options
author | delthas <delthas@dille.cc> | 2021-07-11 20:45:57 +0200 |
---|---|---|
committer | Hubert Hirtz <hubert@hirtz.pm> | 2021-07-14 11:25:42 +0200 |
commit | 2c5872f12039c1ffea9923fd8356ceafc86bcfdb (patch) | |
tree | 3df5989311f190b247bb4869335e1bae19d7c89a /app.go | |
parent | Add notify types for fine-grained control of unread/highlight state (diff) |
Print the channel topic on join
Fixes: #45
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -515,6 +515,9 @@ func (app *App) handleIRCEvent(ev interface{}) { if ev.Requested { app.win.JumpBufferIndex(i) } + if ev.Topic != "" { + app.printTopic(ev.Channel) + } case irc.UserJoinEvent: body := new(ui.StyledStringBuilder) body.Grow(len(ev.User) + 1) @@ -808,3 +811,20 @@ func (app *App) updatePrompt() { } app.win.SetPrompt(prompt) } + +func (app *App) printTopic(buffer string) { + var body string + + topic, who, at := app.s.Topic(buffer) + if who == nil { + body = fmt.Sprintf("Topic: %s", topic) + } else { + body = fmt.Sprintf("Topic (by %s, %s): %s", who, at.Local().Format("Mon Jan 2 15:04:05"), topic) + } + app.win.AddLine(buffer, ui.NotifyNone, ui.Line{ + At: time.Now(), + Head: "--", + HeadColor: tcell.ColorGray, + Body: ui.Styled(body, tcell.StyleDefault.Foreground(tcell.ColorGray)), + }) +} |