Compare commits
2 commits
f4497aef7e
...
75c6ce47e1
| Author | SHA1 | Date | |
|---|---|---|---|
| 75c6ce47e1 | |||
| e8401db519 |
6 changed files with 98 additions and 17 deletions
17
Taskfile.yml
17
Taskfile.yml
|
|
@ -36,6 +36,22 @@ tasks:
|
||||||
cmds:
|
cmds:
|
||||||
- go build -o build/ ./cmd/{{.CMD}}
|
- go build -o build/ ./cmd/{{.CMD}}
|
||||||
|
|
||||||
|
build-mkflex:
|
||||||
|
desc: Builds the mkflex command
|
||||||
|
sources:
|
||||||
|
- cmd/mkflex/**/*.go
|
||||||
|
- cli/**/*.go
|
||||||
|
- convids/**/*.go
|
||||||
|
- internal/cli/mkflex/**/*.go
|
||||||
|
- mkflex/**/*.go
|
||||||
|
- types/**/*.go
|
||||||
|
generates:
|
||||||
|
- builds/mkflex
|
||||||
|
cmds:
|
||||||
|
- task: cmd-build
|
||||||
|
vars:
|
||||||
|
CMD: mkflex
|
||||||
|
|
||||||
build-convids:
|
build-convids:
|
||||||
desc: Builds the convids command
|
desc: Builds the convids command
|
||||||
sources:
|
sources:
|
||||||
|
|
@ -77,6 +93,7 @@ tasks:
|
||||||
desc: Installs the mkflex command
|
desc: Installs the mkflex command
|
||||||
source:
|
source:
|
||||||
- cmd/mkflex/**/*.go
|
- cmd/mkflex/**/*.go
|
||||||
|
- cli/**/*.go
|
||||||
- convids/**/*.go
|
- convids/**/*.go
|
||||||
- internal/cli/mkflex/**/*.go
|
- internal/cli/mkflex/**/*.go
|
||||||
- mkflex/**/*.go
|
- mkflex/**/*.go
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ type Show struct {
|
||||||
AlternateName []string `yaml:"alternate_name"`
|
AlternateName []string `yaml:"alternate_name"`
|
||||||
Exact bool
|
Exact bool
|
||||||
Skip bool
|
Skip bool
|
||||||
|
Quality string
|
||||||
}
|
}
|
||||||
|
|
||||||
re *regexp.Regexp
|
re *regexp.Regexp
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,9 @@ func getShow(show conutils.Show, sh Series) SeriesGroups {
|
||||||
if !show.Flexget.Begin.IsZero() {
|
if !show.Flexget.Begin.IsZero() {
|
||||||
sh.Begin = show.Flexget.Begin
|
sh.Begin = show.Flexget.Begin
|
||||||
}
|
}
|
||||||
|
if show.Flexget.Quality != "" {
|
||||||
|
sh.Quality = show.Flexget.Quality
|
||||||
|
}
|
||||||
sh.AlternameName = show.Flexget.AlternateName
|
sh.AlternameName = show.Flexget.AlternateName
|
||||||
sh.Exact = show.Flexget.Exact
|
sh.Exact = show.Flexget.Exact
|
||||||
name := cmp.Or(show.Flexget.Name, show.Name, show.Pattern)
|
name := cmp.Or(show.Flexget.Name, show.Name, show.Pattern)
|
||||||
|
|
|
||||||
51
types/int_string.go
Normal file
51
types/int_string.go
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
package types
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type IntOrString struct {
|
||||||
|
intVal int
|
||||||
|
strVal string
|
||||||
|
isInt bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (is *IntOrString) Set(val any) error {
|
||||||
|
switch v := val.(type) {
|
||||||
|
case int:
|
||||||
|
case int8:
|
||||||
|
case int16:
|
||||||
|
case int32:
|
||||||
|
case int64:
|
||||||
|
case uint:
|
||||||
|
case uint8:
|
||||||
|
case uint16:
|
||||||
|
case uint32:
|
||||||
|
is.isInt = true
|
||||||
|
is.intVal = int(v)
|
||||||
|
return nil
|
||||||
|
case string:
|
||||||
|
is.isInt = false
|
||||||
|
is.strVal = v
|
||||||
|
return nil
|
||||||
|
case []byte:
|
||||||
|
is.isInt = false
|
||||||
|
is.strVal = string(v)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//nolint:err113 // Temp skip
|
||||||
|
return fmt.Errorf("invalid type: %T", val)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (is IntOrString) IsZero() bool {
|
||||||
|
if is.isInt {
|
||||||
|
return is.intVal == 0
|
||||||
|
}
|
||||||
|
return is.strVal == ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (is IntOrString) Value() any {
|
||||||
|
if is.isInt {
|
||||||
|
return is.intVal
|
||||||
|
}
|
||||||
|
return is.strVal
|
||||||
|
}
|
||||||
25
types/toml.go
Normal file
25
types/toml.go
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
package types
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type TomlTypeError struct {
|
||||||
|
Value any
|
||||||
|
}
|
||||||
|
|
||||||
|
func (te *TomlTypeError) Error() string {
|
||||||
|
return fmt.Sprintf("unsupported type: %T", te.Value)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (is *IntOrString) UnmarshalTOML(val any) error {
|
||||||
|
switch v := val.(type) {
|
||||||
|
case string:
|
||||||
|
is.isInt = false
|
||||||
|
is.strVal = v
|
||||||
|
return nil
|
||||||
|
case int64:
|
||||||
|
is.isInt = true
|
||||||
|
is.intVal = int(v)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &TomlTypeError{Value: val}
|
||||||
|
}
|
||||||
|
|
@ -10,17 +10,8 @@ func (ye *YamlTypeError) Error() string {
|
||||||
return ye.Node.Tag + " is not a valid type for this field"
|
return ye.Node.Tag + " is not a valid type for this field"
|
||||||
}
|
}
|
||||||
|
|
||||||
type IntOrString struct {
|
|
||||||
intVal int
|
|
||||||
strVal string
|
|
||||||
isInt bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (is IntOrString) MarshalYAML() (any, error) {
|
func (is IntOrString) MarshalYAML() (any, error) {
|
||||||
if is.isInt {
|
return is.Value(), nil
|
||||||
return is.intVal, nil
|
|
||||||
}
|
|
||||||
return is.strVal, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (is *IntOrString) UnmarshalYAML(value *yaml.Node) error {
|
func (is *IntOrString) UnmarshalYAML(value *yaml.Node) error {
|
||||||
|
|
@ -36,10 +27,3 @@ func (is *IntOrString) UnmarshalYAML(value *yaml.Node) error {
|
||||||
|
|
||||||
return &YamlTypeError{Node: value}
|
return &YamlTypeError{Node: value}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (is IntOrString) IsZero() bool {
|
|
||||||
if is.isInt {
|
|
||||||
return is.intVal == 0
|
|
||||||
}
|
|
||||||
return is.strVal == ""
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue