From 410f7728e4cafcb14ef1cdc79f4f05f211528cb1 Mon Sep 17 00:00:00 2001 From: Matthew Humphreys Date: Tue, 12 Dec 2023 21:14:07 +0100 Subject: [PATCH] added error handling when getting user setting --- model/user.go | 8 ++++---- web/watch.go | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/model/user.go b/model/user.go index 2fb44946b..099579a8d 100755 --- a/model/user.go +++ b/model/user.go @@ -147,18 +147,18 @@ type AutoSkipSetting struct { } // GetAutoSkipEnabled returns whether the user has enabled auto skip -func (u User) GetAutoSkipEnabled() AutoSkipSetting { +func (u User) GetAutoSkipEnabled() (AutoSkipSetting, error) { for _, setting := range u.Settings { if setting.Type == AutoSkip { var a AutoSkipSetting err := json.Unmarshal([]byte(setting.Value), &a) if err != nil { - break + return AutoSkipSetting{Enabled: false}, err } - return a + return a, nil } } - return AutoSkipSetting{Enabled: false} + return AutoSkipSetting{Enabled: false}, nil } type argonParams struct { diff --git a/web/watch.go b/web/watch.go index fd04d7471..5003d20cf 100644 --- a/web/watch.go +++ b/web/watch.go @@ -96,7 +96,10 @@ func (r mainRoutes) WatchPage(c *gin.Context) { } // Check if user wants to skip first silence - if tumLiveContext.User.GetAutoSkipEnabled().Enabled { + autoSkip, err := tumLiveContext.User.GetAutoSkipEnabled() + if err != nil { + log.Printf("Couldn't decode user setting: %v\n", err) + } else if autoSkip.Enabled { data.Progress.Progress = math.Max(data.Progress.Progress, tumLiveContext.Stream.FirstSilenceAsProgress()) } }