-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
95 lines (85 loc) · 3.93 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
require("dotenv").config();
const url = "https://www.codewars.com/api/v1/users/";
const Discord = require("discord.js");
const fetch = require("node-fetch");
const client = new Discord.Client();
const token = process.env.BOT_TOKEN;
const prefix = "cw!";
client.once("ready", () => {
console.log("Bot Discord CODEWARS initialisé.");
});
client.on("message", async message => {
// Check si prefix présent + pas message du bot
if(!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
//help
if(command === "help") {
const helpEmbed = new Discord.MessageEmbed()
.setColor("#b1361e")
.addFields(
{ name: "Pour voir les informations d'un utilisateur:", value: "cw!info Pseudo" },
{ name: "Pour voir les langages d'un utilisateur:", value: "cw!lang Pseudo" },
{ name: "Internet ?",value: "!internet" },
{ name: "\u200B", value: "\u200B" },
)
.setTimestamp()
.setFooter("Dev par Nekå", "https://raw.githubusercontent.com/Nekall/bot-codewars/main/codewars.png");
message.channel.send(helpEmbed);
};
//easteregg
if(command === "internet") {
const internetEmbed = new Discord.MessageEmbed()
.setColor("#b1361e")
.setTitle("INTERNET!")
.setURL("https://www.youtube.com/watch?v=uK4-nUZiOH4")
message.channel.send(internetEmbed);
};
//fetch info user cw
if(command === 'info' && args.length !== 0) {
const encodedUsername = encodeURI(args.shift());
const userData = await fetch(`${url}${encodedUsername}`).then(response => response.json());
if(userData.success === false){
message.channel.send("Pseudo CodeWars introuvable.");
return;
};
let rank = userData.leaderboardPosition ? userData.leaderboardPosition : "Cet·te utilisateur·rice n'est pas classé·e.";
const userDataEmbed = new Discord.MessageEmbed()
.setColor("#b1361e")
.setDescription(`Informations du compte de [${userData.username}](https://www.codewars.com/users/${userData.username}).`)
.addFields(
{ name: "Rang:", value: userData.ranks.overall.name },
{ name: "Classement:",value: rank },
{ name: "Nombre de Kata terminé:", value: userData.codeChallenges.totalCompleted },
{ name: "\u200B", value: "\u200B" },
)
.setTimestamp()
.setFooter("Dev par Nekå", "https://raw.githubusercontent.com/Nekall/bot-codewars/main/codewars.png");
message.channel.send(userDataEmbed);
} else if(command === "cw" && args.length === 0) {
message.channel.send("Il manque un pseudo CodeWars pour répondre à cette requête. Exemple: cw!info Pseudo");
};
//fetch languages user cw
if(command === 'lang' && args.length !== 0) {
const encodedUsername = encodeURI(args.shift());
const userData = await fetch(`${url}${encodedUsername}`).then(response => response.json());
if(userData.success === false){
message.channel.send("Pseudo CodeWars introuvable.");
return;
};
const userDataEmbed = new Discord.MessageEmbed()
.setColor("#b1361e")
.setDescription(`Langages de programmation du compte de [${userData.username}](https://www.codewars.com/users/${userData.username}).`)
.setTimestamp()
.setFooter("Dev par Nekå", "https://raw.githubusercontent.com/Nekall/bot-codewars/main/codewars.png");
let count = 0;
for (let lang in userData.ranks.languages) {
userDataEmbed.addField(lang, ` - ${Object.values(userData.ranks.languages)[count].name}`);
count++;
}
message.channel.send(userDataEmbed);
} else if(command === "cw" && args.length === 0) {
message.channel.send("Il manque un pseudo CodeWars pour répondre à cette requête. Exemple: cw!info Pseudo");
};
});
client.login(token);