2022-12-23 07:32:39 -09:00
|
|
|
package model
|
2020-06-24 14:12:23 -08:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"mime"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
"strings"
|
2022-12-23 07:32:39 -09:00
|
|
|
|
|
|
|
|
"golang.org/x/exp/slices"
|
2020-06-24 14:12:23 -08:00
|
|
|
)
|
|
|
|
|
|
2020-07-03 17:06:33 -08:00
|
|
|
var excludeAudioType = []string{
|
|
|
|
|
"audio/x-mpegurl",
|
2020-07-03 17:15:01 -08:00
|
|
|
"audio/x-scpls",
|
2020-07-03 17:06:33 -08:00
|
|
|
}
|
|
|
|
|
|
2020-06-24 14:12:23 -08:00
|
|
|
func IsAudioFile(filePath string) bool {
|
|
|
|
|
extension := filepath.Ext(filePath)
|
2020-07-03 17:06:33 -08:00
|
|
|
mimeType := mime.TypeByExtension(extension)
|
2022-12-23 07:32:39 -09:00
|
|
|
return !slices.Contains(excludeAudioType, mimeType) && strings.HasPrefix(mimeType, "audio/")
|
2020-06-24 14:12:23 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func IsImageFile(filePath string) bool {
|
|
|
|
|
extension := filepath.Ext(filePath)
|
|
|
|
|
return strings.HasPrefix(mime.TypeByExtension(extension), "image/")
|
|
|
|
|
}
|
2022-12-23 07:32:39 -09:00
|
|
|
|
|
|
|
|
func IsValidPlaylist(filePath string) bool {
|
|
|
|
|
extension := strings.ToLower(filepath.Ext(filePath))
|
|
|
|
|
return extension == ".m3u" || extension == ".m3u8" || extension == ".nsp"
|
|
|
|
|
}
|