feat: detect multiple subtitle languages
@@ -271,11 +271,17 @@ func (i *FileInfo) detectSubtitles() {
i.Subtitles = []string{}
ext := filepath.Ext(i.Path)
- // TODO: detect multiple languages. Base.Lang.vtt
-
- fPath := strings.TrimSuffix(i.Path, ext) + ".vtt"
- if _, err := i.Fs.Stat(fPath); err == nil {
- i.Subtitles = append(i.Subtitles, fPath)
+ // detect multiple languages. Base*.vtt
+ // TODO: give subtitles descriptive names (lang) and track attributes
+ parentDir := strings.TrimRight(i.Path, i.Name)
+ dir, err := afero.ReadDir(i.Fs, parentDir)
+ if err == nil {
+ base := strings.TrimSuffix(i.Name, ext)
+ for _, f := range dir {
+ if !f.IsDir() && strings.HasPrefix(f.Name(), base) && strings.HasSuffix(f.Name(), ".vtt") {
+ i.Subtitles = append(i.Subtitles, path.Join(parentDir, f.Name()))
+ }
+ }
}
}
