fix(subsonic): send valid content-type with http.ServeStream

This commit is contained in:
sentriz
2022-12-26 18:26:13 +00:00
parent 63f7b05b07
commit 8dc58c71a4
8 changed files with 52 additions and 51 deletions

View File

@@ -1,24 +1,38 @@
//nolint:gochecknoglobals
package mime
func FromExtension(ext string) string {
switch ext {
case "mp3":
return "audio/mpeg"
case "flac":
return "audio/x-flac"
case "aac":
return "audio/x-aac"
case "m4a":
return "audio/m4a"
case "m4b":
return "audio/m4b"
case "ogg":
return "audio/ogg"
case "opus":
return "audio/ogg"
case "wma":
return "audio/x-ms-wma"
default:
return ""
import (
"log"
stdmime "mime"
)
var supportedAudioTypes = map[string]string{
".mp3": "audio/mpeg",
".flac": "audio/x-flac",
".aac": "audio/x-aac",
".m4a": "audio/m4a",
".m4b": "audio/m4b",
".ogg": "audio/ogg",
".opus": "audio/ogg",
".wma": "audio/x-ms-wma",
}
//nolint:gochecknoinits
func init() {
for ext, mime := range supportedAudioTypes {
if err := stdmime.AddExtensionType(ext, mime); err != nil {
log.Fatalf("adding audio type mime for ext %q: %v", ext, err)
}
}
}
var TypeByExtension = stdmime.TypeByExtension
var ParseMediaType = stdmime.ParseMediaType
var FormatMediaType = stdmime.FormatMediaType
func TypeByAudioExtension(ext string) string {
if _, ok := supportedAudioTypes[ext]; !ok {
return ""
}
return stdmime.TypeByExtension(ext)
}