From 4e00b94ee66ab40b3d5688fefac90877a98f1feb Mon Sep 17 00:00:00 2001 From: MoeFurina <222616389+MoeFurina@users.noreply.github.com> Date: Sun, 9 Nov 2025 10:51:14 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=88=A0=E9=99=A4=E8=BF=87=E6=97=B6?= =?UTF-8?q?=E7=9A=84issue=E6=A8=A1=E6=9D=BF=E5=92=8C=E6=9B=B4=E6=96=B0bug?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E5=8F=8A=E5=8A=9F=E8=83=BD=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/------.md | 45 ------- .github/ISSUE_TEMPLATE/----.md | 11 -- .github/ISSUE_TEMPLATE/bug_report.yml | 132 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 72 +++++++++++ issue_template.md | 29 ----- module/song_url_v1.js | 1 + server.js | 4 +- test/music_url.test.js | 9 +- test/search.test.js | 6 +- 10 files changed, 220 insertions(+), 94 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/------.md delete mode 100644 .github/ISSUE_TEMPLATE/----.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 issue_template.md diff --git a/.github/ISSUE_TEMPLATE/------.md b/.github/ISSUE_TEMPLATE/------.md deleted file mode 100644 index c219549..0000000 --- a/.github/ISSUE_TEMPLATE/------.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: 创建问题反馈 -about: 问题反馈 -title: "<不按照模版格式或者删除模版信息将得不到处理,确认看完了调用前须知再发 issues>" -labels: '' -assignees: '' - ---- - -## 环境 -- 系统/平台: <你的系统和平台> - -- nodejs 版本: <你的 NodeJS 版本号> - -- API版本: <运行的云音乐 API 的版本号, 对应 package.json 里面的 version> - -## 出现问题 -<请清晰描述出现的问题,不要使用xxx不行之类的模糊不清的语句,我没有读心术> - -## 重现步骤 -<请清晰描述重现步骤,调用的接口链接和参数以及命令行错误信息,最好贴上截图(命令行错误信息和接口返回内容)> - -## 期待效果 -<请清晰描述现在的效果和期待的效果> - - - ---- - ->注意: 如果解灰出现问题, 本项目只是集成[UnblockNeteaseMusic](https://github.com/UnblockNeteaseMusic/server)的接口, 请在对应的仓库开启议题 - ->维护项目都是业余时间,精力有限,我只能挑容易解决的issues处理,为了节约双方时间,请尽可能提供足够的有用的信息,给的信息不够我只能根据精力和时间看情况处理,如果模板信息看都不看就删掉,我不会进行任何回复,并且一个月后close掉issue - ->先看文档有没有相关说明,调用前须知必看,确认看完了调用前须知再发 issues - ->先在 issues 搜一下是否有相似问题,没有再发,否则直接关闭 - ->不处理别人搭建的线上服务的问题,此项目提供任何线上服务不保证质量,请自行搭建 - ->重现步骤尽量详细,不能含糊不清,包含请求地址和对应参数以及操作过程描述,不是每个人都喜欢猜别人遇到了什么问题和找参数一个个试,也比较浪费时间 - ->如果不是提建议,提 issues 如果不照着模版来将不会优先处理或放着不管 - ->460 cheating 的问题把 `utils/request.js` 里面的 `headers['X-Real-IP']` 的注释取消掉就好 - diff --git a/.github/ISSUE_TEMPLATE/----.md b/.github/ISSUE_TEMPLATE/----.md deleted file mode 100644 index 603e1b3..0000000 --- a/.github/ISSUE_TEMPLATE/----.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -name: 功能需求 -about: 希望添加新接口 -title: '' -labels: 功能需求 -assignees: '' - ---- - -**功能描述** -- 请清晰描述你所希望添加的功能,最好贴上对应客户端界面的截图 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..71cb0ec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,132 @@ +name: 🐛 Bug报告 +description: 报告API其中的错误或问题 +title: "[Bug] " +labels: ["bug"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + 感谢您报告Bug!请填写以下信息帮助我们快速定位和修复问题。 + + - type: checkboxes + id: terms + attributes: + label: 确认事项 + description: 在提交Bug报告前,请确认以下事项 + options: + - label: 我已经搜索了现有的issues,确认这不是重复问题 + required: true + - label: 我使用的是最新版本的API, 而且是官方发布的版本,而不是fork或修改版 + required: true + - label: 不处理别人搭建的线上服务的问题,此项目提供任何线上服务不保证质量 + required: true + - label: 如果不是提建议,提 issues 如果不照着模版来将不会优先处理或放着不管 + required: true + - label: 维护项目都是业余时间,精力有限,我只能挑容易解决的issues处理,为了节约双方时间,请尽可能提供足够的有用的信息,给的信息不够我只能根据精力和时间看情况处理,如果模板信息看都不看就删掉,我不会进行任何回复,并且一个月后close掉issue + required: true + + - type: input + id: version + attributes: + label: API版本 + description: 请提供您使用的API版本以及nodejs版本 + placeholder: "v4.2x.x, Node.js v22.x.x" + validations: + required: true + + - type: dropdown + id: os + attributes: + label: 操作系统或平台 + description: 您在哪个操作系统上遇到了这个问题? + options: + - Windows 10 + - Windows 11 + - Ubuntu 20.04 + - Ubuntu 22.04 + - macOS + - 其他 Linux 发行版 + - 使用部署平台或其他 (请在描述中说明) + validations: + required: true + + - type: dropdown + id: deployment + attributes: + label: 部署平台 + description: + options: + - 我使用的自己的服务器部署 + - Vercel + - Heroku + - Railway + - 其他云平台 (请在描述中说明) + validations: + required: true + + - type: textarea + id: bug-description + attributes: + label: Bug描述 + description: 请详细描述您遇到的问题 + placeholder: | + 清晰简洁地描述bug的具体表现... + validations: + required: true + + - type: textarea + id: reproduction-steps + attributes: + label: 重现步骤 + description: 请提供详细的重现步骤 + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: 期望行为 + description: 请描述您期望发生的行为 + placeholder: 清晰简洁地描述您期望应该发生什么... + validations: + required: true + + - type: textarea + id: actual-behavior + attributes: + label: 实际行为 + description: 请描述实际发生的行为 + placeholder: 清晰简洁地描述实际发生了什么... + validations: + required: true + + - type: textarea + id: error-output + attributes: + label: 错误输出日志 + description: 请提供完整的错误信息日志 + render: shell + placeholder: | + 错误信息输出... + + - type: textarea + id: additional-context + attributes: + label: 额外信息 + description: 添加任何其他有助于理解问题的信息 + placeholder: | + - 截图 + - 相关配置文件 + - 其他相关信息 + + - type: checkboxes + id: help + attributes: + label: 愿意协助 + description: 您是否愿意帮助修复这个bug? + options: + - label: 我愿意提交PR来修复这个bug + - label: 我可以提供更多测试用例 + - label: 我可以帮助测试修复方案 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..12bac4e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: 提问的艺术 + url: https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md + about: 默认所有 Issues 发起者均已了解此处的内容 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..50dfc99 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,72 @@ +name: ✨ 接口添加请求 +description: 希望添加新接口 +title: "[Feature] " +labels: ["enhancement"] +assignees: [] + +body: + - type: markdown + attributes: + value: | + 感谢您提出新功能建议!请填写以下信息帮助我们理解您的需求。 + + - type: checkboxes + id: terms + attributes: + label: 确认事项 + description: 在提交功能请求前,请确认以下事项 + options: + - label: 我已经搜索了现有的issues,确认这不是重复请求 + required: true + - label: 我已经查看了项目文档 + required: true + - label: 该项目符合该项目的目标和范围 + required: true + - label: 我确认我提供的接口请求是合理且有意义的 + required: true + + + - type: textarea + id: proposed-solution + attributes: + label: 功能描述 + description: 请详细描述您希望添加的功能,最好贴上对应客户端界面的截图 + placeholder: | + 请详细描述您期望的功能: + - 新的网易云音乐api 接口? + validations: + required: true + + - type: dropdown + id: priority + attributes: + label: 优先级 + description: 您认为这个功能的优先级如何? + options: + - 低 (可有可无的改进) + - 中 (会显著改善使用体验) + - 高 (严重影响了我使用) + - 紧急 (阻塞了重要工作) + validations: + required: true + + - type: textarea + id: compatibility + attributes: + label: 兼容性考虑 + description: 这个功能是否会影响现有代码的兼容性? + placeholder: | + - 是否是破坏性变更? + - 是否需要语法变更? + - 对性能的影响? + + - type: checkboxes + id: implementation + attributes: + label: 实现意愿 + description: 您是否愿意参与这个功能的实现? + options: + - label: 我愿意提交PR来实现这个功能 + - label: 我可以协助设计API接口 + - label: 我可以提供测试用例 + - label: 我可以帮助编写文档 \ No newline at end of file diff --git a/issue_template.md b/issue_template.md deleted file mode 100644 index aff7032..0000000 --- a/issue_template.md +++ /dev/null @@ -1,29 +0,0 @@ -## 环境 -- 系统/平台: <你的系统和平台> - -- nodejs 版本: <你的 NodeJS 版本号> - -- API版本:<运行的云音乐 API 的版本号, 对应 package.json 里面的 version> - -## 出现问题 -<出现的问题> - -## 重现步骤 -<重现步骤> - -## 期待效果 -<现在的效果,期待的效果> - - - ->先看文档有没有相关说明,调用前须知必看 - ->先在 issues 搜一下是否有相似问题,没有再发,否则直接关闭 - ->不处理别人搭建的线上服务的问题,此项目不提供任何线上服务,请自行搭建 - ->重现步骤尽量详细,不能含糊不清,包含请求地址和对应参数以及操作过程描述,不是每个人都喜欢猜别人遇到了什么问题和找参数一个个试,也比较浪费时间 - ->如果不是提建议,提 issues 如果不照着模版来将不会优先处理或直接关闭 - ->460 cheating 的问题把 `util/request.js` 里面的 `headers['X-Real-IP']` 的注释取消掉就好 diff --git a/module/song_url_v1.js b/module/song_url_v1.js index fae1989..ad65012 100644 --- a/module/song_url_v1.js +++ b/module/song_url_v1.js @@ -40,6 +40,7 @@ module.exports = async (query, request) => { status: 200, body: { code: 200, + msg: 'Warning: you can only adjust unblock source in dotenv config, use /song/url/match instead.', data: [ { id: Number(query.id), diff --git a/server.js b/server.js index 704da1d..46c9ee5 100644 --- a/server.js +++ b/server.js @@ -258,11 +258,11 @@ async function consturctServer(moduleDefs) { const source = process.env.UNBLOCK_SOURCE ? process.env.UNBLOCK_SOURCE.split(',') : ['pyncmd', 'bodian', 'kuwo', 'qq', 'migu', 'kugou'] - logger.info('开始解灰', source) + logger.info('Starting unblock:', source) const { url } = await match(req.query.id, source) song.url = url song.freeTrialInfo = 'null' - logger.info('解灰成功!') + logger.info('Unblock success!') } if (song.url && song.url.includes('kuwo')) { const proxy = process.env.PROXY_URL diff --git a/test/music_url.test.js b/test/music_url.test.js index bcfb6d9..b01db28 100644 --- a/test/music_url.test.js +++ b/test/music_url.test.js @@ -4,13 +4,14 @@ const host = global.host || 'http://localhost:3000' describe('测试获取歌曲是否正常', () => { it('歌曲的 url 不应该为空', (done) => { const qs = { - id: 2756058128, - br: 999000, - realIP: global.cnIp, + id: 2709812973, + level: 'exhigh', + realip: '125.88.253.199', + // realIP: global.cnIp, } axios - .get(`${host}/song/url`, { + .get(`${host}/song/url/v1`, { params: qs, }) .then(({ status, data }) => { diff --git a/test/search.test.js b/test/search.test.js index 4088d96..4298335 100644 --- a/test/search.test.js +++ b/test/search.test.js @@ -4,17 +4,17 @@ const host = global.host || 'http://localhost:3000' describe('测试搜索是否正常', () => { it('获取到的数据的 name 应该和搜索关键词一致', (done) => { const qs = { - keywords: '海阔天空', + keywords: '拂晓 Proi Proi', type: 1, realIP: global.cnIp, } axios - .get(`${host}/search`, { + .get(`${host}/cloudsearch`, { params: qs, }) .then(({ status, data }) => { if (status == 200) { - assert(data.result.songs[0].name === '海阔天空') + assert(data.result.songs[0].name === '拂晓 Proi Proi') } done() })