diff options
author | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-07-20 20:52:13 +0200 |
---|---|---|
committer | Gabriel Arakaki Giovanini <mail@gabrielgio.me> | 2023-07-20 20:52:13 +0200 |
commit | 1e4613aa1113b373a8d841c28e222599237a33c5 (patch) | |
tree | d307a10051d6e504366e76a71c17cba7deda47ac /pkg | |
parent | 64603aa1e13ba82b9393b9eb91b6332237f45821 (diff) | |
download | lens-1e4613aa1113b373a8d841c28e222599237a33c5.tar.gz lens-1e4613aa1113b373a8d841c28e222599237a33c5.tar.bz2 lens-1e4613aa1113b373a8d841c28e222599237a33c5.zip |
feat: Add option to preload metadata
Let the use pick if they want to preload videos' metadata.
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/database/repository/settings.go | 5 | ||||
-rw-r--r-- | pkg/database/sql/settings.go | 11 | ||||
-rw-r--r-- | pkg/service/auth_test.go | 1 | ||||
-rw-r--r-- | pkg/view/media.go | 17 | ||||
-rw-r--r-- | pkg/view/settings.go | 10 |
5 files changed, 29 insertions, 15 deletions
diff --git a/pkg/database/repository/settings.go b/pkg/database/repository/settings.go index 6ed1eb6..c3d8fbb 100644 --- a/pkg/database/repository/settings.go +++ b/pkg/database/repository/settings.go @@ -4,8 +4,9 @@ import "context" type ( Settings struct { - ShowMode bool - ShowOwner bool + ShowMode bool + ShowOwner bool + PreloadVideoMetadata bool } SettingsRepository interface { diff --git a/pkg/database/sql/settings.go b/pkg/database/sql/settings.go index 4e73878..3f4ad08 100644 --- a/pkg/database/sql/settings.go +++ b/pkg/database/sql/settings.go @@ -11,8 +11,9 @@ import ( type ( Settings struct { gorm.Model - ShowMode bool - ShowOwner bool + ShowMode bool + ShowOwner bool + PreloadVideoMetadata bool } SettingsRepository struct { @@ -51,6 +52,7 @@ func (self *SettingsRepository) Save(ctx context.Context, toSaveSettings *reposi s.ShowMode = toSaveSettings.ShowMode s.ShowOwner = toSaveSettings.ShowOwner + s.PreloadVideoMetadata = toSaveSettings.PreloadVideoMetadata result := db.Save(s) return result.Error @@ -63,7 +65,8 @@ func (self *SettingsRepository) Load(ctx context.Context) (*repository.Settings, } return &repository.Settings{ - ShowMode: s.ShowMode, - ShowOwner: s.ShowOwner, + ShowMode: s.ShowMode, + ShowOwner: s.ShowOwner, + PreloadVideoMetadata: s.PreloadVideoMetadata, }, nil } diff --git a/pkg/service/auth_test.go b/pkg/service/auth_test.go index 7083d0c..179ded7 100644 --- a/pkg/service/auth_test.go +++ b/pkg/service/auth_test.go @@ -7,7 +7,6 @@ import ( "testing" "git.sr.ht/~gabrielgio/img/pkg/database/repository" - "git.sr.ht/~gabrielgio/img/pkg/ext" "git.sr.ht/~gabrielgio/img/pkg/testkit" ) diff --git a/pkg/view/media.go b/pkg/view/media.go index e247940..6e34fd6 100644 --- a/pkg/view/media.go +++ b/pkg/view/media.go @@ -12,8 +12,9 @@ import ( type ( MediaView struct { - mediaRepository repository.MediaRepository - userRepository repository.UserRepository + mediaRepository repository.MediaRepository + userRepository repository.UserRepository + settingsRepository repository.SettingsRepository } ) @@ -50,10 +51,12 @@ func getPagination(ctx *fasthttp.RequestCtx) *repository.Pagination { func NewMediaView( mediaRepository repository.MediaRepository, userRepository repository.UserRepository, + settingsRepository repository.SettingsRepository, ) *MediaView { return &MediaView{ - mediaRepository: mediaRepository, - userRepository: userRepository, + mediaRepository: mediaRepository, + userRepository: userRepository, + settingsRepository: settingsRepository, } } @@ -72,12 +75,18 @@ func (self *MediaView) Index(ctx *fasthttp.RequestCtx) error { return err } + settings, err := self.settingsRepository.Load(ctx) + if err != nil { + return err + } + page := &templates.MediaPage{ Medias: medias, Next: &repository.Pagination{ Size: p.Size, Page: p.Page + 1, }, + Settings: settings, } templates.WritePageTemplate(ctx, page) diff --git a/pkg/view/settings.go b/pkg/view/settings.go index bee3dc2..ffce86b 100644 --- a/pkg/view/settings.go +++ b/pkg/view/settings.go @@ -47,13 +47,15 @@ func (self *SettingsView) Index(ctx *fasthttp.RequestCtx) error { func (self *SettingsView) Save(ctx *fasthttp.RequestCtx) error { var ( - showMode = string(ctx.FormValue("showMode")) == "on" - showOwner = string(ctx.FormValue("showOwner")) == "on" + showMode = string(ctx.FormValue("showMode")) == "on" + showOwner = string(ctx.FormValue("showOwner")) == "on" + preloadVideoMetadata = string(ctx.FormValue("preloadVideoMetadata")) == "on" ) err := self.settingsRepository.Save(ctx, &repository.Settings{ - ShowMode: showMode, - ShowOwner: showOwner, + ShowMode: showMode, + ShowOwner: showOwner, + PreloadVideoMetadata: preloadVideoMetadata, }) if err != nil { return err |