mirror of
https://git.um-react.app/um/um-react.git
synced 2025-11-28 03:23:02 +00:00
Co-authored-by: 鲁树人 <lu.shuren@um-react.app> Co-committed-by: 鲁树人 <lu.shuren@um-react.app>
18 lines
661 B
TypeScript
18 lines
661 B
TypeScript
import { FetchMusicExNamePayload, ParseKuwoHeaderResponse } from '~/decrypt-worker/types.ts';
|
|
import { KuwoHeader } from '@unlock-music/crypto';
|
|
|
|
export const workerParseKuwoHeader = async ({ blobURI }: FetchMusicExNamePayload): Promise<ParseKuwoHeaderResponse> => {
|
|
const blob = await fetch(blobURI, { headers: { Range: 'bytes=0-1023' } }).then((r) => r.blob());
|
|
const arrayBuffer = await blob.arrayBuffer();
|
|
|
|
try {
|
|
const buffer = new Uint8Array(arrayBuffer.slice(0, 1024));
|
|
const kwm = KuwoHeader.parse(buffer);
|
|
const { qualityId, resourceId } = kwm;
|
|
kwm.free();
|
|
return { qualityId, resourceId };
|
|
} catch {
|
|
return null;
|
|
}
|
|
};
|