diff --git a/CHANGELOG.MD b/CHANGELOG.MD index 0821d57..619d809 100644 --- a/CHANGELOG.MD +++ b/CHANGELOG.MD @@ -1,25 +1,36 @@ # 更新日志 + +### 4.19.0 | 2024.05.07 + +- 云贝签到接口替换 +- 新增 eapi 解析接口和使用 demo + ### 4.18.3 | 2024.05.07 + - 云盘上传问题修复 ### 4.18.2 | 2024.04.30 + - 配置和 typo 修复 - + ### 4.18.0 | 2024.04.30 + - 补充游客 deviceid,防止都指向相同账户,避免网络拥堵提示问题 - ip 设置问题修复 - 新增`电台排行榜获取`, `获取声音歌词`接口 ### 4.17.1 | 2024.04.29 + - song/url 参数问题修复 ### 4.17.0 | 2024.04.29 + - ua 更新 - cookie 处理优化 - 收藏与取消收藏歌单接口更新 - ### 4.16.6 | 2024.04.25 + - ua 问题修复 - 使用 crypto-js 重构 crypto 部分 diff --git a/module/eapi_decrypt.js b/module/eapi_decrypt.js new file mode 100644 index 0000000..0a17050 --- /dev/null +++ b/module/eapi_decrypt.js @@ -0,0 +1,26 @@ +const { eapiResDecrypt, eapiReqDecrypt } = require('../util/crypto') + +module.exports = async (query, request) => { + const hexString = query.hexString + const isFormat = query.isFormat != 'false' + if (!hexString) { + return { + status: 400, + body: { + code: 400, + message: 'hex string is required', + }, + } + } + // 去除空格 + let pureHexString = hexString.replace(/\s/g, '') + return { + status: 200, + body: { + code: 200, + data: isFormat + ? eapiReqDecrypt(pureHexString) + : eapiResDecrypt(pureHexString), + }, + } +} diff --git a/module/yunbei_sign.js b/module/yunbei_sign.js index 84c7291..e8134bf 100644 --- a/module/yunbei_sign.js +++ b/module/yunbei_sign.js @@ -1,12 +1,15 @@ module.exports = (query, request) => { - const data = { - type: '0', - } - return request('POST', `https://music.163.com/api/point/dailyTask`, data, { - crypto: 'weapi', - cookie: query.cookie, - ua: query.ua || '', - proxy: query.proxy, - realIP: query.realIP, - }) + const data = {} + return request( + 'POST', + `https://music.163.com/api/pointmall/user/sign`, + data, + { + crypto: 'weapi', + cookie: query.cookie, + ua: query.ua || '', + proxy: query.proxy, + realIP: query.realIP, + }, + ) } diff --git a/module_example/eapi_decrypt.js b/module_example/eapi_decrypt.js new file mode 100644 index 0000000..ef6930c --- /dev/null +++ b/module_example/eapi_decrypt.js @@ -0,0 +1,15 @@ +const { eapiResDecrypt, eapiReqDecrypt } = require('../util/crypto') + +let reqParamsHex = + '6E0B1C712DCB3648589D7C950C296204072A88C3E080C4CFFD0A71A553EC2533BA88E11B1E1C6DF3BE8EFA26177FCB6FCA34EB3FAFAB4671B2BBAFA9781AFDA2BF53A3DC423722493837B9BC6E80CED5BBD2DDC2856920E4D4E3E7F3EB77ECF265217A66AE677BE36F2D6FB203F721CA250E1453EA61A34904E33D5FCB9D483601D744BE0AE979AC911A00F25828538844F4B1C24F6C34880A4AB257F530C7FB10A81FED32B18D09D70C0B1B9D34A2E58A3C3FAD382C6F958077059C4F801AD7B3B248FDB9D7A59B6A9EEFF8C781A84315B33A7AFD48BE9FCFCBE1902CCC27949ACF2BDE3FA34D116E230C3597E8320B8C42BBBF371A00C03EC428E0440EB94C1540F3FD4173D29E310AFE43AB0EF449852904103EF305FC435AD43B7D8673642F74C89CCB2F1A6A79B3BE14F1235D3843C3B241D12C05DBDDF37B68CA8B5D0230AF1FCF2A9705886F4D126B33FFF6948DE1E4046DB6423D687E96C5B65122464D2E71AEC7722935FF2C3796FAE253A16AA3B102FBE7296AB0DB9EA5C46AD12B'.replaceAll( + ' ', + '', + ) +const resHex = + `FB A2 DB 80 DF 26 69 F1 AA 14 81 8E 56 93 53 A6 44 9C 10 70 26 65 59 64 AE 09 02 75 56 65 1C 98 E6 DC E7 50 F1 6E 64 78 BC 87 B8 0E 6D 52 B0 23`.replaceAll( + ' ', + '', + ) +console.log(reqParamsHex) +console.log(eapiReqDecrypt(reqParamsHex)) +console.log(eapiResDecrypt(resHex)) diff --git a/package.json b/package.json index 1330024..a7a0f24 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "NeteaseCloudMusicApi", - "version": "4.18.3", + "version": "4.19.0", "description": "网易云音乐 NodeJS 版 API", "scripts": { "start": "node app.js", diff --git a/public/eapi_decrypt.html b/public/eapi_decrypt.html new file mode 100644 index 0000000..7a2d4cb --- /dev/null +++ b/public/eapi_decrypt.html @@ -0,0 +1,64 @@ + + + +
+ + +解密结果: {{ result }}
+