mirror of
https://gitlab.com/RemixDev/deemix-js.git
synced 2024-12-29 10:56:18 +00:00
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
const got = require('got')
|
|
const {CookieJar} = require('tough-cookie')
|
|
const {_md5} = require('./crypto.js')
|
|
const { USER_AGENT_HEADER } = require('./index.js')
|
|
|
|
const CLIENT_ID = "172365"
|
|
const CLIENT_SECRET = "fb0bec7ccc063dab0417eb7b0d847f34"
|
|
|
|
async function getAccessToken(email, password){
|
|
let accessToken = null
|
|
password = _md5(password, 'utf8')
|
|
const hash = _md5([CLIENT_ID, email, password, CLIENT_SECRET].join(''), 'utf8')
|
|
try {
|
|
let response = await got.get("https://api.deezer.com/auth/token",{
|
|
searchParams: {
|
|
app_id: CLIENT_ID,
|
|
login: email,
|
|
password: password,
|
|
hash
|
|
},
|
|
https: {rejectUnauthorized: false},
|
|
headers: {"User-Agent": USER_AGENT_HEADER}
|
|
}).json()
|
|
accessToken = response.access_token
|
|
if (accessToken == "undefined") accessToken = null
|
|
} catch { /*empty*/ }
|
|
return accessToken
|
|
}
|
|
|
|
async function getArlFromAccessToken(accessToken){
|
|
if (!accessToken) return null
|
|
let arl = null
|
|
let cookieJar = new CookieJar()
|
|
try {
|
|
await got.get("https://api.deezer.com/platform/generic/track/3135556", {
|
|
headers: {"Authorization": `Bearer ${accessToken}`, "User-Agent": USER_AGENT_HEADER},
|
|
https: {rejectUnauthorized: false},
|
|
cookieJar
|
|
})
|
|
let response = await got.get('https://www.deezer.com/ajax/gw-light.php?method=user.getArl&input=3&api_version=1.0&api_token=null', {
|
|
headers: {"User-Agent": USER_AGENT_HEADER},
|
|
https: {rejectUnauthorized: false},
|
|
cookieJar
|
|
}).json()
|
|
arl = response.results
|
|
} catch { /*empty*/ }
|
|
return arl
|
|
}
|
|
|
|
module.exports = {
|
|
getAccessToken,
|
|
getArlFromAccessToken
|
|
}
|