fix #18: support upper case extension
This commit is contained in:
parent
0a13671df2
commit
6fd5bd5863
@ -1,5 +1,10 @@
|
|||||||
package common
|
package common
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
type NewDecoderFunc func([]byte) Decoder
|
type NewDecoderFunc func([]byte) Decoder
|
||||||
|
|
||||||
var decoderRegistry = make(map[string][]NewDecoderFunc)
|
var decoderRegistry = make(map[string][]NewDecoderFunc)
|
||||||
@ -7,6 +12,7 @@ var decoderRegistry = make(map[string][]NewDecoderFunc)
|
|||||||
func RegisterDecoder(ext string, dispatchFunc NewDecoderFunc) {
|
func RegisterDecoder(ext string, dispatchFunc NewDecoderFunc) {
|
||||||
decoderRegistry[ext] = append(decoderRegistry[ext], dispatchFunc)
|
decoderRegistry[ext] = append(decoderRegistry[ext], dispatchFunc)
|
||||||
}
|
}
|
||||||
func GetDecoder(ext string) []NewDecoderFunc {
|
func GetDecoder(filename string) []NewDecoderFunc {
|
||||||
|
ext := strings.ToLower(strings.TrimLeft(filepath.Ext(filename), "."))
|
||||||
return decoderRegistry[ext]
|
return decoderRegistry[ext]
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package common
|
package common
|
||||||
|
|
||||||
import "errors"
|
import (
|
||||||
|
"errors"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
type RawDecoder struct {
|
type RawDecoder struct {
|
||||||
file []byte
|
file []byte
|
||||||
@ -14,7 +17,7 @@ func NewRawDecoder(file []byte) Decoder {
|
|||||||
func (d *RawDecoder) Validate() error {
|
func (d *RawDecoder) Validate() error {
|
||||||
for ext, sniffer := range snifferRegistry {
|
for ext, sniffer := range snifferRegistry {
|
||||||
if sniffer(d.file) {
|
if sniffer(d.file) {
|
||||||
d.audioExt = ext
|
d.audioExt = strings.ToLower(ext)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,8 +76,7 @@ func appMain(c *cli.Context) error {
|
|||||||
if inputStat.IsDir() {
|
if inputStat.IsDir() {
|
||||||
return dealDirectory(input, output)
|
return dealDirectory(input, output)
|
||||||
} else {
|
} else {
|
||||||
ext := strings.TrimLeft(filepath.Ext(inputStat.Name()), ".")
|
allDec := common.GetDecoder(inputStat.Name())
|
||||||
allDec := common.GetDecoder(ext)
|
|
||||||
if len(allDec) == 0 {
|
if len(allDec) == 0 {
|
||||||
logging.Log().Fatal("skipping while no suitable decoder")
|
logging.Log().Fatal("skipping while no suitable decoder")
|
||||||
}
|
}
|
||||||
@ -94,8 +93,7 @@ func dealDirectory(inputDir string, outputDir string) error {
|
|||||||
if item.IsDir() {
|
if item.IsDir() {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
ext := strings.TrimLeft(filepath.Ext(item.Name()), ".")
|
allDec := common.GetDecoder(item.Name())
|
||||||
allDec := common.GetDecoder(ext)
|
|
||||||
if len(allDec) == 0 {
|
if len(allDec) == 0 {
|
||||||
logging.Log().Info("skipping while no suitable decoder", zap.String("file", item.Name()))
|
logging.Log().Info("skipping while no suitable decoder", zap.String("file", item.Name()))
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user