#javascript-typescript
1 messages · Page 111 of 1
Vérifies que il trouve bien le serveur il est sûrement undefined ici
C’est bon j’ai réussi mais cela n’update toujours pas mon statut toute les 5 minutes 😅
hey ! j'ai fais ce code : https://pastebin.com/2mpgsrXR et quand je mentionne quelqu'un pour la commande, ça me met que user est undefined alors que quand je ne mentio personne pour voir mon propre level ça fonctionne ..
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
déja message.user ca existe pas c'est message.author
En ajoutant ',' à la fin de tes props
j'avais déjà essayé de le faire mais je crois que je les avais mis au mauvais endroit , c'est juste avant le type que je les ajoute ?
Comment ça "avant le type" ?
Chaque ligne de ton objet doit finir par un ","
nan c'est bon
j'ai trouvé
merci
yo est-ce que quelqu'un s'y connait car j'ai un problème
merci :)
Bonjour, j'ai fait un bot discord en javascript et après maintes recherches, je n'ai pas trouvé le moyen de vérifier si un channel vocal est vide ou si'l y a encore des gens connectés dessus. Auriez-vous une solution pour moi ? merci d'avance.
Je suis désolé mais je n'arrive pas à l'utiliser pourrais je avoir un peu plus d'aide svp ?
Sans ton code on peux pas t'aider
oui pardon :
bot.on('voiceStateUpdate', async (oldState, newState) => {
if(!oldState.channelId === null) return;
if(oldState.channelId !== null) {
if(oldState.channel.parentId === '1234') {
console.log(VoiceChannel.members)
oldState.channel.delete()
}
}
if(newState.channelId !== '1234') return;
const channelPrivateRoom = await newState.guild.channels.create(`Chambre de ${newState.member.user.username}`, {type:'GUILD_VOICE', parent : '5266', permissionOverwrites: [{id: newState.member.user.id, allow: ['VIEW_CHANNEL', 'CONNECT', 'SPEAK', 'STREAM', 'MANAGE_CHANNELS']}]});
newState.setChannel(channelPrivateRoom);
});```
En fait, avant que le channel soit supprimé, je voudrais vérifier s'il reste des gens dans le channel vocal
Faut pas c/c sans comprendre .... Retire ton console.log(VoiceChannel.members) ... si tu veux tu peux faire un console.log(newState.channel.members.size) pour avoir le nombre de personne dans le channel
ah, je venais d'essayer avec oldState
bonsoir ,j'ai besoin d'un coup de main je suis entrain de codé un bot qui a pour seul utilité de copier une phrase et ajouter "us" a la fin de chaque mot mais je nest aucune idée de comment faire donc jai suivie un tuto simple et jai cette base
client.on("messageCreate", message => {
if(message.author.bot)return;
message.reply(message);
});
je suis pas sur mais faudrait peut être split le msg en plusieurs parti pr pouvoir ajt "us" à la fin de chaque mot
Bonjour, jai besoin d'aide pour mon ticket bot, mon bot fonctionne mais au moment de delete le ticket ça ne fonctionne pas
`
Client.on("ready", () => {
var row = new Discord.MessageActionRow()
.addComponents(new Discord.MessageButton()
.setCustomId("Open-ticket")
.setLabel("OPEN TICKET")
.setStyle("DANGER")
.setEmoji("🎟️")
);
Client.channels.cache.get("992637319834239046").send({content: "React with the button to create a ticket!", components: [row]});
console.log("bot opérationel");
});
Client.on("interactionCreate", interaction => {
if(interaction.isButton()){
if(interaction.customId === "Open-ticket"){
nbTicket++;
interaction.guild.channels.create("ticket-" + nbTicket, {
parent: "992616187777257523"
}).then(channel => {
var row = new Discord.MessageActionRow()
.addComponents(new Discord.MessageButton()
.setCustomId("ferme")
.setLabel("CLOSE THE TICKET")
.setStyle("DANGER")
.setEmoji("🛑")
);
channel.send({content: "<@" + interaction.user.id + "> is needing help!", components: [row]});
interaction.reply({content: "The ticket has been sucsessfully open!", ephemeral: true});
});
}
if(interaction.customId === "ferme"){
interaction.channel.setParent("992616287412953139");
var row = new Discord.MessageActionRow()
.addComponents(new Discord.MessageButton()
.customId("delete-ticket")
.setLabel("Delete the ticket")
.setstyle("DANGER")
.setEmoji("⛔")
);
interaction.message.delete();
interaction.channel.send({content: "React to delete the ticket:", components: [row]});
interaction.reply({content: "Ticket deleted", ephemeral: true});
}
}
});`
Yes j'ai finalement presque réussi merci beaucoup ^^
est ce que quelqu'un aurait un tuto / script d'un bot ticket svp
un tuto? tu veux pas plutôt nous dire comment tu le vois et on t’explique puis tu le fais?
C'est tout à fait normal
Regarde bien la fin de ton code.
Indice : 3ème ligne en partant de la fin
Puis interaction.channel.send() n'existe pas il me semble
@loud horizon
salut j'ai un problème en typesrcipt
import { animated, useSpring } from "react-spring";
import React, { ReactElement } from "react";
const calc = (x: number, y: number) => [-(y - window.innerHeight / 3) / 35, (x - window.innerWidth / 1.5) / 30, 1.05];
const trans = (x: number, y: number, s: number): string =>
`perspective(600px) rotateX(${x}deg) rotateY(${y}deg) scale(${s})`;
const [props, set] = useSpring(() => ({
xys: [0, 0, 1],
config: { mass: 1, tension: 350, friction: 40 },
}));
export default function WhatIdo() {
return (
<>
<h1 className="text-2xl font-bold leading-9 tracking-tight text-gray-900 dark:text-gray-100 sm:text-3xl sm:leading-10 md:text-4xl md:leading-14">
What I Do
</h1>
<div className="grid grid-cols-1 md:grid-cols-2 gap-3">
<animated.a
onMouseMove={({ clientX: x, clientY: y }: { clientX: number; clientY: number }) =>
set({ xys: calc(x, y) })
}
onMouseLeave={() => set({ xys: [0, 0, 1] })}
style={{ transform: props.xys.to(trans) }}
>
<div className="w-full cursor-auto duration-200 hover:scale-[1.03] h-full p-[6px] bg-gradient-to-r from-[#a5f3fc] to-[#3A41A4] rounded-lg space-y-2">
<div className="py-4 px-6 bg-white dark:bg-black dark:bg-brand-black h-full rounded-lg">
<h1 className="text-xl font-bold tracking-tight text-gray-900 dark:text-gray-100 sm:text-xl md:text-2xl">
<span className="pr-2" role="img" aria-label="wave">
⚙
</span>
Building Project
</h1>
<p className="text-gray-600 dark:text-gray-300">
I'm very active on Github to create open-source projects or personal projects,
sometimes I also contribute to open-source projects.
</p>
</div>
</div>
</animated.a>```
(Ce serait pour cette partie de mon site -> https://github.com/VinceTheGenius/vince.cafe/blob/main/components/WhatIdo.tsx)
Bonjour,
je voudrait savoir si quelqu'un sait régler se problème en TypeScript svp?
l'id doit être un int non ?
non car le tableau resemble a sa en gros
et j'ai essayer de mettre le type en number mais sa change rien
salut tout le monde j'ai un problème tout bête que je ne comprend pas comment régler
Uncaught ReferenceError ReferenceError: phrase is not defined
Client.on("messageCreate",message=>{
if(message.author.bot)return;
let tableau = message.content.split(' ')
for (const element of tableau) {
let phrase = element + `us`
}
message.reply(phrase)
});
Ta variable phrase n’existe que dans ta condition
Quand tu sors de ta condition (de ton bloc) elle n’existe plus
Soit tu utilises un var pour qu’elle sorte de la condition (je ne conseille pas), soit tu la déclares au dessus de ta condition puis tu la modifies dans ta boucle au moins elle existe quand même en dehors de ta condition
okay merci
mais je lui associe quoi ? car ```JS
var phrase =" "
il me dit quil ne peut pas envoyer d'objet vide
Var c'est pareil que let sauf que la portée est au niveau de la fonction et non du bloc
function testVar() {
if (1 + 1 == 2) {
if (2 + 2 == 4) {
var test = "Bonjour"
}
}
console.log(test) // OUTPUT: Bonjour
}
function testLet() {
if (1 + 1 == 2) {
if (2 + 2 == 4) {
let test = "Bonjour"
}
}
console.log(test) // OUTPUT: Undefined
}
Mais dans ton cas je pense que ce n'est pas vraiment ce que tu veux faire parce que tu veux concatener chaque mot entre-eux, donc faut utiliser une seule variable (let) et lui concatener à chaque itération
Donc un truc comme ça :
Client.on("messageCreate",message=>{
if(message.author.bot)return;
let tableau = message.content.split(' ')
let final = ""
for (const element of tableau) {
final = final + "us "
}
message.reply(final)
});
Mais tu peux faire beaucoup plus propre en faisant comme ceci :
client.on("messageCreate", message => {
if (message.author.bot) return;
const usMessage = message.content.split(" ").map(m => { return (m + "us") }).join(" ");
message.reply(usMessage);
});
ok ok merci je vais essayer de comprendre comment ca marche et lest go merci beaucoup
Jaibesoin d'aide de personne qui connaise le React
Je vous envoie les photos pour comprendre
alors, j'aimerai grace au Footer appuyer sur un boutton et que sa mettent en dark mode
pour cela dans le doss Footer (1er photos) je met le bouton changer de mode et que sa change de theme au click
sur la App (fichier 2) je met le ThemeProvider et le Footer
Puis j'ai fait un ficier juste pour le Context
mais le probleme cest que a l'ajout de tout ca sur le App plus r saffiche sur mon site
je pense que c suite a la nouvelle version de react mais je trouve pas la bonne syntax
genre j'y est passer toute l'aprem et j'arrive pas a trouver
Bonjour j'ai un problème, je met un message et un autorole lorsque un membre rejoin, lorsque je reboot le bot, le premier membre qui rejoin na aucun soucis il a bien le role et le message, mais lorsque un second membre rejoin il n'ya pas de message et pas de role mais le bot ne crash pas 😅
T’as essayé de debugger avec des console.log ?
oui 😅
module.exports = {
name: 'guildMemberAdd',
once: true,
execute(member){
member.guild.channels.cache.get('990281162754773062').send(`Bienvenue ${member} sur le serveur ${member.guild.name} Nous sommes désormais ${member.guild.memberCount}`)
member.roles.add("945989311210323987");
console.log('Un membre a rejoin le discord')
}
}
Bizarre...
j'ai fait ceci et c'est comme si lorsque un membre rejoigner il bloquer l'event 😅
cela peut venir du once ?
je vais essayer de le retirer x)
bon bah sa va venait du once xd
desoler du dérangement 😅
Rappelle-toi que once permet d'activer seulement une seule fois l'événement et pas à chaque fois.
Oui je vous remercie j’avais un doute 😅
Par contre vous savez comment update le nombre de membre en activité du bot ? 😅
J’ai mit setInterval de 5 minutes mais sa fonctionne pas 😅
Gosted

Met à tout juste quelques secondes
Je met à 12s perso
Ouais
T’as mis quoi comme valeur ?
Je peut pas mettre en code je suis sur tel désolé 😅
module.exports = {
name: 'ready',
once: true,
async execute(bot){
console.log("Bot en ligne : ✔️");
activity =[
{
type : "WATCHING",
name : ${bot.guilds.cache.get("945989311210323978")?.memberCount} membres
}
]
setInterval(() => { bot.user.setActivity(${activity[0].name}, {type: ${activity[0].type}})}, 1000 * 60)
}
Il ya les ˋ qui ont été retirés 😅
Personne n'est capable de m'aider svp ?
Pose ta question
Lorsque tu node index.js, pense à vérifier que le chemin d’accès soit bien le bon 🙂
Salut les amis voici mon code
Ce que je veux c'est qu'au bout d'un certain temps le message qui ce trouve à la ligne 236 se supprime
await button.reply({ content: "TEXT" }).then((msg) => setTimeout(() => msg.delete(), 10000))
@misty parcel
J’ai mis 10 secondes, après à toi de voir ce que tu préfères ^^
@glass cargo J'ai essayer ça mais ça me met undefind
await button.reply({ content: "TEXT" }).then((msg) => setTimeout(() => msg.delete(), 10000))
euh
await button.reply({ content: "TEXT" }).then((msg => setTimeout(() => msg.delete(), 10000)))```
@misty parcel
essaie ça
mais frérot
y'a pas de diff la
puisque ton erreur c'est qu'ici ton msg n'est visiblement comme, avec des grosses guillemets, "pas déclaré"
Dans le file manager de ton ptero il y a un index.js à la base ?
va dans l'onglet settings de ptero et remplace le fichier de démarrage par ./CrowBot-Remade-main/index.js
Faudrait pas que j'enlève le crowbot-remade-main ?
le fichier index.js ne se trouve pas dans le dossier /home/container mais dans /bot/container/CrowBot-Remade-main
tu peux, mais il faut que tu transfere les fichiers de ce dossier dans /home/container
tu peux le supprimer une fois que t'as transferer
Comment peut t'on les transférer, car j'ai énormément de fichier ?
tu as un file manager en ssh comme FileZilla ou pas ?
le bouton move il propose quoi ?
mets ../ (../ correspond au dossier precedent)
supprimes les fichiers package.json et package-lock.json le dossier /home/container et déplace ceux là
tu peux me montrer l'erreur entiere
supprime le package-lock.json
dans ton package.json il y a bien discord.js ?
essaie de relancer le bot
Bonjour quelqu'un sait comment je peut faire quand quelqu'un met dans son status "discord.gg/" ça lui donne un rôle et si il l'enlève ça lui enlève svp ?
ça marche pas :/
Tu as une erreur ?
TypeError: Cannot read properties of undefined (reading 'activities')
at Client.<anonymous> (C:\Users\viper\Desktop\Amenadielv2\events\ready.js:11:53)
at Client.emit (node:events:526:28)
Je crois qu'il faut une intents pour voir les status des membres
ouaip je l'ai mis pourtant , d'ailleurs quand je met le status ça me met le rôle et puis l'inverse ça ne me l'enlève pas
Tu as bien mis l'itent "GUILD_PRESENCES" ?
Ducoup ça marche ou pas ?
Ah est que ça l'enlève pas c'est normal, y'as pas le code pour l'enlever
mais pour l'envler suffit juste de faire le contraire de ta condition est de remove le role
toujours la meme erreur
msg => { useEffect … } @misty parcel
Bonjour tlm !
dites moi, j’ai une question… j’ai une erreur qui s’affiche lorsque que j’utilise « npm deploy-command » (pour mon bot discord)
mais je ne comprend pas vraiment pq
Normalement si il y est
et oui je l'ai mis
hmm, bizzare
ça me dit ça comme erreur mtn : TypeError: Cannot read properties of undefined (reading 'id')
Bonsoir, est-ce qu’il y aurait un moyen en JavaScript de compter le nombre de requêtes envoyées (à l’api de Discord notamment) ?
C’est à dire ?
Mauvais channel #demande-de-dev
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
client.on('ready', () => {
console.log(Logged in as ${client.user.tag}!);
});
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
});
client.login('token');
Je ne comprends pas cela ne marche pas
ton token
Tu n'as pas défini ta /commands
Et faut inviter le bot avec l'option application.commands sur le dev portal
Salut j'essaye de faire un petit programme qui genere sois "test", sois "test2", sois "test3", du coup j'ai fais ça :
const randomCode = [
'test',
'test2',
'test3'
]
const randomGen = Math.floor(Math.random() * randomCode[0].length);
setInterval(async() => {
interaction.channel.send({
content: `${randomGen}`
})
}, 10000);
le problème c'est que le programme répond tout le temps 0
const randomGen = randomCode[Math.floor(Math.random() * 3)];
Non, pas *3 parce que si il ajoute/retire des valeurs de son tableau ça ne marchera plus. Enlèves simplement ton [0] dans randomCode[0].length, et après récupères la valeur correspondant à ce que tu as reçu (randomCode[randomGen])

