mirror of
https://github.com/simon-ding/polaris.git
synced 2026-06-09 11:39:46 +08:00
refactor: size limiter
This commit is contained in:
25
db/const.go
25
db/const.go
@@ -1,5 +1,7 @@
|
||||
package db
|
||||
|
||||
import "polaris/ent/media"
|
||||
|
||||
var Version = "undefined"
|
||||
|
||||
const (
|
||||
@@ -17,9 +19,9 @@ const (
|
||||
SettingTvNamingFormat = "tv_naming_format"
|
||||
SettingMovieNamingFormat = "movie_naming_format"
|
||||
SettingProwlarrInfo = "prowlarr_info"
|
||||
Setting720pSizeLimiter = "720p_size_limiter"
|
||||
Setting1080ppSizeLimiter = "1080p_size_limiter"
|
||||
Setting2160ppSizeLimiter = "2160p_size_limiter"
|
||||
|
||||
SettingTvSizeLimiter = "tv_size_limiter"
|
||||
SettingMovieSizeLimiter = "movie_size_limiter"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -53,6 +55,23 @@ type ResolutionType string
|
||||
|
||||
const JwtSerectKey = "jwt_secrect_key"
|
||||
|
||||
type MediaSizeLimiter struct {
|
||||
P720p SizeLimiter `json:"720p"`
|
||||
P1080 SizeLimiter `json:"1080p"`
|
||||
P2160 SizeLimiter `json:"2160p"`
|
||||
}
|
||||
|
||||
func (m *MediaSizeLimiter) GetLimiter(r media.Resolution) SizeLimiter {
|
||||
if r == media.Resolution1080p {
|
||||
return m.P1080
|
||||
} else if r == media.Resolution720p {
|
||||
return m.P720p
|
||||
} else if r == media.Resolution2160p {
|
||||
return m.P2160
|
||||
}
|
||||
return SizeLimiter{}
|
||||
}
|
||||
|
||||
type SizeLimiter struct {
|
||||
MaxSIze int64 `json:"max_size"`
|
||||
MinSize int64 `json:"min_size"`
|
||||
|
||||
33
db/db.go
33
db/db.go
@@ -441,7 +441,7 @@ type Storage struct {
|
||||
}
|
||||
|
||||
func (s *Storage) ToWebDavSetting() WebdavSetting {
|
||||
if s.Implementation != storage.ImplementationWebdav && s.Implementation != storage.ImplementationAlist{
|
||||
if s.Implementation != storage.ImplementationWebdav && s.Implementation != storage.ImplementationAlist {
|
||||
panic("not webdav storage")
|
||||
}
|
||||
var webdavSetting WebdavSetting
|
||||
@@ -631,19 +631,17 @@ func (c *Client) DeleteImportlist(id int) error {
|
||||
return c.ent.ImportList.DeleteOneID(id).Exec(context.TODO())
|
||||
}
|
||||
|
||||
func (c *Client) GetSizeLimiter(r media.Resolution) (*SizeLimiter, error) {
|
||||
func (c *Client) GetSizeLimiter(mediaType string) (*MediaSizeLimiter, error) {
|
||||
var v string
|
||||
if r == media.Resolution720p {
|
||||
v = c.GetSetting(Setting720pSizeLimiter)
|
||||
} else if r == media.Resolution1080p {
|
||||
v = c.GetSetting(Setting1080ppSizeLimiter)
|
||||
} else if r == media.Resolution2160p {
|
||||
v = c.GetSetting(Setting2160ppSizeLimiter)
|
||||
if mediaType == "tv" {
|
||||
v = c.GetSetting(SettingTvSizeLimiter)
|
||||
} else if mediaType == "movie" {
|
||||
v = c.GetSetting(SettingMovieSizeLimiter)
|
||||
} else {
|
||||
return nil, errors.Errorf("resolution not supported: %v", r)
|
||||
return nil, errors.Errorf("media type not supported: %v", mediaType)
|
||||
}
|
||||
|
||||
var limiter SizeLimiter
|
||||
var limiter MediaSizeLimiter
|
||||
if v == "" {
|
||||
return &limiter, nil
|
||||
}
|
||||
@@ -652,20 +650,19 @@ func (c *Client) GetSizeLimiter(r media.Resolution) (*SizeLimiter, error) {
|
||||
return &limiter, err
|
||||
}
|
||||
|
||||
func (c *Client) SetSizeLimiter(r media.Resolution, limiter *SizeLimiter) error {
|
||||
func (c *Client) SetSizeLimiter(mediaType string, limiter *MediaSizeLimiter) error {
|
||||
data, err := json.Marshal(limiter)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if r == media.Resolution720p {
|
||||
return c.SetSetting(Setting720pSizeLimiter, string(data))
|
||||
} else if r == media.Resolution1080p {
|
||||
return c.SetSetting(Setting1080ppSizeLimiter, string(data))
|
||||
} else if r == media.Resolution2160p {
|
||||
return c.SetSetting(Setting2160ppSizeLimiter, string(data))
|
||||
if mediaType == "tv" {
|
||||
return c.SetSetting(SettingTvSizeLimiter, string(data))
|
||||
} else if mediaType == "movie" {
|
||||
return c.SetSetting(SettingMovieSizeLimiter, string(data))
|
||||
} else {
|
||||
return errors.Errorf("resolution not supported: %v", r)
|
||||
return errors.Errorf("media type not supported: %v", mediaType)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (c *Client) GetTvNamingFormat() string {
|
||||
|
||||
Reference in New Issue
Block a user