From b4902d4edb27baf59b21747117d93db4e0e4e96c Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Wed, 21 Mar 2018 20:01:52 +0200 Subject: Clear push rules when clearing cache and listen to push rule updates --- matrix/matrix.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'matrix/matrix.go') diff --git a/matrix/matrix.go b/matrix/matrix.go index 4ec6d96..6ab922c 100644 --- a/matrix/matrix.go +++ b/matrix/matrix.go @@ -121,6 +121,7 @@ func (c *Container) Client() *gomatrix.Client { } func (c *Container) UpdatePushRules() { + debug.Print("Updating push rules...") resp, err := gomx_ext.GetPushRules(c.client) if err != nil { debug.Print("Failed to fetch push rules:", err) @@ -162,10 +163,10 @@ func (c *Container) OnLogin() { syncer.OnEventType("m.room.message", c.HandleMessage) syncer.OnEventType("m.room.member", c.HandleMembership) syncer.OnEventType("m.typing", c.HandleTyping) + syncer.OnEventType("m.push_rules", c.HandlePushRules) c.client.Syncer = syncer c.UpdateRoomList() - c.UpdatePushRules() } func (c *Container) Start() { @@ -221,6 +222,15 @@ func (c *Container) HandleMessage(evt *gomatrix.Event) { } } +func (c *Container) HandlePushRules(evt *gomatrix.Event) { + debug.Print("Received updated push rules") + var err error + c.config.Session.PushRules, err = gomx_ext.EventToPushRules(evt) + if err != nil { + debug.Print("Failed to convert event to push rules:", err) + } +} + func (c *Container) HandleMembership(evt *gomatrix.Event) { const Hour = 1 * 60 * 60 * 1000 if evt.Unsigned.Age > Hour { -- cgit v1.2.3