Skip to content

Commit

Permalink
fix mediatype test failing
Browse files Browse the repository at this point in the history
  • Loading branch information
chocolatkey committed Mar 21, 2024
1 parent 31bb79a commit 4c3038f
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 4 deletions.
14 changes: 12 additions & 2 deletions pkg/mediatype/mediatype_of.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,18 @@ import (
// You can register additional sniffers globally by modifying this list.
// The sniffers order is important, because some formats are subsets of other formats.
var Sniffers = []Sniffer{
SniffXHTML, SniffHTML, SniffOPDS, SniffLCPLicense, SniffBitmap,
SniffWebpub, SniffW3CWPUB, SniffEPUB, SniffLPF, SniffArchive, SniffPDF,
SniffEPUB,
SniffLPF,
SniffArchive,
SniffPDF,
SniffXHTML,
SniffHTML,
SniffBitmap,
SniffAudio,
SniffOPDS,
SniffLCPLicense,
SniffW3CWPUB,
SniffWebpub,
// Note SniffSystem isn't here!
}

Expand Down
34 changes: 32 additions & 2 deletions pkg/mediatype/sniffer.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,36 @@ func SniffBitmap(context SnifferContext) *MediaType {
return nil
}

// Sniffs audio files.
func SniffAudio(context SnifferContext) *MediaType {
if context.HasFileExtension("aac") {
return &AAC
}
if context.HasFileExtension("aiff") {
return &AIFF
}
// TODO flac, m4a
if context.HasFileExtension("mp3") {
return &MP3
}
if context.HasFileExtension("ogg", "oga") {
return &OGG
}
if context.HasFileExtension("opus") {
return &OPUS
}
if context.HasFileExtension("wav") {
return &WAV
}
if context.HasFileExtension("webm") {
return &WEBMAudio
}

// TODO read magic bytes?

return nil
}

// Sniffs a Readium Web Publication, protected or not by LCP.
func SniffWebpub(context SnifferContext) *MediaType {
if context.HasFileExtension("audiobook") || context.HasMediaType("application/audiobook+zip") {
Expand Down Expand Up @@ -217,8 +247,8 @@ func SniffEPUB(context SnifferContext) *MediaType {

// Sniffs a Lightweight Packaging Format (LPF).
// References:
// - https://www.w3.org/TR/lpf/
// - https://www.w3.org/TR/pub-manifest/
// - https://www.w3.org/TR/lpf/
// - https://www.w3.org/TR/pub-manifest/
func SniffLPF(context SnifferContext) *MediaType {
if context.HasFileExtension("lpf") || context.HasMediaType("application/lpf+zip") {
return &LPF
Expand Down

0 comments on commit 4c3038f

Please sign in to comment.