forked from TrueCloudLab/rclone
serve dlna: add more builtin mime types to cover standard audio/video
Add a minimal number of mime types to augment go's built in types for environments which don't have access to a mime.types file (eg Termux on android) Fixes #3475
This commit is contained in:
parent
39ae7c7ac0
commit
67fae720d7
1 changed files with 35 additions and 0 deletions
|
@ -5,6 +5,7 @@ import (
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"mime"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
@ -12,6 +13,7 @@ import (
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/anacrolix/dms/dlna"
|
"github.com/anacrolix/dms/dlna"
|
||||||
"github.com/anacrolix/dms/upnp"
|
"github.com/anacrolix/dms/upnp"
|
||||||
|
@ -21,6 +23,39 @@ import (
|
||||||
"github.com/rclone/rclone/vfs"
|
"github.com/rclone/rclone/vfs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Add a minimal number of mime types to augment go's built in types
|
||||||
|
// for environments which don't have access to a mime.types file (eg
|
||||||
|
// Termux on android)
|
||||||
|
func init() {
|
||||||
|
for _, t := range []struct {
|
||||||
|
mimeType string
|
||||||
|
extensions string
|
||||||
|
}{
|
||||||
|
{"audio/flac", ".flac"},
|
||||||
|
{"audio/mpeg", ".mpga,.mpega,.mp2,.mp3,.m4a"},
|
||||||
|
{"audio/ogg", ".oga,.ogg,.opus,.spx"},
|
||||||
|
{"audio/x-wav", ".wav"},
|
||||||
|
{"image/tiff", ".tiff,.tif"},
|
||||||
|
{"video/dv", ".dif,.dv"},
|
||||||
|
{"video/fli", ".fli"},
|
||||||
|
{"video/mpeg", ".mpeg,.mpg,.mpe"},
|
||||||
|
{"video/MP2T", ".ts"},
|
||||||
|
{"video/mp4", ".mp4"},
|
||||||
|
{"video/quicktime", ".qt,.mov"},
|
||||||
|
{"video/ogg", ".ogv"},
|
||||||
|
{"video/webm", ".webm"},
|
||||||
|
{"video/x-msvideo", ".avi"},
|
||||||
|
{"video/x-matroska", ".mpv,.mkv"},
|
||||||
|
} {
|
||||||
|
for _, ext := range strings.Split(t.extensions, ",") {
|
||||||
|
err := mime.AddExtensionType(ext, t.mimeType)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type contentDirectoryService struct {
|
type contentDirectoryService struct {
|
||||||
*server
|
*server
|
||||||
upnp.Eventing
|
upnp.Eventing
|
||||||
|
|
Loading…
Add table
Reference in a new issue