1
0
forked from um/web
qqmusicunlock/src/decrypt/common.js

52 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-01-21 11:03:41 +00:00
const NcmDecrypt = require("./ncm");
const QmcDecrypt = require("./qmc");
const RawDecrypt = require("./raw");
const MFlacDecrypt = require("./mflac");
2020-01-21 11:21:17 +00:00
const TmDecrypt = require("./tm");
2020-01-21 11:03:41 +00:00
export {CommonDecrypt}
async function CommonDecrypt(file) {
let raw_ext = file.name.substring(file.name.lastIndexOf(".") + 1, file.name.length).toLowerCase();
let raw_filename = file.name.substring(0, file.name.lastIndexOf("."));
let rt_data;
switch (raw_ext) {
case "ncm":// Netease Mp3/Flac
rt_data = await NcmDecrypt.Decrypt(file.raw);
break;
case "mp3":// Raw Mp3
case "flac"://Raw Flac
2020-01-27 09:36:20 +00:00
case "m4a":// Raw M4a
case "ogg":// Raw Ogg
2020-01-21 11:21:17 +00:00
rt_data = await RawDecrypt.Decrypt(file.raw, raw_filename, raw_ext);
break;
2020-01-21 11:03:41 +00:00
case "tm0":// QQ Music IOS Mp3
case "tm3":// QQ Music IOS Mp3
2020-01-21 11:21:17 +00:00
rt_data = await RawDecrypt.Decrypt(file.raw, raw_filename, "mp3");
2020-01-21 11:03:41 +00:00
break;
case "qmc3"://QQ Music Android Mp3
case "qmc0"://QQ Music Android Mp3
case "qmcflac"://QQ Music Android Flac
case "qmcogg"://QQ Music Android Ogg
2020-01-27 09:36:20 +00:00
case "tkm"://QQ Music Accompaniment M4a
2020-01-27 04:50:24 +00:00
case "bkcmp3"://Moo Music Mp3
case "bkcflac"://Moo Music Flac
2020-01-21 11:03:41 +00:00
rt_data = await QmcDecrypt.Decrypt(file.raw, raw_filename, raw_ext);
break;
case "mflac"://QQ Music Desktop Flac
rt_data = await MFlacDecrypt.Decrypt(file.raw, raw_filename, raw_ext);
break;
2020-01-27 09:36:20 +00:00
case "tm2":// QQ Music IOS M4a
case "tm6":// QQ Music IOS M4a
2020-01-21 11:21:17 +00:00
rt_data = await TmDecrypt.Decrypt(file.raw, raw_filename);
2020-01-21 11:03:41 +00:00
break;
default:
rt_data = {status: false, message: "不支持此文件格式",}
}
if (rt_data.status) {
rt_data.rawExt = raw_ext;
rt_data.rawFilename = raw_filename;
}
return rt_data;
}