Compare commits

...

5 Commits

1 changed files with 12 additions and 2 deletions

View File

@ -15,6 +15,7 @@ type GuessitConfig struct {
type Guessit struct { type Guessit struct {
GuessitConfig GuessitConfig
DefaultOptions []string
} }
type Match struct { type Match struct {
@ -32,6 +33,7 @@ type Match struct {
// Video // Video
ScreenSize string `json:"screen_size,omitempty"` ScreenSize string `json:"screen_size,omitempty"`
Container string `json:"container,omitempty"` Container string `json:"container,omitempty"`
VideoCodec string `json:"video_codec,omitempty"`
// Audio // Audio
AudioChannels string `json:"audio_channels,omitempty"` AudioChannels string `json:"audio_channels,omitempty"`
@ -42,10 +44,10 @@ type Match struct {
} }
func (u *Match) UnmarshalJSON(data []byte) error { func (u *Match) UnmarshalJSON(data []byte) error {
fmt.Println(u)
type Alias Match type Alias Match
aux := &struct { aux := &struct {
AudioCodec interface{} `json:"audio_codec,omitempty"` AudioCodec interface{} `json:"audio_codec,omitempty"`
Other interface{} `json:"other,omitempty"`
*Alias *Alias
}{ }{
Alias: (*Alias)(u), Alias: (*Alias)(u),
@ -62,6 +64,13 @@ func (u *Match) UnmarshalJSON(data []byte) error {
u.AudioCodec = ac u.AudioCodec = ac
} }
switch oth := aux.Other.(type) {
case string:
u.Other = append(u.Other, oth)
case []string:
u.Other = oth
}
return nil return nil
} }
@ -97,11 +106,12 @@ func New(conf GuessitConfig) (Guessit, error) {
} }
} }
return Guessit{conf}, nil return Guessit{conf, []string{}}, nil
} }
func (g Guessit) Guessit(s string, options ...string) (out Match, err error) { func (g Guessit) Guessit(s string, options ...string) (out Match, err error) {
args := []string{"-m", "guessit", s} args := []string{"-m", "guessit", s}
args = append(args, g.DefaultOptions...)
args = append(args, options...) args = append(args, options...)
args = append(args, "--json") args = append(args, "--json")