feat: allow set any media qulity

This commit is contained in:
Simon Ding
2024-10-03 22:17:30 +08:00
parent 84a0197776
commit e8067f96f1
6 changed files with 13 additions and 5 deletions

View File

@@ -131,6 +131,7 @@ const (
Resolution720p Resolution = "720p"
Resolution1080p Resolution = "1080p"
Resolution2160p Resolution = "2160p"
ResolutionAny Resolution = "any"
)
func (r Resolution) String() string {
@@ -140,7 +141,7 @@ func (r Resolution) String() string {
// ResolutionValidator is a validator for the "resolution" field enum values. It is called by the builders before save.
func ResolutionValidator(r Resolution) error {
switch r {
case Resolution720p, Resolution1080p, Resolution2160p:
case Resolution720p, Resolution1080p, Resolution2160p, ResolutionAny:
return nil
default:
return fmt.Errorf("media: invalid enum value for resolution field: %q", r)

View File

@@ -133,7 +133,7 @@ var (
{Name: "overview", Type: field.TypeString},
{Name: "created_at", Type: field.TypeTime},
{Name: "air_date", Type: field.TypeString, Default: ""},
{Name: "resolution", Type: field.TypeEnum, Enums: []string{"720p", "1080p", "2160p"}, Default: "1080p"},
{Name: "resolution", Type: field.TypeEnum, Enums: []string{"720p", "1080p", "2160p", "any"}, Default: "1080p"},
{Name: "storage_id", Type: field.TypeInt, Nullable: true},
{Name: "target_dir", Type: field.TypeString, Nullable: true},
{Name: "download_history_episodes", Type: field.TypeBool, Nullable: true, Default: false},

View File

@@ -25,7 +25,7 @@ func (Media) Fields() []ent.Field {
field.String("overview"),
field.Time("created_at").Default(time.Now()),
field.String("air_date").Default(""),
field.Enum("resolution").Values("720p", "1080p", "2160p").Default("1080p"),
field.Enum("resolution").Values("720p", "1080p", "2160p", "any").Default("1080p"),
field.Int("storage_id").Optional(),
field.String("target_dir").Optional(),
field.Bool("download_history_episodes").Optional().Default(false).Comment("tv series only"),

View File

@@ -66,7 +66,10 @@ func SearchTvSeries(db1 *db.Client, param *SearchParam) ([]torznab.Result, error
} else if len(param.Episodes) == 0 && !meta.IsSeasonPack { //want season pack, but not season pack
continue
}
if param.CheckResolution && meta.Resolution != series.Resolution.String() {
if param.CheckResolution &&
series.Resolution != media.ResolutionAny &&
meta.Resolution != series.Resolution.String() {
continue
}
@@ -188,7 +191,9 @@ func SearchMovie(db1 *db.Client, param *SearchParam) ([]torznab.Result, error) {
}
}
if param.CheckResolution && meta.Resolution != movieDetail.Resolution.String() {
if param.CheckResolution &&
movieDetail.Resolution != media.ResolutionAny &&
meta.Resolution != movieDetail.Resolution.String() {
continue
}

View File

@@ -54,6 +54,7 @@ class _SubmitSearchResultState extends ConsumerState<SubmitSearchResult> {
name: "resolution",
decoration: const InputDecoration(labelText: "清晰度"),
items: const [
DropdownMenuItem(value: "any", child: Text("不限")),
DropdownMenuItem(value: "720p", child: Text("720p")),
DropdownMenuItem(value: "1080p", child: Text("1080p")),
DropdownMenuItem(value: "2160p", child: Text("2160p")),

View File

@@ -267,6 +267,7 @@ class _DetailCardState extends ConsumerState<DetailCard> {
name: "resolution",
decoration: const InputDecoration(labelText: "清晰度"),
items: const [
DropdownMenuItem(value: "any", child: Text("不限")),
DropdownMenuItem(value: "720p", child: Text("720p")),
DropdownMenuItem(value: "1080p", child: Text("1080p")),
DropdownMenuItem(value: "2160p", child: Text("2160p")),