From f54b87c1f70f522c2c2722c3c33a41865b73fa21 Mon Sep 17 00:00:00 2001 From: Aine Date: Tue, 3 Jan 2023 20:13:30 +0200 Subject: [PATCH] resync rooms every 5 minutes --- bot/config/manager.go | 3 +++ bot/data.go | 12 ++++++++++-- cmd/cmd.go | 5 +++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/bot/config/manager.go b/bot/config/manager.go index 644b422..c1a884e 100644 --- a/bot/config/manager.go +++ b/bot/config/manager.go @@ -45,6 +45,7 @@ func (m *Manager) GetBot() Bot { } if config == nil { config = make(Bot, 0) + return config } m.ble = config.BanlistEnabled() @@ -86,6 +87,7 @@ func (m *Manager) GetBanlist() List { } if config == nil { config = make(List, 0) + return config } m.bl = config return config @@ -115,6 +117,7 @@ func (m *Manager) GetGreylist() List { } if config == nil { config = make(List, 0) + return config } return config diff --git a/bot/data.go b/bot/data.go index e6c9a1e..593f9dd 100644 --- a/bot/data.go +++ b/bot/data.go @@ -38,9 +38,11 @@ func (b *Bot) migrate() error { } func (b *Bot) syncRooms() error { + adminRooms := []id.RoomID{} + adminRoom := b.cfg.GetBot().AdminRoom() if adminRoom != "" { - b.adminRooms = append(b.adminRooms, adminRoom) + adminRooms = append(adminRooms, adminRoom) } resp, err := b.lp.GetClient().JoinedRooms() @@ -60,9 +62,10 @@ func (b *Bot) syncRooms() error { } if cfg.Owner() != "" && b.allowAdmin(id.UserID(cfg.Owner()), "") { - b.adminRooms = append(b.adminRooms, roomID) + adminRooms = append(adminRooms, roomID) } } + b.adminRooms = adminRooms return nil } @@ -101,3 +104,8 @@ func (b *Bot) initBotUsers() ([]string, error) { cfg.Set(config.BotUsers, "@*:"+homeserver) return cfg.Users(), b.cfg.SetBot(cfg) } + +// SyncRooms and mailboxes +func (b *Bot) SyncRooms() { + b.syncRooms() //nolint:errcheck // nothing can be done here +} diff --git a/cmd/cmd.go b/cmd/cmd.go index 20f01f8..df67ddd 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -153,6 +153,11 @@ func initCron() { if err != nil { log.Error("cannot start queue processing cronjob: %v", err) } + + err = cron.AddJob("*/5 * * * *", mxb.SyncRooms) + if err != nil { + log.Error("cannot start sync rooms cronjob: %v", err) + } } func initShutdown(quit chan struct{}) {