From 13b67f40aa8b5d57ea6c63c917fbea6d3a45bc13 Mon Sep 17 00:00:00 2001 From: awalol Date: Mon, 14 Jul 2025 01:51:28 +0800 Subject: [PATCH] refactor(MIME): add getMimeTypeFromExt function --- src/decrypt-worker/util/audioType.ts | 6 +++++- src/decrypt-worker/worker/decrypt.ts | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/decrypt-worker/util/audioType.ts b/src/decrypt-worker/util/audioType.ts index db1d305..bff53ee 100644 --- a/src/decrypt-worker/util/audioType.ts +++ b/src/decrypt-worker/util/audioType.ts @@ -25,7 +25,7 @@ export function isDataLooksLikeAudio(buffer: Uint8Array): boolean { return ok; } -export const AudioMimeType: { [key: string]: string } = { +const AudioMimeType: Record = { mp3: 'audio/mpeg', flac: 'audio/flac', m4a: 'audio/mp4', @@ -34,3 +34,7 @@ export const AudioMimeType: { [key: string]: string } = { wav: 'audio/x-wav', dff: 'audio/x-dff', }; + +export function getMimeTypeFromExt(ext: string) { + return AudioMimeType[ext] || 'application/octet-stream'; +} diff --git a/src/decrypt-worker/worker/decrypt.ts b/src/decrypt-worker/worker/decrypt.ts index f1fab98..1b7ee96 100644 --- a/src/decrypt-worker/worker/decrypt.ts +++ b/src/decrypt-worker/worker/decrypt.ts @@ -6,7 +6,7 @@ import { DecipherFactory, DecipherInstance, Status } from '~/decrypt-worker/Deci import { UnsupportedSourceFile } from '~/decrypt-worker/util/DecryptError.ts'; import { ready as umCryptoReady } from '@unlock-music/crypto'; import { go } from '~/util/go.ts'; -import { AudioMimeType, detectAudioExtension } from '~/decrypt-worker/util/audioType.ts'; +import { getMimeTypeFromExt, detectAudioExtension } from '~/decrypt-worker/util/audioType.ts'; class DecryptCommandHandler { private readonly label: string; @@ -75,7 +75,7 @@ class DecryptCommandHandler { audioExt = 'm4a'; } - return { decrypted: URL.createObjectURL(toBlob(result.data, AudioMimeType[audioExt])), ext: audioExt }; + return { decrypted: URL.createObjectURL(toBlob(result.data, getMimeTypeFromExt(audioExt))), ext: audioExt }; } }