mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-08-12 17:10:37 +00:00
fix: 修复评论接口
This commit is contained in:
parent
321c25bd7d
commit
2fa78c3826
@ -8,7 +8,7 @@ module.exports = async (query, request) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const option = createOption(query, 'xeapi')
|
const option = createOption(query, 'xeapi')
|
||||||
option.checkToken = true
|
option.checkToken = 'v2'
|
||||||
|
|
||||||
const res = await request(`/api/ad/get`, data, option)
|
const res = await request(`/api/ad/get`, data, option)
|
||||||
const raw = res.body
|
const raw = res.body
|
||||||
|
|||||||
@ -75,7 +75,7 @@ module.exports = async (query, request) => {
|
|||||||
const res = await request(
|
const res = await request(
|
||||||
`/api/ad/listening/rights/gain`,
|
`/api/ad/listening/rights/gain`,
|
||||||
data,
|
data,
|
||||||
createOption(query, 'xeapi', true),
|
createOption(query, 'eapi', 'v2'),
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -25,6 +25,6 @@ module.exports = (query, request) => {
|
|||||||
return request(
|
return request(
|
||||||
`/api/resource/comments/${query.t}`,
|
`/api/resource/comments/${query.t}`,
|
||||||
data,
|
data,
|
||||||
createOption(query, 'weapi'),
|
createOption(query, 'xeapi', 'v3'),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,6 @@ module.exports = (query, request) => {
|
|||||||
? { checkToken: query.checkToken || APP_CONF.checkToken }
|
? { checkToken: query.checkToken || APP_CONF.checkToken }
|
||||||
: {}),
|
: {}),
|
||||||
}
|
}
|
||||||
query.checkToken = true // 强制开启checkToken
|
query.checkToken = 'v2' // 强制开启checkToken
|
||||||
return request(`/api/playlist/${path}`, data, createOption(query, 'eapi'))
|
return request(`/api/playlist/${path}`, data, createOption(query, 'eapi'))
|
||||||
}
|
}
|
||||||
|
|||||||
38
module/register_checktoken_v2.js
Normal file
38
module/register_checktoken_v2.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
// 易盾反作弊 Token 注册端点
|
||||||
|
// 调用后获取实时 token 并存入共享存储,供后续带 checkToken 的请求使用
|
||||||
|
//
|
||||||
|
// GET /register/checktoken → 返回当前 token(尚无则自动获取)
|
||||||
|
// POST /register/checktoken → 强制刷新 token
|
||||||
|
// GET /register/checktoken?refresh=1 → 强制刷新
|
||||||
|
//
|
||||||
|
const { default: axios } = require('axios')
|
||||||
|
const { APP_CONF } = require('../util/config.json')
|
||||||
|
|
||||||
|
const URL = APP_CONF.dunDomainV2 + '/v2/config/js?pn=YD00000558929251'
|
||||||
|
let _token = ''
|
||||||
|
|
||||||
|
async function fetch() {
|
||||||
|
const res = await axios.get(URL, { timeout: 10000 })
|
||||||
|
const data = res.data
|
||||||
|
if (data && data.code === 200 && data.result && data.result.conf) {
|
||||||
|
return data.result.conf
|
||||||
|
}
|
||||||
|
throw new Error('易盾返回异常: ' + JSON.stringify(data).substring(0, 200))
|
||||||
|
}
|
||||||
|
|
||||||
|
// 端点处理
|
||||||
|
module.exports = async (query) => {
|
||||||
|
const refresh = query.refresh === '1' || query.refresh === 'true'
|
||||||
|
let token = refresh ? null : _token
|
||||||
|
if (!token) {
|
||||||
|
token = await fetch()
|
||||||
|
_token = token
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
status: 200,
|
||||||
|
body: { code: 200, token, registered: !!token },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 给 request.js 读取用
|
||||||
|
module.exports.getToken = () => _token
|
||||||
@ -8,7 +8,7 @@
|
|||||||
const { default: axios } = require('axios')
|
const { default: axios } = require('axios')
|
||||||
const { APP_CONF } = require('../util/config.json')
|
const { APP_CONF } = require('../util/config.json')
|
||||||
|
|
||||||
const URL = APP_CONF.dunDomain + '/v3/b?pn=YD00000558929251'
|
const URL = APP_CONF.dunDomainV3 + '/v3/b?pn=YD00000558929251'
|
||||||
let _token = ''
|
let _token = ''
|
||||||
|
|
||||||
async function fetch() {
|
async function fetch() {
|
||||||
@ -172,7 +172,7 @@
|
|||||||
setTag('s1tag', 'busy', '注册中…')
|
setTag('s1tag', 'busy', '注册中…')
|
||||||
setNum('s1num', false)
|
setNum('s1num', false)
|
||||||
try {
|
try {
|
||||||
const res = await fetch(nocache(base + '/register/checktoken?refresh=1'))
|
const res = await fetch(nocache(base + '/register/checktoken/v2?refresh=1'))
|
||||||
const data = await res.json()
|
const data = await res.json()
|
||||||
$('s1pre').textContent = JSON.stringify(data, null, 2)
|
$('s1pre').textContent = JSON.stringify(data, null, 2)
|
||||||
if (data.token) {
|
if (data.token) {
|
||||||
|
|||||||
@ -88,7 +88,7 @@
|
|||||||
tag.textContent = '获取中…'
|
tag.textContent = '获取中…'
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const url = base + '/register/checktoken' + (refresh ? '?refresh=1' : '')
|
const url = base + '/register/checktoken/v2' + (refresh ? '?refresh=1' : '')
|
||||||
const res = await fetch(url)
|
const res = await fetch(url)
|
||||||
const data = await res.json()
|
const data = await res.json()
|
||||||
$('respDisplay').textContent = JSON.stringify(data, null, 2)
|
$('respDisplay').textContent = JSON.stringify(data, null, 2)
|
||||||
|
|||||||
@ -15,7 +15,8 @@
|
|||||||
"domain": "https://music.163.com",
|
"domain": "https://music.163.com",
|
||||||
"clDomian": "https://clientlog.music.163.com",
|
"clDomian": "https://clientlog.music.163.com",
|
||||||
"clDomian3": "https://clientlog3.music.163.com",
|
"clDomian3": "https://clientlog3.music.163.com",
|
||||||
"dunDomain": "https://ac.dun.163yun.com",
|
"dunDomainV3": "https://ac.dun.163yun.com",
|
||||||
|
"dunDomainV2": "https://ac.dun.163.com",
|
||||||
"encrypt": true,
|
"encrypt": true,
|
||||||
"encryptResponse": false,
|
"encryptResponse": false,
|
||||||
"clientSign": "18:C0:4D:B9:8F:FE@@@453832335F384641365F424635335F303030315F303031425F343434415F343643365F333638332@@@@@@6ff673ef74955b38bce2fa8562d95c976ed4758b1227c4e9ee345987cee17bc9",
|
"clientSign": "18:C0:4D:B9:8F:FE@@@453832335F384641365F424635335F303030315F303031425F343434415F343643365F333638332@@@@@@6ff673ef74955b38bce2fa8562d95c976ed4758b1227c4e9ee345987cee17bc9",
|
||||||
|
|||||||
@ -18,7 +18,12 @@ const {
|
|||||||
} = require('./index')
|
} = require('./index')
|
||||||
const { URLSearchParams, URL } = require('url')
|
const { URLSearchParams, URL } = require('url')
|
||||||
const { APP_CONF } = require('../util/config.json')
|
const { APP_CONF } = require('../util/config.json')
|
||||||
const { getToken: antiCheatToken } = require('../module/register_checktoken')
|
const {
|
||||||
|
getToken: antiCheatTokenV2,
|
||||||
|
} = require('../module/register_checktoken_v2')
|
||||||
|
const {
|
||||||
|
getToken: antiCheatTokenV3,
|
||||||
|
} = require('../module/register_checktoken_v3')
|
||||||
|
|
||||||
// 预先读取匿名token并缓存
|
// 预先读取匿名token并缓存
|
||||||
const anonymous_token = fs.readFileSync(
|
const anonymous_token = fs.readFileSync(
|
||||||
@ -182,7 +187,15 @@ const generateRequestId = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const createRequest = (uri, data, options) => {
|
const createRequest = (uri, data, options) => {
|
||||||
const token = options.checkToken ? antiCheatToken() : ''
|
let token = ''
|
||||||
|
switch (options.checkToken) {
|
||||||
|
case 'v2':
|
||||||
|
token = antiCheatTokenV2()
|
||||||
|
break
|
||||||
|
case 'v3':
|
||||||
|
token = antiCheatTokenV3()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// 变量声明和初始化
|
// 变量声明和初始化
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user