fix #18: support upper case extension

This commit is contained in:
Emmm Monster 2021-11-11 23:27:07 +08:00
parent 0a13671df2
commit 6fd5bd5863
No known key found for this signature in database
GPG Key ID: C98279C83FB50DB9
3 changed files with 14 additions and 7 deletions

View File

@ -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]
} }

View File

@ -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
} }
} }

View File

@ -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