diff --git a/pkg/hicli/hicli.go b/pkg/hicli/hicli.go index b5e2468..293edd7 100644 --- a/pkg/hicli/hicli.go +++ b/pkg/hicli/hicli.go @@ -226,16 +226,6 @@ func (h *HiClient) Sync() { } } -func (h *HiClient) LoadPushRules(ctx context.Context) { - rules, err := h.Client.GetPushRules(ctx) - if err != nil { - zerolog.Ctx(ctx).Err(err).Msg("Failed to load push rules") - return - } - h.PushRules.Store(rules) - zerolog.Ctx(ctx).Debug().Msg("Updated push rules from fetch") -} - func (h *HiClient) Stop() { h.Client.StopSync() if fn := h.stopSync.Swap(nil); fn != nil { diff --git a/pkg/hicli/pushrules.go b/pkg/hicli/pushrules.go index ca97f0f..088832d 100644 --- a/pkg/hicli/pushrules.go +++ b/pkg/hicli/pushrules.go @@ -109,3 +109,18 @@ func (h *HiClient) evaluatePushRules(ctx context.Context, llSummary *mautrix.Laz } return baseType } + +func (h *HiClient) LoadPushRules(ctx context.Context) { + rules, err := h.Client.GetPushRules(ctx) + if err != nil { + zerolog.Ctx(ctx).Err(err).Msg("Failed to load push rules") + return + } + h.receiveNewPushRules(ctx, rules) + zerolog.Ctx(ctx).Debug().Msg("Updated push rules from fetch") +} + +func (h *HiClient) receiveNewPushRules(ctx context.Context, rules *pushrules.PushRuleset) { + h.PushRules.Store(rules) + // TODO set mute flag in rooms +} diff --git a/pkg/hicli/sync.go b/pkg/hicli/sync.go index b7f90d6..02db5a3 100644 --- a/pkg/hicli/sync.go +++ b/pkg/hicli/sync.go @@ -109,7 +109,7 @@ func (h *HiClient) processSyncResponse(ctx context.Context, resp *mautrix.RespSy if err != nil && !errors.Is(err, event.ErrContentAlreadyParsed) { zerolog.Ctx(ctx).Warn().Err(err).Msg("Failed to parse push rules in sync") } else if pushRules, ok := evt.Content.Parsed.(*pushrules.EventContent); ok { - h.PushRules.Store(pushRules.Ruleset) + h.receiveNewPushRules(ctx, pushRules.Ruleset) zerolog.Ctx(ctx).Debug().Msg("Updated push rules from sync") } }