Add initial notification support that just spams about everything, prepare for push rules (ref #7)

This commit is contained in:
Tulir Asokan 2018-03-20 23:34:43 +02:00
parent 85f289c98d
commit bb58954f75
2 changed files with 17 additions and 0 deletions

View File

@ -33,6 +33,7 @@ type Session struct {
NextBatch string NextBatch string
FilterID string FilterID string
Rooms map[string]*rooms.Room Rooms map[string]*rooms.Room
PushRules *gomatrix.PushRuleset
} }
func (config *Config) LoadSession(mxid string) error { func (config *Config) LoadSession(mxid string) error {

View File

@ -25,7 +25,9 @@ import (
"maunium.net/go/gomuks/config" "maunium.net/go/gomuks/config"
"maunium.net/go/gomuks/interface" "maunium.net/go/gomuks/interface"
rooms "maunium.net/go/gomuks/matrix/room" rooms "maunium.net/go/gomuks/matrix/room"
"maunium.net/go/gomuks/notification"
"maunium.net/go/gomuks/ui/debug" "maunium.net/go/gomuks/ui/debug"
"maunium.net/go/gomuks/ui/types"
"maunium.net/go/gomuks/ui/widget" "maunium.net/go/gomuks/ui/widget"
) )
@ -117,6 +119,14 @@ func (c *Container) Client() *gomatrix.Client {
return c.client return c.client
} }
func (c *Container) UpdatePushRules() {
resp, err := c.client.PushRules()
if err != nil {
debug.Print("Failed to fetch push rules:", err)
}
c.config.Session.PushRules = resp
}
func (c *Container) UpdateRoomList() { func (c *Container) UpdateRoomList() {
resp, err := c.client.JoinedRooms() resp, err := c.client.JoinedRooms()
if err != nil { if err != nil {
@ -147,6 +157,7 @@ func (c *Container) OnLogin() {
c.client.Syncer = syncer c.client.Syncer = syncer
c.UpdateRoomList() c.UpdateRoomList()
c.UpdatePushRules()
} }
func (c *Container) Start() { func (c *Container) Start() {
@ -177,9 +188,14 @@ func (c *Container) Start() {
} }
} }
func (c *Container) NotifyMessage(room *rooms.Room, message *types.Message) {
notification.Send(room.GetTitle(), message.Text, false)
}
func (c *Container) HandleMessage(evt *gomatrix.Event) { func (c *Container) HandleMessage(evt *gomatrix.Event) {
room, message := c.ui.MainView().ProcessMessageEvent(evt) room, message := c.ui.MainView().ProcessMessageEvent(evt)
if room != nil { if room != nil {
c.NotifyMessage(room.Room, message)
room.AddMessage(message, widget.AppendMessage) room.AddMessage(message, widget.AppendMessage)
c.ui.Render() c.ui.Render()
} }