对 Unlock Music 使用 React 重写(um-react) https://um-react.netlify.app/
Go to file
jixunmoe e1db1b4618
Some checks failed
continuous-integration/drone/push Build is failing
Merge pull request '#58 蜻蜓FM 安卓端支援' (#59) from feat/qingting-fm into main
Reviewed-on: #59
2023-12-22 10:35:17 +00:00
.husky Revert "refactor: use yarn instead of pnpm (#23)" 2023-06-10 17:02:36 +01:00
.vscode chore: added vscode extension recommendation 2023-05-21 14:32:18 +01:00
docs chore: fix faq layout 2023-09-05 01:56:34 +01:00
patches build: fix build issue with vite/vite-pwa/parakeet; upgrade deps 2023-12-21 22:49:12 +00:00
public chore: remove gitkeep placeholder from public folder 2023-05-27 01:08:47 +01:00
scripts ci: automatically promote latest main build as published. 2023-06-10 21:59:08 +01:00
src feat: qtfm instructions & notes 2023-12-22 10:33:12 +00:00
support chore: don't fail the build when building from source tarball (#40) 2023-09-16 15:11:11 +01:00
.drone.yml ci: enable publish to gitea 2023-12-22 10:34:47 +00:00
.editorconfig chore: apply indentation rule for cjs/mjs as well 2023-05-16 22:50:03 +01:00
.env refactor: make console log less verbose when not needed 2023-05-22 00:00:35 +01:00
.eslintignore chore: configure eslint rules 2023-05-18 00:03:55 +01:00
.eslintrc.cjs chore: configure eslint rules 2023-05-18 00:03:55 +01:00
.gitattributes feat: fix mmkv parser, support for ios ekey mmkv 2023-06-15 19:30:33 +01:00
.gitignore Revert "refactor: use yarn instead of pnpm (#23)" 2023-06-10 17:02:36 +01:00
.npmrc chore: prefer node v20.8.1 over v18 2023-10-19 02:05:23 +01:00
.prettierignore chore: don't reformat lockfile 2023-06-10 00:46:26 +01:00
index.html feat: get pwa working 2023-05-22 00:29:27 +01:00
LICENSE initial commit 2023-05-07 20:11:16 +01:00
package.json build: fix build issue with vite/vite-pwa/parakeet; upgrade deps 2023-12-21 22:49:12 +00:00
pnpm-lock.yaml build: fix build issue with vite/vite-pwa/parakeet; upgrade deps 2023-12-21 22:49:12 +00:00
README.MD docs: readme for supported version 2023-11-03 00:07:49 +00:00
tsconfig.json feat: import ekey from Android db (#20) 2023-06-11 16:22:57 +01:00
tsconfig.node.json chore: don't fail the build when building from source tarball (#40) 2023-09-16 15:11:11 +01:00
tsconfig.prod.json chore: fix types for build & test 2023-05-18 00:03:30 +01:00
vite.config.ts build: remove workaround for test 2023-12-21 22:51:44 +00:00

Unlock Music 音乐解锁 (React)

Build Status

支持的格式

  • QQ 音乐 QMCv1 (..qmc3/.qmcflac 等)
  • QQ 音乐 QMCv2
    • PC 客户端 (.mflac/.mgg 等) 1
    • 安卓客户端 (.mflac0/.mgg1/.mggl 等) 2
    • iOS 客户端 (.mgalaxy 等) 3
    • Mac 客户端 (.mflach 等) 4
  • 网易云音乐 (.ncm)
  • 虾米音乐 (.xm)
  • 酷我音乐 (.kwm)
  • 酷狗音乐 (.kgm/.vpr)
  • 喜马拉雅 Android 端 (.x2m/.x3m)
  • 咪咕音乐格式 (.mg3d)
  • QQ 音乐海外版JOOX Music (.ofl_en)

不支持的格式?请提交样本(加密文件)与客户端信息(或一并上传其安装包)到仓库的问题追踪区。如果文件太大,请上传到不需要登入下载的网盘,如 mega.nzOneDrive 等。

如果遇到解密出错的情况,请一并携带错误信息并简单描述错误的重现过程。

开发相关

从源码运行或编译生产版本,请参考文档「新手上路」。

面向 libparakeet SDK 开发

⚠️ 如果只是进行前端方面的更改,你可以跳过该节。

请参考文档「面向 libparakeet-js 开发」。

架构

  • 浏览器主线程: 渲染界面,处理 UI 更新
  • Web Worker: 负责计算方面的内容,如内容解密。

数据传输: 生成 blob url (URL.createObjectURL) 然后透过 postMessage 传递给线程,线程利用 fetch API 来获取文件信息。

贡献代码

欢迎贡献代码。请确保:

  • 单元测试的覆盖率不低于主分支的覆盖率;
  • 提交前请使用 Prettier 对代码进行格式化;
  • 提交前请确保 ESLint 不会报告 warning / error

满足上述条件后发起 Pull Request仓库管理员审阅后将合并到主分支。

TODO

  • 待定
  • 完成
    • #8 添加单元测试 框架加上了,以后慢慢添加更多测试即可。
    • #2 解密内容探测 (解密过程)
    • #6 文件拖放 (利用 react-dropzone?)

  1. PC 客户端仅支持 v19.43 或更低版本。 ↩︎

  2. 需要获取超级管理员权限后提取密钥数据库,并导入后使用。 ↩︎

  3. 需要越狱获取密钥数据库,或对设备进行完整备份后提取密钥数据库,并导入后使用。 ↩︎

  4. 需要导入密钥数据库。 ↩︎