This repository has been archived on 2021-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
ui/go/characters/incominglistener.go

41 lines
1.1 KiB
Go
Raw Normal View History

2019-01-21 21:17:51 +00:00
package characters
import (
"cwtch.im/cwtch/event"
"cwtch.im/ui/go/cwutil"
"cwtch.im/ui/go/gobjects"
"cwtch.im/ui/go/the"
"git.openprivacy.ca/openprivacy/libricochet-go/log"
"time"
)
func IncomingListener(callback func(*gobjects.Message)) {
q := event.NewEventQueue(1000)
the.CwtchApp.EventBus().Subscribe(event.NewMessageFromPeer, q.EventChannel)
the.CwtchApp.EventBus().Subscribe(event.NewMessageFromGroup, q.EventChannel)
for {
e := q.Next()
log.Debugf("got event %s", e.EventType)
switch e.EventType {
case event.NewMessageFromPeer:
callback(&gobjects.Message{
Handle: e.Data["Onion"],
From: e.Data["Onion"],
Message: e.Data["Data"],
Image: cwutil.RandomProfileImage(e.Data["Onion"]),
Timestamp: time.Now(),
})
case event.NewMessageFromGroup:
log.Debugf("NewMessageFromGroup!")
callback(&gobjects.Message{
Handle: e.Data["GroupID"],
From: e.Data["Onion"],
Message: e.Data["Data"],
Image: cwutil.RandomGroupImage(e.Data["GroupID"]),
Timestamp: time.Now(),
})
}
}
}