enhancement(lint): Fix lint errors for hackclub-spotify-bot/src/spotify.js

Co-authored-by: NeonGamerBot-QK <saahilattud@gmail.com>
Signed-off-by: zeon-neon[bot] <136533918+zeon-neon[bot]@users.noreply.github.com>
Signed-off-by: Saahil <neon@saahild.com>
This commit is contained in:
zeon-neon[bot] 2024-10-12 22:01:22 +00:00 committed by Saahil
parent 2c48135d29
commit 5f3ff5c715
Signed by: neon
GPG key ID: 8A8B64515254CFC6

View file

@ -1,4 +1,3 @@
let token = null;
let authStuff = null;
const client_id = process.env.SPOTIFY_CLIENT_ID;
@ -16,9 +15,9 @@ async function fetchWebApi(endpoint, method, body) {
// console.debug(text)
// abs nothing is wrong
return JSON.parse(text.trim());
}
}
function getLoginUrl() {
function getLoginUrl() {
const state = generateRandomString(16);
const scope = [
// "ugc-image-upload",
@ -46,9 +45,9 @@ async function fetchWebApi(endpoint, method, body) {
"https://accounts.spotify.com/authorize?" +
`response_type=code&grant_type=client_credentials&client_id=${client_id}&scope=${scope}&redirect_uri=${redirect_uri}&state=${state}`
);
}
}
function generateRandomString(length) {
function generateRandomString(length) {
let result = "";
const characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
@ -59,8 +58,8 @@ async function fetchWebApi(endpoint, method, body) {
counter += 1;
}
return result;
}
async function refreshToken(refresh_token) {
}
async function refreshToken(refresh_token) {
try {
// var refresh_token = req.query.refresh_token;
const authOptions = {
@ -109,20 +108,24 @@ async function fetchWebApi(endpoint, method, body) {
// try again asap because we NEED THAT TOKEN
refreshToken(refresh_token);
}
}
}
function saveCredentials(creds) {
require('fs').writeFileSync('data/credentials.json', JSON.stringify(creds, null, 2));
require("fs").writeFileSync(
"data/credentials.json",
JSON.stringify(creds, null, 2),
);
}
function getCredentials() {
try {
return JSON.parse(require('fs').readFileSync('data/credentials.json', 'utf8'));
return JSON.parse(
require("fs").readFileSync("data/credentials.json", "utf8"),
);
} catch (e) {
return null;
}
}
function spotifyRoutes(app) {
app.get('/spotify/callback', async (req,res) => {
app.get("/spotify/callback", async (req, res) => {
const code = req.query.code || null;
const state = req.query.state || null;
@ -166,7 +169,7 @@ function spotifyRoutes(app) {
.then((auth) => {
// console.log(auth);
authStuff = auth;
saveCredentials(auth)
saveCredentials(auth);
token = auth.access_token;
if (auth.expires_in) {
setTimeout(() => {
@ -174,23 +177,23 @@ function spotifyRoutes(app) {
}, auth.expires_in * 1000);
}
res.status(200).end("Successfully logged in!");
})
});
}
})
});
}
function addSongToPlaylist(url) {
fetchWebApi('v1/playlists/3gRv97fvllFFLVdCH6XzsE/tracks', 'POST', {
fetchWebApi("v1/playlists/3gRv97fvllFFLVdCH6XzsE/tracks", "POST", {
uris: [url],
position: 0,
})
});
}
module.exports = {
module.exports = {
getLoginUrl,
refreshToken,
saveCredentials,
getCredentials,
spotifyRoutes,
addSongToPlaylist
addSongToPlaylist,
// getToken
}
};