Update event incomingMessageHandler
This commit is contained in:
parent
ae642f6a14
commit
5b02f2acc8
@ -14,27 +14,7 @@ func RegisterEventHandlers(ctx *context.AppContext) {
|
|||||||
termui.Handle("/sys/kbd/", anyKeyHandler(ctx))
|
termui.Handle("/sys/kbd/", anyKeyHandler(ctx))
|
||||||
termui.Handle("/sys/wnd/resize", resizeHandler(ctx))
|
termui.Handle("/sys/wnd/resize", resizeHandler(ctx))
|
||||||
termui.Handle("/timer/1s", timeHandler(ctx))
|
termui.Handle("/timer/1s", timeHandler(ctx))
|
||||||
|
incomingMessageHandler(ctx)
|
||||||
// TODO: check channel of message should be added to correct channel
|
|
||||||
go func() {
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case msg := <-ctx.Service.RTM.IncomingEvents:
|
|
||||||
switch ev := msg.Data.(type) {
|
|
||||||
case *slack.MessageEvent:
|
|
||||||
var name string
|
|
||||||
user, err := ctx.Service.Client.GetUserInfo(ev.User)
|
|
||||||
if err == nil {
|
|
||||||
name = user.Name
|
|
||||||
} else {
|
|
||||||
name = "unknown"
|
|
||||||
}
|
|
||||||
msg := fmt.Sprintf("[%s] %s", name, ev.Text)
|
|
||||||
ctx.View.Chat.AddMessage(msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func anyKeyHandler(ctx *context.AppContext) func(termui.Event) {
|
func anyKeyHandler(ctx *context.AppContext) func(termui.Event) {
|
||||||
@ -90,6 +70,35 @@ func timeHandler(ctx *context.AppContext) func(termui.Event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func incomingMessageHandler(ctx *context.AppContext) {
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case msg := <-ctx.Service.RTM.IncomingEvents:
|
||||||
|
switch ev := msg.Data.(type) {
|
||||||
|
case *slack.MessageEvent:
|
||||||
|
|
||||||
|
// TODO: refactor this to CreateMessage
|
||||||
|
var name string
|
||||||
|
user, err := ctx.Service.Client.GetUserInfo(ev.User)
|
||||||
|
if err == nil {
|
||||||
|
name = user.Name
|
||||||
|
} else {
|
||||||
|
name = "unknown"
|
||||||
|
}
|
||||||
|
m := fmt.Sprintf("[%s] %s", name, ev.Text)
|
||||||
|
|
||||||
|
// Add message to the selected channel
|
||||||
|
// fmt.Println(ev.Channel)
|
||||||
|
if ev.Channel == ctx.View.Chat.SelectedChannel {
|
||||||
|
ctx.View.Chat.AddMessage(m)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: resize only seems to work for width and resizing it too small
|
// FIXME: resize only seems to work for width and resizing it too small
|
||||||
// will cause termui to panic
|
// will cause termui to panic
|
||||||
func actionResize(ctx *context.AppContext) {
|
func actionResize(ctx *context.AppContext) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user