diff --git a/src/App.vue b/src/App.vue
index 885e022..7cc61a9 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -140,10 +140,13 @@
data = await MFlacDecrypt.Decrypt(file.raw);
break;
default:
- console.log("Not Supported File!");
+ data = {
+ status: false,
+ message: "不支持此文件格式",
+ };
break;
}
- if (null != data) {
+ if (data.status) {
this.tableData.push(data);
this.$notify.success({
title: '解锁成功',
@@ -160,8 +163,8 @@
window._paq.push(["trackEvent", "Unlock", "Success", JSON.stringify(_rp_data)]);
} else {
this.$notify.error({
- title: '错误',
- message: '解析此文件时出现问题,请查看使用提示',
+ title: '出现问题',
+ message: data.message + ',参考使用提示',
dangerouslyUseHTMLString: true
});
window._paq.push(["trackEvent", "Unlock", "Error", file.name]);
diff --git a/src/plugins/mflac.js b/src/plugins/mflac.js
index 85c5ed7..fdc48e1 100644
--- a/src/plugins/mflac.js
+++ b/src/plugins/mflac.js
@@ -4,7 +4,10 @@ export {Decrypt}
async function Decrypt(file) {
// 获取扩展名
let filename_ext = file.name.substring(file.name.lastIndexOf(".") + 1, file.name.length).toLowerCase();
- if (filename_ext !== "mflac") return;
+ if (filename_ext !== "mflac") return {
+ status: false,
+ message: "File type is incorrect!",
+ };
// 读取文件
const fileBuffer = await new Promise(resolve => {
const reader = new FileReader();
@@ -18,7 +21,10 @@ async function Decrypt(file) {
// 转换数据
const seed = new Mask();
- if (!seed.DetectMask(audioData)) return;
+ if (!seed.DetectMask(audioData)) return{
+ status: false,
+ message: "此音乐无法解锁,目前mflac格式不提供完整支持",
+ };
for (let cur = 0; cur < audioDataLen; ++cur) {
audioData[cur] ^= seed.NextMask();
}
@@ -51,6 +57,8 @@ async function Decrypt(file) {
}
// 返回*/
return {
+ status: true,
+ message: "",
filename: filename,
title: title,
artist: artist,
diff --git a/src/plugins/ncm.js b/src/plugins/ncm.js
index 9139611..f213d3e 100644
--- a/src/plugins/ncm.js
+++ b/src/plugins/ncm.js
@@ -24,10 +24,10 @@ async function Decrypt(file) {
if (dataView.getUint32(0, true) !== 0x4e455443 ||
dataView.getUint32(4, true) !== 0x4d414446
- ) {
- console.log({type: "error", data: "not ncm file"});
- return;
- }
+ ) return {
+ status: false,
+ message: "此ncm文件已损坏",
+ };
let offset = 10;
@@ -50,14 +50,13 @@ async function Decrypt(file) {
const result = new Uint8Array(plainText.sigBytes);
- {
- const words = plainText.words;
- const sigBytes = plainText.sigBytes;
- for (let i = 0; i < sigBytes; i++) {
- result[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
- }
+ const words = plainText.words;
+ const sigBytes = plainText.sigBytes;
+ for (let i = 0; i < sigBytes; i++) {
+ result[i] = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;
}
+
return result.slice(17);
})();
@@ -130,13 +129,12 @@ async function Decrypt(file) {
}
if (musicMeta.format === undefined) {
- musicMeta.format = (() => {
- const [f, L, a, C] = audioData;
- if (f === 0x66 && L === 0x4c && a === 0x61 && C === 0x43) {
- return "flac";
- }
- return "mp3";
- })();
+ const [f, L, a, C] = audioData;
+ if (f === 0x66 && L === 0x4c && a === 0x61 && C === 0x43) {
+ musicMeta.format = "flac";
+ } else {
+ musicMeta.format = "mp3";
+ }
}
const mime = audio_mime_type[musicMeta.format];
diff --git a/src/plugins/qmc.js b/src/plugins/qmc.js
index efe9102..ce48cac 100644
--- a/src/plugins/qmc.js
+++ b/src/plugins/qmc.js
@@ -31,7 +31,10 @@ async function Decrypt(file) {
new_ext = "flac";
break;
default:
- return;
+ return {
+ status: false,
+ message: "File type is incorrect!",
+ };
}
const mime = audio_mime_type[new_ext];
// 读取文件