GDBrowser/api/song.js
2021-01-05 11:17:36 -05:00

31 lines
No EOL
1.3 KiB
JavaScript

const request = require('request')
module.exports = async (app, req, res) => {
let info = {error: true, exists: false, artist: { name: "", scouted: false, whitelisted: false }, song: { name: "", externalUse: false, allowed: false } }
if (app.offline) return res.send(info)
let songID = req.params.song
request.post(app.endpoint + 'testSong.php?songID=' + songID, req.gdParams(), async function(err, resp, body) {
if (err || !body || body == '-1' || body.startsWith("<!")) return res.send(info)
request.post(app.endpoint + 'getGJSongInfo.php', req.gdParams({songID: songID}), async function(err2, resp, songAllowed) {
if (err2 || !songAllowed || songAllowed < 0 || body.startsWith("<!")) return res.send(info)
let artistInfo = body.split(/<\/?br>/)
info.artist.name = artistInfo[0].split(": ")[1]
info.exists = info.artist.name.length > 0
info.artist.scouted = artistInfo[2].split("is NOT").length == 1
info.artist.whitelisted = artistInfo[1].split("is NOT").length == 1
info.song.name = artistInfo[4].split(": ")[1]
info.song.externalUse = artistInfo[5].split("API NOT").length == 1
info.song.allowed = songAllowed.length > 15
delete info.error
res.send(info)
})
})
}