api now takes multiple user IDs

This commit is contained in:
Yannik
2023-08-17 22:03:57 +02:00
parent 3b244f4a91
commit ed4149e7a7

View File

@@ -17,44 +17,51 @@ app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, '/index.html')); res.sendFile(path.join(__dirname, '/index.html'));
}); });
app.get("/*", (req, res) => { app.get("/:userIds", async (req, res) => {
const userIds = req.params.userIds.split(",");
const results = {};
const options = { const promises = userIds.map(async userId => {
url: 'https://discord.com/api/v10/users/' + req.params[0], const options = {
headers: { url: `https://discord.com/api/v10/users/${userId}`,
'Authorization': 'Bot ' + botToken headers: {
} 'Authorization': 'Bot ' + botToken
}; }
};
function callback(error, response, body) { return new Promise((resolve, reject) => {
if (!error && response.statusCode == 200) { request(options, (error, response, body) => {
var preuser = JSON.parse(body); if (!error && response.statusCode == 200) {
var user = { var preuser = JSON.parse(body);
"id": preuser.id, var user = {
"global_name": preuser.global_name, "global_name": preuser.global_name,
"public_flags": preuser.public_flags, "public_flags": preuser.public_flags,
"flags": preuser.flags, "flags": preuser.flags,
"accent_color": preuser.accent_color, "accent_color": preuser.accent_color,
"avatar_decoration": preuser.avatar_decoration, "avatar_decoration": preuser.avatar_decoration,
"banner": preuser.banner, "banner": preuser.banner,
"banner_color": preuser.banner_color, "banner_color": preuser.banner_color,
}; };
if (preuser.avatar_decoration == null) if (preuser.avatar_decoration == null)
user.avatar_decoration = null; user.avatar_decoration = null;
else else
user.avatar_decoration = "https://cdn.discordapp.com/avatar-decorations/" + preuser.id + "/" + preuser.avatar_decoration + ".png"; user.avatar_decoration = "https://cdn.discordapp.com/avatar-decorations/" + preuser.id + "/" + preuser.avatar_decoration + ".png";
if (preuser.banner == null) if (preuser.banner == null)
user.banner_url = null; user.banner_url = null;
else else
user.banner_url = "https://cdn.discordapp.com/banners/" + preuser.id + "/" + preuser.banner + ".png"; user.banner_url = "https://cdn.discordapp.com/banners/" + preuser.id + "/" + preuser.banner + ".png";
res.send(user); results[userId] = user;
} resolve();
else } else {
res.send(response.statusCode) reject(response.statusCode);
}
});
});
});
try {
await Promise.all(promises);
res.send(results);
} catch (errorStatusCode) {
res.status(errorStatusCode).send("Error fetching user data.");
} }
request(options, callback);
}); });