diff --git a/analyze_file.go b/analyze_file.go deleted file mode 100644 index c9d5820..0000000 --- a/analyze_file.go +++ /dev/null @@ -1,53 +0,0 @@ -package logic - -import ( - "context" - "os" - - "git.milar.in/nyaanime/model" - "git.milar.in/nyaanime/parsers" - "gopkg.in/vansante/go-ffprobe.v2" -) - -// TODO cache -func AnalyzeFile(path string) (*model.ParsedFile, error) { - props := &model.ParsedFile{File: path} - - file, err := os.Open(path) - if err != nil { - return nil, err - } - defer file.Close() - - data, err := ffprobe.ProbeReader(context.Background(), file) - if err != nil { - return nil, err - } - - defaultVideoLang := "" - for _, s := range data.StreamType(ffprobe.StreamVideo) { - if s.Disposition.Default > 0 { - props.Resolution = model.Resolution(s.Height) - defaultVideoLang = parsers.ParseLanguage(s.Tags.Language) - break - } - } - - for _, s := range data.StreamType(ffprobe.StreamAudio) { - if s.Tags.Language != "" { - props.Languages = append(props.Languages, parsers.ParseLanguage(s.Tags.Language)) - } else if s.Disposition.Default > 0 { - props.Languages = append(props.Languages, defaultVideoLang) - } - } - - for _, s := range data.StreamType(ffprobe.StreamSubtitle) { - if s.Tags.Language != "" { - props.Subtitles = append(props.Subtitles, parsers.ParseLanguage(s.Tags.Language)) - } else if s.Disposition.Default > 0 { - props.Subtitles = append(props.Subtitles, defaultVideoLang) - } - } - - return props, nil -} diff --git a/file_props.go b/file_props.go index 7e9a83f..3e48bf2 100644 --- a/file_props.go +++ b/file_props.go @@ -5,6 +5,7 @@ import ( "git.milar.in/milarin/slices" "git.milar.in/nyaanime/model" + "git.milar.in/nyaanime/parsers" ) func GetAnimeEpProps(animeEp model.AnimeEpisode) (*FilePriority, bool) { @@ -17,7 +18,7 @@ func GetAnimeEpProps(animeEp model.AnimeEpisode) (*FilePriority, bool) { var mostPrio *FilePriority for _, file := range files { - props, err := AnalyzeFile(file) + props, err := parsers.AnalyzeFile(file) if err != nil { continue } diff --git a/go.mod b/go.mod index c3b3099..851595e 100644 --- a/go.mod +++ b/go.mod @@ -12,10 +12,10 @@ require ( git.milar.in/milarin/tprint v0.0.7 git.milar.in/nyaanime/model v0.0.0-20230113095840-5eb2822653c3 git.milar.in/nyaanime/parsers v0.0.0-20221207192513-e7bce7c418d8 - gopkg.in/vansante/go-ffprobe.v2 v2.1.1 ) require ( github.com/mattn/go-runewidth v0.0.13 // indirect github.com/rivo/uniseg v0.3.4 // indirect + gopkg.in/vansante/go-ffprobe.v2 v2.1.1 // indirect )