Browse Source

Merge remote-tracking branch into master

20230320
MengYX 4 years ago
parent
commit
79c0c85ab3
No known key found for this signature in database GPG Key ID: E63F9C7303E8F604
  1. 1
      README.md
  2. 20
      src/App.vue
  3. 7
      src/decrypt/kgm.js
  4. 4
      src/decrypt/ncm.js

1
README.md

@ -34,6 +34,7 @@
# 使用方法
## 使用已构建版本
- 从[GitHub Release](https://github.com/ix64/unlock-music/releases/latest)下载已构建的版本
- 本地使用请下载`legacy版本`(`modern版本`只能通过**http/https协议**访问)
- 解压缩后即可部署或本地使用(**请勿直接运行源代码**)
## 自行构建

20
src/App.vue

@ -100,16 +100,16 @@
} catch (e) {
}
if ((!!updateInfo && process.env.NODE_ENV === 'production') && (!!updateInfo.HttpsFound ||
(!!updateInfo.Found && window.location.protocol !== "https:"))) {
this.$notify.warning({
title: '发现更新',
message: '发现新版本 v' + updateInfo.Version +
'<br/>更新详情:' + updateInfo.Detail +
'<br/><a target="_blank" href="' + updateInfo.URL + '">获取更新</a>',
dangerouslyUseHTMLString: true,
duration: 15000,
position: 'top-left'
});
(!!updateInfo.Found && document.location.protocol !== "https:"))) {
this.$notify.warning({
title: '发现更新',
message: '发现新版本 v' + updateInfo.Version +
'<br/>更新详情:' + updateInfo.Detail +
'<br/><a target="_blank" href="' + updateInfo.URL + '">获取更新</a>',
dangerouslyUseHTMLString: true,
duration: 15000,
position: 'top-left'
});
} else {
this.$notify.info({
title: '离线使用',

7
src/decrypt/kgm.js

@ -10,9 +10,14 @@ const KgmHeader = [
const VprMaskDiff = [0x25, 0xDF, 0xE8, 0xA6, 0x75, 0x1E, 0x75, 0x0E,
0x2F, 0x80, 0xF3, 0x2D, 0xB8, 0xB6, 0xE3, 0x11,
0x00]
const PreDefinedKey = "MoOtOiTvINGwd2E6n0E1i7L5t2IoOoNk"
export async function Decrypt(file, raw_filename, raw_ext) {
if (document.location.protocol === "file:") {
return {
status: false,
message: "请使用<a target='_blank' href='https://github.com/ix64/unlock-music/wiki/其他音乐格式工具'>CLI版本</a>进行解锁"
}
}
const oriData = new Uint8Array(await GetArrayBuffer(file));
if (raw_ext === "vpr") {
if (!IsBytesEqual(VprHeader, oriData.slice(0, 0x10)))

4
src/decrypt/ncm.js

@ -164,7 +164,9 @@ function getMetaData(dataView, fileBuffer, offset) {
if (plainText.slice(0, labelIndex) === "dj") {
result = result.mainMusic;
}
if (!!result.albumPic) result.albumPic = result.albumPic.replace("http://", "https://");
if (!!result.albumPic && result.albumPic !== "")
result.albumPic = result.albumPic.replace("http://", "https://") + "?param=500y500";
return {data: result, offset: offset};
}

Loading…
Cancel
Save