Hello, je démarre en react-native et je ne comprends pas pourquoi je peux faire (voir capture d'écran) mais lorsque je souhaite utiliser mon Composant "MovieComponent" j'ai l'erreur suivante :
le code de mon composant :
et je pense que les imports sont OK malgré l'erreur levée :
Qqun peut m'expliquer c'est quoi se message d'erreur:Cannot set properties of undefined (setting 'commands')
Salut
J'ai commencé JS tout à l'heure et je suis coincé sur quelque chose
J'ai regardé une vidéo pour faire un bot Discord
Et il a dis d'intégrer le Token dans Client.login("LeToken");
Mais dans le Tuto suivant elle est plus là et le bot est toujours online
Une explication?
le token à sans doute été mit dans un json ou un .env
Et comment on fais ça?
tu crées un fichier token.json
J'utilise Visual
ensuite tu mets ton token dedans
Dans quel dossier?
{
token: "ton token",
}
Ok
D'accord
Merci bien
Je t'ai envoyer une demande d'ami, si j'ai besoin je pourrais peut être te DM
Au lieu de pinger ici
Merci pour les explications 🙂
@misty parcel, 'xcuse pour le ping mais je vois pas https://www.youtube.com/watch?v=8CJfHbP4kFs&t=508s
Dans cette vidéo, nous verrons comment interagir par message avec notre bot et la créations de nos premières commandes personnalisé.
Avec la dernière version de discord.js (v13)
----- Serveur partenaire -----
Game Creators Area : https://discord.gg/K3qyS4jDwc
------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz
documentation dis...
Il l'avait mis en bas dans le #0
est ce que tu peux voc demain ? @wind canyon
Non, DM peut être mais attend
C'est peut être moi qu ai fais une erreur
Je pense que j'ai foiré
a le toute dernière ligne de ton code
Ok
Ah oui
J'avais oublié
XD
Attend
Là?
Le plus je savais mais j'ai dû écrire trop vite
oui
je pense
Donc là mon bot devrais être online?
Ton code est pas bon là
Tu mets un ; après ta condition
Donc la condition s'arrête immédiatement
Aaah Ok
Une condition c'est :
if (message.content === prefix + "someCommand")
message.reply("Hi!");
Et essaye de lancer ton bot après voir si tu as des erreurs
D'accord
Offline 😦
Roro m'a dis de créer un "token.json
De foutre le Token dedans avec:
{
token: "MonToken";
}
Si il y a une erreur...
Ok attend
Il n'y a pas de ; en json
Il ne trouve pas le fichier token.json
bah attend
Tu l'as placé où le fichier ?
Et montre ton fichier
Je l'ai pas mis dans Structure ou dans Chronologie
Tu peux utiliser Windows + Shift + S pour faire un screenshot facilement
je sais
C'est ce que je fais
Mais j'en ai pris 2
Regarde
Yandu's Bot c'est moi ofc
Bah donc te suffit de faire Windows + Shift + S puis de faire CTRL+V ici dans le salon, pas besoin de te faire chier à enregistrer le fichier à chaque fois
Js
Bref
Le contenu de index.js
.
Oui mais tu as changé des trucs depuis donc j'ai envie d'être sûr
config c'est pas défini
Tu utilises config.token
Mais config tu le définis nulle part
Ok dis
Toi tu require token pas config
Oh ça va on est pas tes chiens hein
const Discord = require("discord.js");
const Config = require("./token.json");
const Client = new Discord.Client({
intents: [
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES
]
});
const prefix = "!";
Client.on("ready", () => {
console.log(`${Client.user.tag} is online!`);
});
Client.on("messageCreate", message => {
if (message.author.bot) return;
if (message.content === prefix + "test")
message.reply("hey");
});
Client.login(Config.token);
Essaye avec ça
Je savais pas que tu écrivais un paté
Déso
Merci
à la place de TOUT?
Montre le contenu de ton fichier token.json
^
{
"token": "ton token"
}
Ooooh
On m'avais pas dis que sur le premier Token en orange y avait des guillemets
:(:
Ok
ca marche
merci beaucoup
Salut ❤️
Re
Comment on fais en sorte que le Bot sois Online tout le temps
Même quand on ferme Visual?
Déso
@lone flax, excuse moi mais 👆
😦
justement je trouve RIEN
Les 5 premiers résultats donnent la réponse pourtant
C'est parce qu'il te faut un hébergeur
Mmmh.... Heroku c'est gratuit?
oh 😭 désolé je suis aller vite, j'ai oublier de faire correctement
Bonjour je suis en train de faire une commande pour dire a mon bote de reconnaître les insultes et de kik le joueur et au bout de trois fois il le ban sauf qu'il n'y avait aucun tutoriel donc je ne savais pas comment faire
Salut les gars est ce qie vous savez c'est quoi l'event qui permet de realiser une action quand un bot est ajouter à un serveur
guildMemberAdd ?
guildCreate @misty parcel
Ou guildMemberAdd
Sa depends si c'est ton bot ou tout les bot
Ba si c'est quand on l'invite dans un discord, c'est celui là
Bonjour, comment on peut ajouter une reaction sur un message svp ? 😅
as tu fais une recherche avant ? ^^'
bah je sais le faire en mode normal, avec juste un index.js, mais la j'essaye de faire du handler et je comprend pas comment mettre sur ma commande 😅
:method: Message#react()
Adds a reaction to the message.
@normal lichen
Je vais y regarder merci !
Faut lire la documentation avant 😉
bah j'ai regarder a la doc mais sa me met l'erreur "message inconnu" 😅
Salut je pense poser une question toute bête mais je débute dans le dev ! Et j'ai créer un bot discord et j'aimerais qu'il envoie des messages annonces avec des liens par exemple qlq'un pourrai m'aider ?
Dans cette vidéo, nous verrons comment interagir par message avec notre bot et la créations de nos premières commandes personnalisé.
Avec la dernière version de discord.js (v13)
----- Serveur partenaire -----
Game Creators Area : https://discord.gg/K3qyS4jDwc
------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz
documentation dis...
Suit sa formation sa pourrait peut être t'aider
Oui je l'ai suivi sauf que il explique comme creer une reponse
Pas un message du bot en lui meme
Comme ca par exemple
le mec a fait une commande mais le bot la autoremove
J'ai une question aussi pour les amateur de React, voila je voudrai mettre une video sur mon app mais en background en autoPlay et loop mais le probleme cest que ma video ne saffiche pas jai essayer a peut pres tout est sa marche pas
Jai essayer react-video-js-(je sais plsu quoi) sa a pas marcher non plus
Je ne trouve pas de solution a ce probleme vous etes ma seul solution
je veux pas qu'il y ai d'HUD juste la video en boucle et autoplay
Tu récupère l'id de ton m'essaye et tu fait en sorte que ton bot le remove soit avant son mess sois apres
hey! qui as besoin d'aide ?
Me plz
Je paris que tu t'y connais pas en react.🥲
bahh si tu le dis 💁♂️
Il te faut utiliser un require
Et pas un import
Ok jvais test
Mais c'est la même chose ? La différence sera juste la norme genre ES6 actuellement dans son code ? ( je connais pas trop react mais dans tout les exemple que j'ai vu c'est du ES6
Oui ça change strictement rien
Bah vu que c'est une vidéo je ne pense pas
un require met en cache
Mais c'est la même chose enfaite
hein ? source pls parce que je suis pas au courant et ça m'interesse si c'est vrai
Renseignes toi sur l’affichage des vidéos, ça fonctionne différemment.
C'est pour le bundle
Moi en tout cas j'ai le réflexe de faire des requires si c'est des fichiers static genre image, vidéo etc et des imports si c'est des modules
J'ai confirmation tu peux bien faire un import de vidéo avec la norme ES6 donc : import blabla from '../assets/test.mp4' est censé marché
La vrai diff entre les deux en dehors des normes c'est la manière d'import
genre un import c'est forcément en haut de ton code tu peux pas faire des imports dynamique
mais tu peux le faire avec un require
ouké
Hellooooo, quelqu'un aurait une bonne lib à conseiller pour faire des diagrams ? De préférence qui permet de crée des groupes d'entité et qui peut accueillir de la data en ajax et gratos svp 😅
chartjs ?
https://gojs.net/latest/samples/grouping.html plus de ce genre là
A diagram holding groups that incrementally grow the diagram as groups are expanded.
cette lib est cool mais la license est à 6000 balles.......
Ah ce genre de diagrams ^^'
yes mais je trouve pas de lib aussi bien mais gratos.....
ou sinon y'a toujours un truc manquant ça me rend ouuuff
Bah après faut qu'il ait de la valeur ajouté mdr
C'est pour faire quoi ?
c'est pour choper des phases de test d'un workflow engros :upload -> traitement
et à partir du diagrams voir si des fichier ont foirés l'upload ou ont foirés le traitement par exemple
J'ai ça @burnt perch y a moyen que tu puisse utiliser dans ton cas
https://mermaid-js.github.io/mermaid/
Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.
Merci bg je vais check ça
yop tlm j'aimerais comprendre un truc sur firebase, j'essaye de recupere les contract ayant pour sellerRef l'id de mon user actuelle mais la requete me renvoie null alors que je suis sur qu'il a des contract le bougre
const contract = await firestore()
.collection('contract')
.where('sellerRef', '==', authenticatedUser?.uid)
.get();
voila la fameuse requête
Si tu fait console.log(authenticatedUser), ça fait quoi ?
{"displayName": null, "email": null, "emailVerified": false, "isAnonymous": false, "metadata": {"creationTime": 1649339712234, "lastSignInTime": 1657193190072}, "phoneNumber": "+33619102161", "photoURL": null, "providerData": [[Object]], "providerId": "firebase", "refreshToken": "AOEOulYQItd2O2JtuYgS7pvy6BGLOmZm2IDh32kMBNjGULcI6vGqRXpn0ciwdqVjQsAnYDQRmYK5v5T3tYp_AUOknnkhaRJiNVy1h3fsUOFJy6U-42OH3un-B7KE6_gwFb-yHKDTyfmslwoQ-sfrQGxpfYB2Aycz817gOvOaOnyB9g0SezHh3zw5kRxLWBf0wMS6xENwqmnc", "tenantId": null, "uid": "clrJbfScaGZmVapHJ616G47d7sj1"}
Retente en faisant console.log(authenticatedUser?.uid)
Voir s'il le retourne BIEN 🙂
Evitons des problèmes bêtes et se casser la tête pour rien
oui jai bien l'uid
Vérifie le nom de ta collection et de ton champ "sellerRef"
Si tu retires le .get(), que tu t'arrête au where et que tu console.log(contract)
Ca dit quoi ?
{"_changes": [], "_docs": [], "_excludesMetadataChanges": 1, "_metadata": {"_metadata": [false, false]}, "_query": {"_collectionPath": {"_parts": [Array]}, "_firestore": {"_app": [FirebaseApp], "_config": [Object], "_customUrlOrRegion": undefined, "_nativeModule": [Object], "_referencePath": [FirestorePath], "_settings": [Object], "_transactionHandler": [FirestoreTransactionHandler]}, "_modifiers": {"_endAt": undefined, "_endBefore": undefined, "_filters": [Array], "_limit": undefined, "_limitToLast": undefined, "_orders": [Array], "_startAfter": undefined, "_startAt": undefined, "_type": "collection"}, "_queryName": undefined}, "_source": "get"}
tous les champs on le mm noms en db
cest bon jai trouver mon erreur merci pour ton aide en tous cas
https://www.sigmajs.org/ si j'ai bien compris
a JavaScript library aimed at visualizing graphs of thousands of nodes and edges
C'est bon ducoup j'ai trouver une solution à mon blem merci bg
Bonsoir !
J'ai besoin de votre aide sur une ligne, je tente de faire en sorte de rajouter un role quand un membre change son pseudo et met "DEK-" devant mais il y a une erreur quelqu'un saurait pourquoi ?
C’est parce que c’est : ```js
newMember.nickname.startsWith("DEK-")
J'ai essayé de faire un message de bienvenue mais il ne fait rien, voici le code utilisé :
// Message de Bienvenue
client.on('guildMemberAdd', (member) => {
let welcomeChannel = client.channels.cache.get('975455323550789782')
welcomeChannel.send('Bienvenue, ' + member.user.tag + ' !')
});
Je pense avoir utilisé une mauvaise version
Mais je suis pas sure
Pour les deux lignes?
Bonjour à tous,
J'essai d'intégrer mon canvas dans un embed, mais je pense m'y prendre mal :/.. besoin de vous les amis ! (je vous met l'erreur en bas)
Je pensé pouvoir mettre l'attachment dans le .setImage(attachment) mais pas moyen, il demande un URL obligatoirement :/
Client.on("guildMemberAdd", async member => {
console.log("un membre est arrivé !");
Client.channels.cache.get("994905115507052545").send("<@" + member.id + "> est arrivé !");
const canvas = Canvas.createCanvas(1024, 500);
const context = canvas.getContext('2d');
const backgroundFile = await readFile('./canvas.jpg');
const background = new Canvas.Image();
background.src = backgroundFile;
// Cette opération utilise les dimensions du canevas pour étirer l'image sur l'ensemble du canevas.
context.drawImage(background, 0, 0, 1024, 500);
context.font = "42px Impact";
context.fillStyle = "#ffffff";
context.textAlign = "center";
context.fillText(member.user.tag.toUpperCase(), 512, 410);
context.beginPath();
context.arc(512, 166, 119, 0, Math.PI * 2);
context.closePath();
context.clip();
const avatar = await Canvas.loadImage(member.user.displayAvatarURL({
format: "jpg",
size: 1024
}));
context.drawImage(avatar, 393, 47, 238, 238);
// Use the helpful Attachment class structure to process the file for you
const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'canvas.jpg');
const embed1 = new Discord.MessageEmbed()
.setAuthor({ name: 'Notika', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' })
.setDescription("Test Notika.")
.setColor("#ffffff")
.setImage("attachment")
.addField("Serveur", 'test')
.addField("ID", "test")
.addField("Infos", "test");
Client.channels.cache.get("994905115507052545").send({ embeds: [embed1] });
});
Erreur :
Uncaught DiscordAPIError DiscordAPIError: Invalid Form Body
embeds[0].image.url: Scheme "attachment" is not supported. Scheme must be one of ('http', 'https').
Ok j'ai trouvé l'erreur !! merci quand même 😛
Oui
bonjour j'ai un un petit soucis j'aurai besoin d'un pro vue js pour m'aider a reparer le probleme
pour le réparer, il faut connaitre le problème 🤔
je suis toujours entrain d'apprendre le framework mais je comprend pas pk j'ai une page blanche
oui sa c'est le resultat du probleme, mais pas le probleme en lui meme ...
Je ne vois pas Le probleme du coup
tu n'as pas d'erreur dans la console ?
Nope
tu viens de setup un project ?
J’ai juste le message qui me dit que tout a été compilé et que je peux retrouver le projet sur le localhost 8081
Il est setup depuis 2 jours
tu l'as installer comment ?
Installer quoi ?
Le framework avec la commande dans le guide d’installation
Create vue back
Enfin front
J’ai pris les 3 trucs recommandés dans la video de Bertrand ( si je me trompe pas de nom )
tu as pris le routeur ?
perso je te conseille ce setup pour apprendre vuejs
mais sinon, tu as des component de cree ?
Babel router vuex
tu sais utiliser Babel ?
je ne te le conseille pas alors, regarde sa plus tard quand tu auras bien compris Vuejs
Je peux le laisser et ne pas l’utiliser ?
car Babel n'a pas grand chose a voir avec vuejs, c'est pas un outils natif
Ah
normalement oui, mais sa te fait un package en plus que tu n'utilise 🤷🏿♂️
yup
je t'attend dans mon vocal 😉
[probleme fixe ducoup]
bonjour ^^
let prefix = args[0] || args._hoistedOptions[0].value
^
TypeError: Cannot read properties of undefined (reading '0')
j'ai un probleme quand je lance mon code
Bonjour,
J’ai un petit problème avec mon code. Je voudrais faire un compteur de clics (à chaque fois que l’utilisateur clique sur le bouton le compteur augmente de 1). Cependant, j’aimerais récupérer la valeur de ma variable en dehors de cette fonction afin de l’utiliser dans d’autres fonctions. Est-ce qu’il existe un moyen pour récupérer cette valeur (lorsque je console log ma variable en dehors de la fonction, elle reste à 0) ?
Voici une image pour mieux illustrer mes propos.
le problème c'est que tu la console.log qu'à un seul moment, donc quand elle change ça va pas tout redéclencher
en faisant un console.log dans le addEventListener tu affiche sa valeur à chaque fois qu'elle est modifiée
actuellement tu peux déjà réutiliser cette valeur en dehors de ton event listener :
setTimeout(() => {
console.log(score)
}, 10000)
le code que j'ai mis juste au-dessus va s'exécuter 10 secondes après le chargement de la page ; essaie de cliquer sur ton bouton quelques fois avant et normalement dans la console ça devrait afficher le score que tu as pu atteindre en 10 secondes
après la façon dont tu vas accéder à ta valeur dépend de ce que tu veux faire
Merci beaucoup pour ta réponse !
C'est pour faire un petit jeu ou il faut cliquer et suivant les boutons, le score augmente, est multiplié suivant les boutons cliqués etc.
Je viens de tester, ça ne fonctionne toujours pas. Même en ajoutant le setTimeout, le résultat reste à 0. J'ai beau cliquer 100 fois sur le bouton, le score reste à 0 en dehors de la fonction 😥 .
montre ton code
Bonjour , question un peut bete mais comment on peut ecouter un formulaire avec vue js
c'est a dire ?
Genre une page de creation de compte / connexion et quand j’appuis sur se connecter / s’inscrire il va d’abord vérifier les champs etc et si c’est pour se connecter il va vérifier la bdd
Mais vu que c’est vu js je suppose que c’est plus un addeventlistener
j'ai fait quelque recherche et j'ai vu un v-for et un @click
mais je suis completement perdu
je sais pas si y'a un grande diff entre react et vue
Pas vraiment assez légère pour sa que je pense pouvoir t'aider
yes$
Hello, j'arrive pas trop à cerner l'utilité des classes abstraites, de ce que j'ai compris c'est une sorte d'implémentation ?
Ca te permet d'obliger à extends de la classe plutot que de créer une instance, si tu veux redéfinir des propriétés ou méthodes par exemple
mais ca existe que en typescript
Merci bggg
Bonsoir, comment puis-je créer des subcommands avec DiscordJS sans passer par leurs builders ?
Passer par leur builder ? 🤔
tu regardes la doc de discord x)
Nan si tu veux pas passer par les builder de discordjs tu peux créer un système custom
faut dans tous les cas suivre la doc de discord pour connaitre les données à rentrer, leurs noms etc. les précisions, que t'utilises REST (attention au formatage en JSON) ou direct discord.js via l'ApplicationCommandManager
Ça y est dans l’applicationcommandmanager ?
J’ai rien trouvé qui correspond 🤔
bah l'AppCmdManager c'est juste pour set/get/delete les commands via discord.js
parce que les subcommands sont contenu dans la cmd
:discord: Application Commands: Application Command Object
read more
:method: ApplicationCommandManager#set()
Sets all the commands for this application or guild.
bah
Je look ça demain 😅
en gros
les subcommand c'est juste une "option" dans la commande, c'est wrap dans la commande principale
pas de soucis x)
Bonsoir !
pour vous qu'elle est le meilleur hébergeur discord JS ?
Alors je suis pas le meilleur mais si jamais je suis free
const { Client } = require("discord.js");
const client = new Client({intents: 1});
const{ Token } = require("./config.json");
client.once("ready" , () => {
console.log("le bot est connecté sur le discord.");
client.user.setActivity("regarde des bg" , (type: "PLAYING"})
});
client.login(Token)
apparemment il y a 4 erreurs et ducoup le node . pour mettre en ligne le bot ne marche pas
Moi perso j'aime bien le cloud d'Hetzner
Pouvez vous m’envoyer votre site/discord en privé ?
Je vais regardez merci
Un vps
Ubuntu
Ça sert d'hébergeur
Ton VPS n'est pas un hébergeur il est sur un hébergeur
Mais ça peut servir pour héberger un bot djs
Oui
Après c'est plus pour faire de multiples choses
bonjour , j'ai suivi un tuto ( https://www.bezkoder.com/vue-3-authentication-jwt/ ) mais ou dois je mettre le lien du serveur backend
parce que quand je cree un compte il n'apparait pas dans la db
(enfaite c'est juste le login le probleme )
Bonjour, j'essaye des crée un bot discord mais j'ai un problème avec Visual Studio Code qui n'affiche pas tous les solutions possibles à message.author.hasPermission('') entre les parenthèses je n'ai pas les différentes permissions. Est ce que quelqu'un peut m'aider ?
C’est normal
Fin moi en tout cas, ça m’a jamais tout mis.
C’est pour ça que j’utilise plus VSC
Ah d'accord mais dans un vidéo sur laquel je m'appuie on vois les différentes options
message.author ? :/
Si ce n'est pas indiscret t'utilises quel ide du coup ?
IntelliJ Idea Ultimate
ah et ça marche bien?
C’est un peu lent au démarrage parce que ça index tout les modules, mais sinon c’est hyper bien !
En plus je l’ai gratos avec gh student
bonsoir, alors j'ai une petite demande à effectuer assez particulière
mais une personne aurais un selfbot pour tester mon anti seflbot ?
Je sais pas, je l’ai depuis janvier xD
Faudrait demander à wailrone, il me semble qu’il l’a depuis longtemps
Cherche sur internet, il y a malheureusement pleins de selfbot 
y'a t'il une personne qui connais bien vue ? j'aimerai savoir comment utiliser des icons , je galere meme avec la doc
c'est bon j'ai trouver ^^
tu peux le renouveler tous les ans
jsp de qu'elle icons tu parle, mais utiliser des uni code
tkt j'ai reussi
Hello, peut-on afficher le résultat d'une slash command sans afficher ceci ?
Malheureusement
fin
deux autres possibilités que je vois
Defer l'interaction puis supprimer la réponse
et soit
- envoyer la réponse de ta commande simplement en envoyant un message
- follow up (il y aura un reply au message original mais qui affichera un 'message could not be loaded')
je vois merci
Bonjour tout le monde, j'ai un petit problème : j'aimerai masquer les boutons rose lorsque j'ouvre mon menu nav sauf que je n'y arrive pas, pouvez vous m'aider ? J'obtiens une erreur dans la console lorsque j'essaie d'ouvrir mon menu nav et masquer les boutons rose :
const hamburger = document.querySelector(".hamburger");
const navLinks = document.querySelector(".nav-links");
const links = document.querySelectorAll(".nav-links li");
const d1 = document.querySelectorAll('.material-icons')
hamburger.addEventListener('click', ()=>{
if(getComputedStyle(d1).display != "none"){
d1.style.display = "none";
} else {
d1.style.display = "block";
}
//Animate Links
navLinks.classList.toggle("open");
links.forEach(link => {
link.classList.toggle("fade");
});
//Hamburger Animation
hamburger.classList.toggle("toggle");
});
Bonjour, je suis en train de creer un bot discord et je recherche comment faire pour que lorsque l'on clique sur un bouton, cela affiche un formulaire, on le rempli et en fonction de cela un embed s'affiche mais je n'y arrive pas et ne trouve pas de ressources en ligne compréhensible.
Dr
bonjour , j'aimerai savoir comment je peu faire pour recuperer l'image avec le v-model je peu recuperer le text mais avec l'image je ne sais pas ce qu'il faut mettre
pour l'image tu veux le File ou une url ?
en principe si tu pars en html de base ça va ressembler à ça : https://codepen.io/taink/pen/vYRXqjy
(là je me sers du file pour récupérer l'url et l'afficher directement)
en vue t'utilise pas de document.querySelector mais en gros ça passera par une ref et tu peux récupérer le contenu
alternativement tu peux passer par onchange="myMethod(this.files)" et je crois que ça passe
t'es en vue2 ou 3 ?
je pense que j'ai pas tres bien compris pour le onchange
sa sert a activer du JS quand une entrer a sa valeur qui change (input, textarea ect ...)
je ne sais pas comment le mettre en place
mettre le onchange devant ne fonctionne pas
vu que si ca fonctionne comme le v model bah normalement ca le fait tout seul
pas compris
mais il faut l'utiliser comme le @click et tu renseigne juste ta function ...
le v-model c'est autre chose
Je vais t'envoyer un exemple après si tu veux @bitter belfry
Par contre je te préviens tu fais pas les choses sur vue 3 de la manière la plus récente
J'ai reussi à creer un modal pour mon bot discord mais j'aimerai que cela affiche à embed différent suivant ma reponse, peut-etre connecter à une base de données
J’utilise vue 3 cli
Mais j’ai fait mon site avec plusieurs tuto que j’ai trouver sur internet
Sinon je pense que j’ai un peu compris le système de composants et de vue
Avec le routeur
Apres le reste c’est du code
Alors plusieurs chose déjà si t'es sur vue3 pourquoi utiliser OptionAPI et pas Composition qui est le principale changement?
Je suis désolé j’ai 0 idée de ce que c’est
Pour la recuperation de l'image du devra faire en sorte de la dl sur ton front ? Ou alors tu fais une api qui récupère l'image tu ne pourra pas rendre une image qui est pas présente soit sur ton front soit sur un back ( je dis peut être une connerie mais je ferais ça)
Je ne connais pas encore tout les termes sur vue
Au moment ou j’appuis sur envoyer je vais envoyer le formulaire au back
Du coup je pense pas qu’il dl l’image
D'ailleurs ton sendPost ça sert à rien de faire e.preventDefault
Mais l’image sera stocker dans un dossier image dans le back
Tu peux le mettre direct dans le @click.prevent
Bah tu fais un call sur le liens en back 😁
J’ai essayé de faire un truc du genre axios.post ("")
Mais ca ne l’envoyer pas
Apres si jamais ta du temps j’aimerais bien que tu m’explique tout ca
Je connais encore rien a vue
@bitter belfry avec plaisir mais samedi / dimanche je suis pas chez moi
Aujourd’hui ou demain si tu veux
Bah nan ducoup relis mon message
T’es pas la samedi et dimanche
Pour axios faut faire un axios.post("url",{data:{}})
Ah merde j'ai mal écris mais je suis pas là avant samedi / dimanche
J’ai le token dans le localstorage donc je dois aussi mettre la clé ?
Vu que j’ai besoin du token pour pouvoir poster
Bah ouais tu le passe
Jvais essayer tout ca
Quelle header
Bah je cree un token a la création de compte
Tu stock le token en db ?
J’ai besoin du token pour pouvoir accéder a la page pour pouvoir faire des poste
Mais tu comprends ce que tu fais ou pas ?
Parce que ton système me paraît un peu bizarre je t'avoue
Je t’expliquerai ce weekend si t’es la
Après je suis pas un expert en back
Bah je genere un token a la creation de compte qui expirera dans les 24h puis pour pouvoir poster un post ou faire un get j’ai besoin d’un token sinon j’aurai pas l’autorisation
Sur postman tout les routes fonctionne
Oui bah ça c'est bon alors mais ducoup oui passe le token dans header comme le lien que je t'ai passé au dessus
Une fois que t'as fais ça pour récupérer l'image sur ton back t'aura juste à faire en sorte que le href de ton front colle au lien back qui correspond à l'image upload
Bah tu voulais pas afficher ton image ?
Je veux juste envoyer les informations remplis dans le formulaire au back pour apres pouvoir l’afficher sur la page
Genre comme Twitter
Mais ton problème a la base c'est quoi ?
C'est le vmodel de l'image ?
Ou le fait que t'arrive pas à afficher ?
J’arrive pas à récupérer l’image
T'as mis un V-model sur l'input type file ?
Quand je fait un console.log j’arrive seulement à récupérer le txt
Le champ de l’image est vide
T'as pas de V-model sur ton champ
Mais un V-model sur input type file avec post.image
Oui mais le vmodel fontionne pas sur les files si ?
Essaye de print ça
Ah mais oui d'accord
@change met à la place de v-model
Et appelle la methods la
onFileChange(e) { let files = e.target.files || e.dataTransfer.files;
if (!files.length) return; this.createImage(files[0]); },
Je suis sur tel désolé
Au lieu de v-on tu peux mettre @
Petit tips
Prend la fonction au dessus comme ça tu vérifie si c'est vide ou pas
Je peux pas test je suis sur tel désolé bah prend ta methods alors
y'a peut etre un truc de mal ecrit
j'ai repris le mien du coup
on est d'accord que pour le header auth il faut que je fasse un fichier dans le dossier services
Non tu le passe dans la requête ?
pour le token si je veux prendre le 1er element dans le tableau c'est bien comme ca ?
vu qu'il y a un bearer
Pq [1]
Si token est un tableau tu dois le mettre dans la moustache le [1]
La c'est considéré comme un string
ouais
j'ai plein d'erreur
il veut toujours pas l'envoyer dans le back
pourtant j'ai fait comme c'est demander
Non c’est pas bon la, tu es rendu au 4 eme argument de ta fonction. Supprime le {} rose d’avant
axios ne bloque pas automatiquement l’envoie si tu attends pas la réponse de ta requête http ?
j'ai mis data : contents a l'interieur
J'ai cette erreur mais je n'arrive pas à trouver comment la règler
De mémoire si il est obligé de le mettre en await
Check ton champs name
@graceful spruce conseil régional t'es dans quelle ville du grand Est ?
Salut
J'ai un petit problème, j'essaye de communiquer avec une api mais elle me répond des messages de ce style :
Et donc de ce que je vois je pense que c'est sensé me retourner value mais non 🤷♂️
C'est quoi l'API 🤔
finnhub @queen ocean
Et ce code c'est toi qui l'a écris ?
euh ouais
Elle fais quoi ta function getsymbolvaluebypassGFW ?
le code... Quel code ?
Tu parles de ça ?
Ah d'ailleurs je viens de remarquer que c'est un mauvais screen, voici le bon
J'ai po compris ta question
Moi j'ai fais ça
const finnhub = require('finnhub')
interaction.reply(`${finnhub.CovidInfo}`)
et donc finnhub.CovidInfo me renvoie ça
Sur la doc je vois ca moi :
https://finnhub.io/docs/api/covid-19
Donc ton code dois pas être bon

Ah ouais mais du coup je suis face à un impasse la @queen ocean Owo
Comment je fais pour ressortir une seule valeur du tableau json ? Pcq la ça me renvoie un paquet incroyablement long de data
Check des tuto sur comment utiliser du json en js
@queen ocean parse.JSON ?
Test et tu verras 😉
C'est incroyable comment je capte rien, mayday 😭
ça me renvoie ça
j'ai fais ça
const json = data
const obj = JSON.parse(json);
console.log(obj.count);
Verdun
c'est là qu'il me dise qu'il y a l'erreur mais je ne vois pas le problème
quelqun pourrai m'aider svp
j'aimerai savoir pourquoi quand je met un composant dans ma vue ca fait tout crash
Généralement cette erreur survient quand tu essaies de parse en JSON un objet déjà existant, c'est-à-dire que dans ton JSON.parse(json), tu essaies de transformer un objet en objet, alors que JSON.parse sert à créer un objet à partir d'un JSON stringifié (JSON.stringify)
Plus précisément, ce que tu mets à l'intérieur de ton JSON.parse sera cast en string automatiquement si c'en est pas déjà un
Ce qui me fait dire ça, c'est que si tu essaies de print un objet quelconque dans ta console, ça te retourne "[object Object]".
JSON.parse essaierait alors de créer un objet à partir du string "[object Object]" qui n'est pas une syntaxe valide en JSON, d'où le "Unexpected token".
Donc la solution : pas besoin de JSON.parse, tu as déjà ton objet dans ta variable data 🙂
okok
bon en tout cas j'ai essayer d'autres api et la j'ai un acces denied
j'ai mis mon ip mais 🤷♂️
La plupart des API demandent un token d'authentification, sois parce que l'API est privée / payante, sois par soucis de gestion
C'est comme le cas des bot Discord qui disposent d'un token, ce token sert à s'authentifier/s'identifier et communiquer avec l'API Discord pour gérer toutes les interactions 😉
comment on sait si l'API est privé ou payante ?
C'est mentionné sur le site de l'API que t'essaies d'utiliser
Tu peux me dire le nom de l'API ?
Je vais te dire
Tu t'es créé un compte et tout ?
oui
sus
very sus
est ce que le token doit obligatoirement etre API_TOKEN ?
sous cette variable en tout cas
euf
alors
const cocApi = require('clash-of-clans-api');
const coc = require('clashofclans.js');
c'est un peu overkill, et la dernière fois que la library a été publiée c'était il y a deux ans... x)
ah
Ça doit être un peu vieux
comment ça overkill
Installer une library pour appeler une API spécifique
Tu peux faire ça à la main et c'est pas bien compliqué
Par exemple avec fetch :
okok pcq bon je t'avoue que mon cerveau chauffe un peu la
non mais j'ai jamais appeler d'APIs
et ça m'a l'air cool
Bah c'est pas bien compliqué
👀
Même en vanilla JS t'as déjà la library fetch de configuré
fetch("https://api.clashofclans.com/v1/leagues", {
"headers": {
"Authorization": "Bearer TON_TOKEN_D_API"
}
})
.then((res) => res.json())
.then((leagues) => {
console.log(leagues);
});
C'est un exemple bien évidemment
Tu modifies avec ton token et ton endpoint
t'imagines pas comment j'me suis jeter dessus
xD
bon en vrai je vais essayer de comprendre le truc
Y'a rien de très dur 👌
Alors apparemment fetch n'est pas défini
ouais
npm i node-fetch
et tu mets ça quelque part
const fetch = (...args) => import("node-fetch").then(({ default: fetch }) => fetch(...args));
Alors
{
reason: 'accessDenied.invalidIp',
message: 'Invalid authorization: API key does not allow access from IP ...'
}
Qu'est ce que j'ai fais comme connerie encore
@broken walrus : (
La clé d'API que t'as spécifié accepte pas ton IP
T'as mal du config
Vérifie que dans "Allowed IP addresses" c'est bien l'IP qu'il te donne dans le message "message: 'Invalid authorization: API key does not allow access from IP ...'"
ben j'ai fais ça hein 🤷♂️
Ok j'ai mal mit l'adresse IP ptdr je suis con
enfermez moi
Cerise su le gateau : Je peux pas modifier la clé 
Faut la supprimer et en faire une autre
yep
Juste @broken walrus
tu as trouver ou ça https://api.clashofclans.com/v1/leagues
là
x)
C'est terrible, toutes mes excuses
alors bon
j'ai encore une p'tite interrogation
j'ai ça en temps
Comment je converti ça en date normal ? du genre : X\X\X
Alors
Euh
Tu peux split le string
on peut constater que ça se forme de la façon suivante "AAAAMMDD" au début, avec A l'année, M le mois et D le jour
ouais
Du coup tu peux get les 4 premières lettres du string, ce sera l'année, les 2 prochains le mois et les 2 d'après le jour
slice
ça prend deux paramètres en entrée, l'index de début et l'index de fin du string
par exemple
startTime.slice(0,4);
ça te retournera 2022
.slice(4,6) ça te retournera 07
.slice (6,8) ça te retournera 01
etc...

Comment on ajoute un paramètre obligatoire quand on communique avec une api ?
cette api la en loccurence
Tu peux utiliser Date() aussi pour convertir le temps
Ça marche pas avec ce format là malheureusement :/
T'es sur de toi ?
Je viens d'essayer
Comment je rajoute un paramètre obligatoire svp : o
Ah j'ai rien dit
Essaye un Date.parse() et montre PLS
Je redécouvre la vie c'est fou
Comment ça ?
bah en gros j'aimerais avoir des infos sur un joueur donc faut bien entrer à un moment le nom du joueur
et je veux mettre ça en option required: true
Tu regardes si le mec te passe bien un nom et tu fais la requête si c'est le cas ?
oui
Merde j'ai cité le mauvais
oh tkt
Bah voilà dans ton if tu fais la requête ou non
genre si je fais /info joueur: Lucky
(Cas fonctionnel en dernier)
Nul de fou
oui mais moi j'ai ça
Bah avant de fetch tu regardes si t'as bien le paramètre
Ah ok donc c'est via une commande ?
Ah ok
Bah t'as pas besoin de vérifier, discord submit pas la commande tant que c'est pas rentré si t'as spécifié que le paramètre était requis
x)
En gros j'ai une slash command qui comporte une option et moi je veux que le bot réponde des informations sur la personne se trouvant dans l'option
Ok j'vois
Ah donc
Ok
oui
Bah euh...
C'est à rajouter dans l'endpoint de ton url normalement ?
Enfin j'ai pas bien saisi
Tu veux faire une commande pour récupérer les infos d'un joueur CoC, c'est ça ?
https://api.clashofclans.com/v1/goldpass/seasons/current + /nomDuJoueur ?
ui
ouais bon j'ai mis goldpass mais tkt
Faut que tu récupères le tag du joueur dans ta slash command apparemment
et du coup oui tu ferais
fetch(`https://api.clashofclans.com/v1/players/${le_tag_du_joueur}`, {blablalba})
Je connais pas sheweny, je suppose que c'est une fork de discordjs ? 
Non, ca s'utilise en plus de discordjs
Ah ok
Dans un string ?
Tu utilises la fonction .replace si tu veux.
ouais mais c'est dans une variable
Bah
ça change rien.
Je l'ai fait perso pour une API.
j'ai ça https://api.clashofclans.com/v1/players/${pingOPtion} et ce que je veux modifier c'est ce qui se trouve dans ${pingOption}
enh
Bah tu mets ton .replace après pingOPtion c'est tout.
pingOption est sensé être un string donc ça change rien que ton string soit appelé par une variable.
SyntaxError: Unexpected token < in JSON at position 0 🤔
Tu as un fichier json ?
Fait voir ton code.
T'as le stack entier ?
const cocApiToken = api.API_TOKEN;
const pingOPtion = interaction.options.getString("test");
const target = `https://api.clashofclans.com/v1/players/${pingOPtion}`.replace('#', '%');
const fetch = (...args) => import("node-fetch").then(({ default: fetch }) => fetch(...args));
fetch(`${target}`, {
"headers": {
"Authorization": `Bearer ${cocApiToken}`
}
})
.then((res) => res.json())
.then((leagues) => {
console.log(leagues);
});
Et elle survient où ton erreur ?
Essaye de mettre return avant res.json()
Pas besoin
Tu penses ?
y a pas de { }
Si tu prends une arrow function, si tu mets pas de { } ça return directement le résultat de l'instruction qui suit
oki.
Par contre si tu fais .then((res) => { return res.json() }) alors là il en faut un
Ah oui j'avais pas vu y a pas les {}
.then((res) => res.json()) ça sert à quoi ?
ça sert à récupérer les infos de ton API sous le format json il me semble.
okok
Récupérer les infos du body de ton fetch sous format json, oui
undefined:1
<html>
^
J'avais pas vu mais ça m'a renvoyer ça avant de mettre l'erreur
Ah bah y a rien c'est pour ça.
Ouais c'est sur.
a




