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 | 
