Compare commits
3 Commits
9205dbf701
...
afd9263ff1
Author | SHA1 | Date | |
---|---|---|---|
afd9263ff1 | |||
fc18d7de05 | |||
a269cd4f8e |
@ -1,39 +1,48 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
name: Bug报告
|
name: Bug报告
|
||||||
about: 报告Bug以帮助改进程序
|
about: 报告Bug以帮助改进程序
|
||||||
title: ''
|
title: ''
|
||||||
labels: bug
|
labels:
|
||||||
assignees: ''
|
- bug
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
* 请按照此模板填写,否则可能立即被关闭
|
* 请按照此模板填写,否则可能立即被关闭
|
||||||
|
|
||||||
- [x] 我确认已经搜索过Issue不存并确认相同的Issue
|
- [x] 我确认已经搜索过Issue不存并确认相同的Issue
|
||||||
- [x] 我有证据表明这是程序导致的问题(如不确认,可以在[Discussions](https://github.com/ix64/unlock-music/discussions)内提出)
|
- [x] 我有证据表明这是程序导致的问题(如不确认,可以通过 Telegram 讨论组 (https://t.me/unlock_music_chat) 进行讨论)
|
||||||
|
|
||||||
|
|
||||||
**Bug描述**
|
## Bug描述
|
||||||
|
|
||||||
简要地复述你遇到的Bug
|
简要地复述你遇到的Bug
|
||||||
|
|
||||||
**复现方法**
|
## 复现方法
|
||||||
|
|
||||||
描述复现方法,必要时请提供样本文件
|
描述复现方法,必要时请提供样本文件
|
||||||
|
|
||||||
**程序截图或者Console报错信息**
|
## 程序截图或浏览器开发者控制台(Console)的报错信息
|
||||||
|
|
||||||
如果可以请提供二者之一
|
如果可以请提供二者之一
|
||||||
|
|
||||||
|
## 环境信息
|
||||||
**环境信息:**
|
|
||||||
|
|
||||||
- 操作系统和浏览器:
|
- 操作系统和浏览器:
|
||||||
- 程序版本:
|
- 程序版本:
|
||||||
- 获取音乐文件所使用的客户端及其版本信息:
|
- 网页版的地址(如果为非官方部署请注明):
|
||||||
|
|
||||||
|
## 若为文件无法解密,请填写文件获取途径
|
||||||
|
|
||||||
**附加信息**
|
<!-- 请删除不适用的信息或填入适合的内容。下述模板为范例,你也可以自由发挥补充额外内容 -->
|
||||||
|
|
||||||
其他能够帮助确认问题的信息
|
- 音乐平台名称:芝麻音乐 - https://example.com/
|
||||||
|
- 客户端平台与版本号:Windows 客户端,版本号 12.34
|
||||||
|
- 受影响的资源链接:https://example.com/song/123456
|
||||||
|
|
||||||
|
注意:如果需要会员才能获取该资源,你可能也需要作为附件提交。
|
||||||
|
|
||||||
|
## 附加信息
|
||||||
|
|
||||||
|
如果有,请提供其他能够帮助确认问题的信息到下方:
|
||||||
|
|
||||||
|
@ -1,26 +1,28 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
name: 新功能
|
name: 新功能
|
||||||
about: 对于程序新的想法或建议
|
about: 对于程序新的想法或建议
|
||||||
title: ''
|
title: ''
|
||||||
labels: enhancement
|
labels:
|
||||||
assignees: ''
|
- enhancement
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- 请按照此模板填写,否则可能立即被关闭
|
<!-- ⚠ 请按照此模板填写,否则可能立即被关闭 -->
|
||||||
|
<!-- 提交前请使用【Preview】预览提交的更改 -->
|
||||||
|
|
||||||
**背景和说明**
|
## 背景和说明
|
||||||
|
|
||||||
简要说明产生此想法的背景和此想法的具体内容
|
<!-- 简要说明产生此想法的背景和此想法的具体内容 -->
|
||||||
|
|
||||||
|
|
||||||
**实现途径**
|
## 实现途径
|
||||||
|
|
||||||
- 如果没有设计方案,请简要描述实现思路
|
- 如果没有设计方案,请简要描述实现思路
|
||||||
- 如果你没有任何的实现思路,请通过[Discussions](https://github.com/ix64/unlock-music/discussions)或者Telegram进行讨论
|
- 如果你没有任何的实现思路,请通过 Telegram 讨论组 (https://t.me/unlock_music_chat) 进行讨论
|
||||||
|
|
||||||
|
|
||||||
**附加信息**
|
## 附加信息
|
||||||
|
|
||||||
更多你想要表达的内容
|
<!-- 更多你想要表达的内容 -->
|
||||||
|
|
||||||
|
@ -6,11 +6,13 @@
|
|||||||
"128": "./img/icons/msapplication-icon-144x144.png"
|
"128": "./img/icons/msapplication-icon-144x144.png"
|
||||||
},
|
},
|
||||||
"description": "在任何设备上解锁已购的加密音乐!",
|
"description": "在任何设备上解锁已购的加密音乐!",
|
||||||
"permissions": ["storage"],
|
"permissions": [
|
||||||
|
"storage"
|
||||||
|
],
|
||||||
"offline_enabled": true,
|
"offline_enabled": true,
|
||||||
"options_page": "./index.html",
|
"options_page": "./index.html",
|
||||||
"homepage_url": "https://github.com/ix64/unlock-music",
|
"homepage_url": "https://git.unlock-music.dev/um/web",
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
"default_popup": "./popup.html"
|
"default_popup": "./popup.html"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,7 +7,7 @@
|
|||||||
"description": "Unlock encrypted music file in browser.",
|
"description": "Unlock encrypted music file in browser.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/ix64/unlock-music"
|
"url": "https://git.unlock-music.dev/um/web"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -57,4 +57,4 @@
|
|||||||
"vue-cli-plugin-element": "^1.0.1",
|
"vue-cli-plugin-element": "^1.0.1",
|
||||||
"vue-template-compiler": "^2.6.14"
|
"vue-template-compiler": "^2.6.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,39 +1,89 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="zh-CN">
|
<html lang="zh-CN">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8" />
|
||||||
<meta content="webkit" name="renderer">
|
<meta content="webkit" name="renderer" />
|
||||||
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
|
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" />
|
||||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
<title>音乐解锁</title>
|
<title>音乐解锁</title>
|
||||||
<meta content="音乐,解锁,ncm,qmc,mgg,mflac,qq音乐,网易云音乐,加密" name="keywords"/>
|
<meta content="音乐,解锁,ncm,qmc,mgg,mflac,qq音乐,网易云音乐,加密" name="keywords" />
|
||||||
<meta content="音乐解锁 - 在任何设备上解锁已购的加密音乐!" name="description"/>
|
<meta content="音乐解锁 - 在任何设备上解锁已购的加密音乐!" name="description" />
|
||||||
<!--@formatter:off-->
|
<style>
|
||||||
<style>#loader{position:absolute;left:50%;top:50%;z-index:1010;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #1db1ff;width:120px;height:120px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}#loader-mask{text-align:center;position:absolute;width:100%;height:100%;bottom:0;left:0;right:0;top:0;z-index:1009;background-color:rgba(242,246,252,.88)}@media (prefers-color-scheme:dark){#loader-mask{color:#fff;background-color:rgba(0,0,0,.85)}#loader-mask a{color:#ddd}#loader-mask a:hover{color:#1db1ff}}#loader-source{font-size:1.5rem}#loader-tips-timeout{font-size:1.2rem}</style>
|
#loader {
|
||||||
<!--@formatter:on-->
|
position: absolute;
|
||||||
</head>
|
left: 50%;
|
||||||
<body>
|
top: 50%;
|
||||||
|
z-index: 1010;
|
||||||
|
margin: -75px 0 0 -75px;
|
||||||
|
border: 16px solid #f3f3f3;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-top: 16px solid #1db1ff;
|
||||||
|
width: 120px;
|
||||||
|
height: 120px;
|
||||||
|
animation: spin 2s linear infinite;
|
||||||
|
}
|
||||||
|
@keyframes spin {
|
||||||
|
0% {
|
||||||
|
transform: rotate(0);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#loader-mask {
|
||||||
|
text-align: center;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: 1009;
|
||||||
|
background-color: rgba(242, 246, 252, 0.88);
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
#loader-mask {
|
||||||
|
color: #fff;
|
||||||
|
background-color: rgba(0, 0, 0, 0.85);
|
||||||
|
}
|
||||||
|
#loader-mask a {
|
||||||
|
color: #ddd;
|
||||||
|
}
|
||||||
|
#loader-mask a:hover {
|
||||||
|
color: #1db1ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#loader-source {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
#loader-tips-timeout {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
<div id="loader-mask">
|
<body>
|
||||||
<div id="loader"></div>
|
<div id="loader-mask">
|
||||||
<noscript>
|
<div id="loader"></div>
|
||||||
|
<noscript>
|
||||||
<h3 id="loader-js">请启用JavaScript</h3>
|
<h3 id="loader-js">请启用JavaScript</h3>
|
||||||
</noscript>
|
</noscript>
|
||||||
<h3 id="loader-source"> 请勿直接运行源代码! </h3>
|
<h3 id="loader-source">请勿直接运行源代码!</h3>
|
||||||
<div id="loader-tips-outdated" hidden>
|
<div id="loader-tips-outdated" hidden>
|
||||||
<h2>您可能在使用不受支持的<span style="color:#f00;">过时</span>浏览器,这可能导致此应用无法正常工作。</h2>
|
<h2>您可能在使用不受支持的<span style="color: #f00">过时</span>浏览器,这可能导致此应用无法正常工作。</h2>
|
||||||
<h3>如果您使用双核浏览器,您可以尝试切换到 <span style="color:#f00;">“极速模式”</span> 解决此问题。</h3>
|
<h3>如果您使用双核浏览器,您可以尝试切换到 <span style="color: #f00">“极速模式”</span> 解决此问题。</h3>
|
||||||
<h3>或者,您可以尝试更换下方的几个浏览器之一。</h3>
|
<h3>或者,您可以尝试更换下方的几个浏览器之一。</h3>
|
||||||
</div>
|
</div>
|
||||||
<h3 id="loader-tips-timeout" hidden>
|
<h3 id="loader-tips-timeout" hidden>
|
||||||
音乐解锁采用了一些新特性!建议使用
|
音乐解锁采用了一些新特性!建议使用
|
||||||
<a href="https://www.microsoft.com/zh-cn/edge" target="_blank">Microsoft Edge Chromium</a>
|
<a href="https://www.microsoft.com/zh-cn/edge" target="_blank">Microsoft Edge Chromium</a>
|
||||||
<a href="https://www.google.cn/chrome/" target="_blank">Google Chrome</a>
|
<a href="https://www.google.cn/chrome/" target="_blank">Google Chrome</a>
|
||||||
<a href="https://www.firefox.com.cn/" target="_blank">Mozilla Firefox</a>
|
<a href="https://www.firefox.com.cn/" target="_blank">Mozilla Firefox</a>
|
||||||
| <a href="https://github.com/ix64/unlock-music/wiki/使用提示" target="_blank">使用提示</a>
|
| <a href="https://git.unlock-music.dev/um/web/wiki/使用提示" target="_blank">使用提示</a>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script src="./loader.js"></script>
|
<script src="./loader.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
10
src/App.vue
10
src/App.vue
@ -5,19 +5,19 @@
|
|||||||
</el-main>
|
</el-main>
|
||||||
<el-footer id="app-footer">
|
<el-footer id="app-footer">
|
||||||
<el-row>
|
<el-row>
|
||||||
<a href="https://github.com/ix64/unlock-music" target="_blank">音乐解锁</a>({{ version }})
|
<a href="https://git.unlock-music.dev/um/web" target="_blank">音乐解锁</a>({{ version }})
|
||||||
:移除已购音乐的加密保护。
|
:移除已购音乐的加密保护。
|
||||||
<a href="https://github.com/ix64/unlock-music/wiki/使用提示" target="_blank">使用提示</a>
|
<a href="https://git.unlock-music.dev/um/web/wiki/使用提示" target="_blank">使用提示</a>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
目前支持 网易云音乐(ncm), QQ音乐(qmc, mflac, mgg), 酷狗音乐(kgm), 虾米音乐(xm), 酷我音乐(.kwm)
|
目前支持 网易云音乐(ncm), QQ音乐(qmc, mflac, mgg), 酷狗音乐(kgm), 虾米音乐(xm), 酷我音乐(.kwm)
|
||||||
<a href="https://github.com/ix64/unlock-music/blob/master/README.md" target="_blank">更多</a>。
|
<a href="https://git.unlock-music.dev/um/web/src/branch/master/README.md" target="_blank">更多</a>。
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<!--如果进行二次开发,此行版权信息不得移除且应明显地标注于页面上-->
|
<!--如果进行二次开发,此行版权信息不得移除且应明显地标注于页面上-->
|
||||||
<span>Copyright © 2019 - {{ new Date().getFullYear() }} MengYX</span>
|
<span>Copyright © 2019 - {{ new Date().getFullYear() }} MengYX</span>
|
||||||
音乐解锁使用
|
音乐解锁使用
|
||||||
<a href="https://github.com/ix64/unlock-music/blob/master/LICENSE" target="_blank">MIT许可协议</a>
|
<a href="https://git.unlock-music.dev/um/web/src/branch/master/LICENSE" target="_blank">MIT许可协议</a>
|
||||||
开放源代码
|
开放源代码
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-footer>
|
</el-footer>
|
||||||
@ -77,7 +77,7 @@ export default {
|
|||||||
<div class="update-title">最近更新</div>
|
<div class="update-title">最近更新</div>
|
||||||
<div class="update-content"> ${config.updateInfo} </div>
|
<div class="update-content"> ${config.updateInfo} </div>
|
||||||
</div>
|
</div>
|
||||||
<a target="_blank" href="https://github.com/ix64/unlock-music/wiki/使用提示">使用提示</a>
|
<a target="_blank" href="https://git.unlock-music.dev/um/web/wiki/使用提示">使用提示</a>
|
||||||
</div>`,
|
</div>`,
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
duration: 10000,
|
duration: 10000,
|
||||||
|
@ -43,7 +43,9 @@ form >>> input {
|
|||||||
下载该加密文件的 JOOX 应用所记录的设备唯一识别码。
|
下载该加密文件的 JOOX 应用所记录的设备唯一识别码。
|
||||||
<br />
|
<br />
|
||||||
参见:
|
参见:
|
||||||
<a href="https://github.com/unlock-music/joox-crypto/wiki/%E8%8E%B7%E5%8F%96%E8%AE%BE%E5%A4%87-UUID">
|
<a
|
||||||
|
href="https://git.unlock-music.dev/um/joox-crypto/wiki/%E8%8E%B7%E5%8F%96%E8%AE%BE%E5%A4%87-UUID#%E5%89%8D%E8%A8%80"
|
||||||
|
>
|
||||||
获取设备 UUID · unlock-music/joox-crypto Wiki</a
|
获取设备 UUID · unlock-music/joox-crypto Wiki</a
|
||||||
>。
|
>。
|
||||||
</p>
|
</p>
|
||||||
|
@ -22,7 +22,7 @@ describe('decrypt/joox', () => {
|
|||||||
album: 'unused',
|
album: 'unused',
|
||||||
blob: blob,
|
blob: blob,
|
||||||
artist: 'unused',
|
artist: 'unused',
|
||||||
imgUrl: 'https://github.com/unlock-music',
|
imgUrl: 'https://example.unlock-music.dev/',
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -18,7 +18,9 @@
|
|||||||
:album="editing_data.album"
|
:album="editing_data.album"
|
||||||
:albumartist="editing_data.albumartist"
|
:albumartist="editing_data.albumartist"
|
||||||
:genre="editing_data.genre"
|
:genre="editing_data.genre"
|
||||||
@cancel="showEditDialog = false" @ok="handleEdit"></edit-dialog>
|
@cancel="showEditDialog = false"
|
||||||
|
@ok="handleEdit"
|
||||||
|
></edit-dialog>
|
||||||
<config-dialog :show="showConfigDialog" @done="showConfigDialog = false"></config-dialog>
|
<config-dialog :show="showConfigDialog" @done="showConfigDialog = false"></config-dialog>
|
||||||
<el-tooltip class="item" effect="dark" placement="top">
|
<el-tooltip class="item" effect="dark" placement="top">
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
@ -37,14 +39,20 @@
|
|||||||
开启后,解锁结果将不会存留于浏览器中,防止内存不足。
|
开启后,解锁结果将不会存留于浏览器中,防止内存不足。
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<el-checkbox v-model="instant_save" type="success" border class="ml-2">立即保存</el-checkbox>
|
<el-checkbox v-model="instant_save" type="success" border class="ml-2">立即保存</el-checkbox>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<audio :autoplay="playing_auto" :src="playing_url" controls />
|
<audio :autoplay="playing_auto" :src="playing_url" controls />
|
||||||
|
|
||||||
<PreviewTable :policy="filename_policy" :table-data="tableData" @download="saveFile" @edit="editFile" @play="changePlaying" />
|
<PreviewTable
|
||||||
|
:policy="filename_policy"
|
||||||
|
:table-data="tableData"
|
||||||
|
@download="saveFile"
|
||||||
|
@edit="editFile"
|
||||||
|
@play="changePlaying"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -70,7 +78,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
showConfigDialog: false,
|
showConfigDialog: false,
|
||||||
showEditDialog: false,
|
showEditDialog: false,
|
||||||
editing_data: { picture: '', title: '', artist: '', album: '', albumartist: '', genre: '', },
|
editing_data: { picture: '', title: '', artist: '', album: '', albumartist: '', genre: '' },
|
||||||
tableData: [],
|
tableData: [],
|
||||||
playing_url: '',
|
playing_url: '',
|
||||||
playing_auto: false,
|
playing_auto: false,
|
||||||
@ -111,7 +119,7 @@ export default {
|
|||||||
errInfo +
|
errInfo +
|
||||||
',' +
|
',' +
|
||||||
filename +
|
filename +
|
||||||
',参考<a target="_blank" href="https://github.com/ix64/unlock-music/wiki/使用提示">使用提示</a>',
|
',参考<a target="_blank" href="https://git.unlock-music.dev/um/web/wiki/使用提示">使用提示</a>',
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
duration: 6000,
|
duration: 6000,
|
||||||
});
|
});
|
||||||
@ -164,12 +172,13 @@ export default {
|
|||||||
console.warn('获取图像失败', this.editing_data.picture);
|
console.warn('获取图像失败', this.editing_data.picture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const newMeta = { picture: imageInfo?.buffer,
|
const newMeta = {
|
||||||
|
picture: imageInfo?.buffer,
|
||||||
title: data.title,
|
title: data.title,
|
||||||
artists: data.artist.split(split_regex),
|
artists: data.artist.split(split_regex),
|
||||||
album: data.album,
|
album: data.album,
|
||||||
albumartist: data.albumartist,
|
albumartist: data.albumartist,
|
||||||
genre: data.genre.split(split_regex)
|
genre: data.genre.split(split_regex),
|
||||||
};
|
};
|
||||||
const buffer = Buffer.from(await this.editing_data.blob.arrayBuffer());
|
const buffer = Buffer.from(await this.editing_data.blob.arrayBuffer());
|
||||||
const mime = AudioMimeType[this.editing_data.ext] || AudioMimeType.mp3;
|
const mime = AudioMimeType[this.editing_data.ext] || AudioMimeType.mp3;
|
||||||
|
Loading…
Reference in New Issue
Block a user