mirror of
https://github.com/crunchy-labs/crunchy-cli.git
synced 2026-01-21 12:12:00 -06:00
Added function to get specific format by resolution and subtitle
This commit is contained in:
parent
0cbcad2c40
commit
92fe5782d1
1 changed files with 38 additions and 0 deletions
38
episode.go
38
episode.go
|
|
@ -117,6 +117,44 @@ func (e *Episode) AudioLocale() (LOCALE, error) {
|
||||||
return streams[0].AudioLocale, nil
|
return streams[0].AudioLocale, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *Episode) GetFormat(resolution string, subtitle LOCALE, hardsub bool) (*Format, error) {
|
||||||
|
streams, err := e.Streams()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
var foundStream *Stream
|
||||||
|
for _, stream := range streams {
|
||||||
|
if hardsub && stream.HardsubLocale == subtitle || stream.HardsubLocale == "" && subtitle == "" {
|
||||||
|
foundStream = stream
|
||||||
|
break
|
||||||
|
} else if !hardsub {
|
||||||
|
for _, subtitle := range stream.Subtitles {
|
||||||
|
if subtitle.Locale == subtitle.Locale {
|
||||||
|
foundStream = stream
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if foundStream != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if foundStream == nil {
|
||||||
|
return nil, fmt.Errorf("no matching stream found")
|
||||||
|
}
|
||||||
|
formats, err := foundStream.Formats()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
for _, format := range formats {
|
||||||
|
if format.Video.Resolution == resolution {
|
||||||
|
return format, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("no matching resolution found")
|
||||||
|
}
|
||||||
|
|
||||||
// Streams returns all streams which are available for the episode
|
// Streams returns all streams which are available for the episode
|
||||||
func (e *Episode) Streams() ([]*Stream, error) {
|
func (e *Episode) Streams() ([]*Stream, error) {
|
||||||
if e.children != nil {
|
if e.children != nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue