const loggingData = JSON.parse(fs.readFileSync("logging.json", "utf8"));
const users = Object.keys(loggingData).sort(function(a, b) {
return loggingData[b].tweets - loggingData[a].tweets;
}).slice(0, 10);
if (users.length == 0) {
await interaction.reply("No tweets logged");
} else {
const leaderboard = new EmbedBuilder()
.setTitle("Tweet Leaderboard")
.setColor("#54a329")
.setFooter({
text: "redacted",
iconURL: "redacated",
})
.setTimestamp();
for (let i = 0; i < users.length; i++) {
let user = users[i];
let position = i + 1;
let numTweets = loggingData[user].tweets;
let member = interaction.guild.members.cache.get(user);
let displayName = member ? member.displayName : "Unknown User";
leaderboard.addFields({
name: position + ". " + "<@" + displayName + ">",
value: numTweets + " tweets logged.",
inline: false
});
}
await interaction.reply({
embeds: [leaderboard]
});
const loggingData = JSON.parse(fs.readFileSync("logging.json", "utf8"));
const users = Object.keys(loggingData).sort(function(a, b) {
return loggingData[b].tweets - loggingData[a].tweets;
}).slice(0, 10);
if (users.length == 0) {
await interaction.reply("No tweets logged");
} else {
const leaderboard = new EmbedBuilder()
.setTitle("Tweet Leaderboard")
.setColor("#54a329")
.setFooter({
text: "redacted",
iconURL: "redacated",
})
.setTimestamp();
for (let i = 0; i < users.length; i++) {
let user = users[i];
let position = i + 1;
let numTweets = loggingData[user].tweets;
let member = interaction.guild.members.cache.get(user);
let displayName = member ? member.displayName : "Unknown User";
leaderboard.addFields({
name: position + ". " + "<@" + displayName + ">",
value: numTweets + " tweets logged.",
inline: false
});
}
await interaction.reply({
embeds: [leaderboard]
});