aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorGabriel Arakaki Giovanini <mail@gabrielgio.me>2023-07-20 20:52:13 +0200
committerGabriel Arakaki Giovanini <mail@gabrielgio.me>2023-07-20 20:52:13 +0200
commit1e4613aa1113b373a8d841c28e222599237a33c5 (patch)
treed307a10051d6e504366e76a71c17cba7deda47ac /pkg
parent64603aa1e13ba82b9393b9eb91b6332237f45821 (diff)
downloadlens-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.go5
-rw-r--r--pkg/database/sql/settings.go11
-rw-r--r--pkg/service/auth_test.go1
-rw-r--r--pkg/view/media.go17
-rw-r--r--pkg/view/settings.go10
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