summaryrefslogtreecommitdiff
path: root/app.go
diff options
context:
space:
mode:
authordelthas <delthas@dille.cc>2021-07-11 20:45:57 +0200
committerHubert Hirtz <hubert@hirtz.pm>2021-07-14 11:25:42 +0200
commit2c5872f12039c1ffea9923fd8356ceafc86bcfdb (patch)
tree3df5989311f190b247bb4869335e1bae19d7c89a /app.go
parentAdd 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.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/app.go b/app.go
index 24cb2de..bf86aa2 100644
--- a/app.go
+++ b/app.go
@@ -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)),
+ })
+}