mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2025-10-22 06:03:09 +00:00
perf: 新增接口, 修复登录问题
Co-Authored-By: binaryify <binaryify@gmail.com>
This commit is contained in:
parent
365450c26e
commit
4f4aa134d5
@ -4,6 +4,7 @@ const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
ctcode: query.ctcode || '86',
|
||||
secrete: 'music_middleuser_pclogin',
|
||||
cellphone: query.phone,
|
||||
}
|
||||
return request(`/api/sms/captcha/sent`, data, createOption(query, 'weapi'))
|
||||
|
@ -13,7 +13,7 @@ module.exports = async (query, request) => {
|
||||
[query.captcha ? 'captcha' : 'password']: query.captcha
|
||||
? query.captcha
|
||||
: query.md5_password || CryptoJS.MD5(query.password).toString(),
|
||||
rememberLogin: 'true',
|
||||
remember: 'true',
|
||||
}
|
||||
let result = await request(
|
||||
`/api/w/login/cellphone`,
|
||||
|
@ -1,9 +1,20 @@
|
||||
const QRCode = require('qrcode')
|
||||
const { generateChainId } = require('../util/index')
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
module.exports = (query) => {
|
||||
return new Promise(async (resolve) => {
|
||||
const url = `https://music.163.com/login?codekey=${query.key}`
|
||||
const platform = query.platform || 'pc'
|
||||
const cookie = query.cookie || ''
|
||||
|
||||
// 构建基础URL
|
||||
let url = `https://music.163.com/login?codekey=${query.key}`
|
||||
|
||||
// 如果是web平台,则添加chainId参数
|
||||
|
||||
if (platform === 'web') {
|
||||
const chainId = generateChainId(cookie)
|
||||
url += `&chainId=${chainId}`
|
||||
}
|
||||
return resolve({
|
||||
code: 200,
|
||||
status: 200,
|
||||
|
11
module/playlist_category_list.js
Normal file
11
module/playlist_category_list.js
Normal file
@ -0,0 +1,11 @@
|
||||
// 歌单分类列表
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
const data = {
|
||||
cat: query.cat || '全部',
|
||||
limit: query.limit || 24,
|
||||
newStyle: true,
|
||||
}
|
||||
return request(`/api/playlist/category/list`, data, createOption(query))
|
||||
}
|
@ -2,5 +2,5 @@
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
return request(`/api/playlist/catalogue`, {}, createOption(query, 'weapi'))
|
||||
return request(`/api/playlist/catalogue`, {}, createOption(query, 'eapi'))
|
||||
}
|
||||
|
@ -1,10 +1,14 @@
|
||||
// 收藏与取消收藏歌单
|
||||
|
||||
const { APP_CONF } = require('../util/config.json')
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
query.t = query.t == 1 ? 'subscribe' : 'unsubscribe'
|
||||
const path = query.t == 1 ? 'subscribe' : 'unsubscribe'
|
||||
const data = {
|
||||
id: query.id,
|
||||
...(query.t === 1
|
||||
? { checkToken: query.checkToken || APP_CONF.checkToken }
|
||||
: {}),
|
||||
}
|
||||
return request(`/api/playlist/${query.t}`, data, createOption(query, 'weapi'))
|
||||
query.checkToken = true // 强制开启checkToken
|
||||
return request(`/api/playlist/${path}`, data, createOption(query, 'eapi'))
|
||||
}
|
||||
|
@ -2,17 +2,13 @@ const CryptoJS = require('crypto-js')
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
const ID_XOR_KEY_1 = '3go8&$8*3*3h0k(2)2'
|
||||
const deviceidText = fs.readFileSync(
|
||||
path.resolve(__dirname, '../data/deviceid.txt'),
|
||||
'utf-8',
|
||||
)
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
const deviceidList = deviceidText.split('\n')
|
||||
const { generateDeviceId } = require('../util/index')
|
||||
|
||||
function getRandomFromList(list) {
|
||||
return list[Math.floor(Math.random() * list.length)]
|
||||
}
|
||||
// function getRandomFromList(list) {
|
||||
// return list[Math.floor(Math.random() * list.length)]
|
||||
// }
|
||||
function cloudmusic_dll_encode_id(some_id) {
|
||||
let xoredString = ''
|
||||
for (let i = 0; i < some_id.length; i++) {
|
||||
@ -26,7 +22,8 @@ function cloudmusic_dll_encode_id(some_id) {
|
||||
}
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
const deviceId = getRandomFromList(deviceidList)
|
||||
const deviceId = generateDeviceId()
|
||||
console.log(`[register_anonimous] deviceId: ${deviceId}`)
|
||||
global.deviceId = deviceId
|
||||
const encodedId = CryptoJS.enc.Base64.stringify(
|
||||
CryptoJS.enc.Utf8.parse(
|
||||
|
@ -9,6 +9,7 @@ module.exports = (query, request) => {
|
||||
password: CryptoJS.MD5(query.password).toString(),
|
||||
nickname: query.nickname,
|
||||
countrycode: query.countrycode || '86',
|
||||
force: 'false',
|
||||
}
|
||||
return request(`/api/register/cellphone`, data, createOption(query))
|
||||
return request(`/api/w/register/cellphone`, data, createOption(query))
|
||||
}
|
||||
|
6
module/toplist_detail_v2.js
Normal file
6
module/toplist_detail_v2.js
Normal file
@ -0,0 +1,6 @@
|
||||
// 所有榜单内容摘要v2
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = (query, request) => {
|
||||
return request(`/api/toplist/detail/v2`, {}, createOption(query, 'weapi'))
|
||||
}
|
20
module/user_detail_new.js
Normal file
20
module/user_detail_new.js
Normal file
@ -0,0 +1,20 @@
|
||||
// 用户详情
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
module.exports = async (query, request) => {
|
||||
const data = {
|
||||
all: 'true',
|
||||
userId: query.uid,
|
||||
}
|
||||
const res = await request(
|
||||
`/api/w/v1/user/detail/${query.uid}`,
|
||||
data,
|
||||
createOption(query, 'eapi'),
|
||||
)
|
||||
// const result = JSON.stringify(res).replace(
|
||||
// /avatarImgId_str/g,
|
||||
// "avatarImgIdStr"
|
||||
// );
|
||||
// return JSON.parse(result);
|
||||
return res
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@neteaseapireborn/api",
|
||||
"version": "4.28.29",
|
||||
"version": "4.29.0",
|
||||
"description": "为停更的网易云音乐 NodeJs API 提供持续的维护!",
|
||||
"scripts": {
|
||||
"start": "node app.js",
|
||||
|
Loading…
x
Reference in New Issue
Block a user