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(), }) } } }