stash/pkg/manager/utils.go

34 lines
749 B
Go
Raw Normal View History

2019-02-09 12:30:49 +00:00
package manager
2019-02-11 20:12:08 +00:00
import (
"fmt"
2019-02-14 23:42:52 +00:00
"github.com/stashapp/stash/pkg/models"
"github.com/stashapp/stash/pkg/utils"
2019-02-11 20:12:08 +00:00
)
2019-02-09 12:30:49 +00:00
2019-02-11 20:12:08 +00:00
func IsStreamable(scene *models.Scene) (bool, error) {
if scene == nil {
return false, fmt.Errorf("nil scene")
}
fileType, err := utils.FileType(scene.Path)
2019-02-09 12:30:49 +00:00
if err != nil {
return false, err
}
2019-02-11 20:12:08 +00:00
switch fileType.MIME.Value {
case "video/quicktime", "video/mp4", "video/webm", "video/x-m4v":
2019-02-09 12:30:49 +00:00
return true, nil
2019-02-11 20:12:08 +00:00
default:
hasTranscode, _ := HasTranscode(scene)
return hasTranscode, nil
2019-02-11 20:12:08 +00:00
}
}
func HasTranscode(scene *models.Scene) (bool, error) {
if scene == nil {
return false, fmt.Errorf("nil scene")
2019-02-09 12:30:49 +00:00
}
2019-02-11 20:12:08 +00:00
transcodePath := instance.Paths.Scene.GetTranscodePath(scene.Checksum)
return utils.FileExists(transcodePath)
}