#javascript-typescript
1 messages · Page 30 of 1
Ça ne fonctionne pas
const intents = new Intents(32767);
const client = new Client({
intents: intents
});
const config = require("./config.json");
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
const ping = {
name: 'ping',
description: 'commande de Ping',
type: 1
};
const commands = [ping];
const rest = new REST({ version: '1' }).setToken(config.token);
(async () => {
try {
console.log('Started refreshing application (/) commands.');
await rest.put(
Routes.applicationGuildCommands(config.client_id, config.guild_id),
{ body: commands },
);
console.log('Successfully reloaded application (/) commands.');
} catch (error) {
console.error(error);
}
})();
client.once('ready', () => {
console.log('Bot est en ligne');
});
client.login(config.token);```
faut faire comme ça
merde j'ai pas lu je pensais que ça parlait de coloration de code :D
const { Routes } = require('discord-api-types/v9'); pourquoi ?
Tu grilles les étapes et ça ne peut pas marcher. Commence par apprendre le JavaScript, la programmation orientée objet et seulement après tu pourras essayer de faire un bot.
Tu ne peux pas demander à une IA d'écrire ton code si tu n'as pas les compétences pour le vérifier. Le code qu'elle te génère est basé sur le code qu'elle connait qui est pour la grande majorité obsolète.
C'est pour ça qu'on appelle ça des "assistants IA" parce-qu'elles ne sont pas capable d'écrire du code correct mais elles peuvent assister un développeur pendant qu'il écrit du code
J'ai commencé par regarder une vidéo qui explique les basses et comment commencer, cependant je suis bloqué avec le code . Bien-sûr que je sais qu'il ne faut pas griller les étapes. Cependant je n'ai même pas commencé que je suis déjà bloqué. C'est en essayant que je comprendrai , mais je peux pas encore commencé
et c'est quoi le probleme ?
bonjour mesieurs j'ai un probleme, j'ai voulu faire un code
const https = require('https');
const fs = require('fs');
// Fonction pour télécharger le fichier depuis le lien Uqload
function téléchargerFichier(url, destination) {
return new Promise((resolve, reject) => {
const fichier = fs.createWriteStream(destination);
https.get(url, (response) => {
response.pipe(fichier);
fichier.on('finish', () => {
fichier.close(resolve(true));
});
}).on('error', (err) => {
fs.unlink(destination);
reject(err.message);
});
});
}
// Lien Uqload de la vidéo
const lienUqload = '';
// Destination où le fichier MP4 sera enregistré
const destination = 'C:\Users\matja\Desktop\demande';
// Appel de la fonction pour télécharger le fichier
téléchargerFichier(lienUqload, destination)
.then(() => console.log('Téléchargement terminé.'))
.catch((erreur) => console.error('Erreur lors du téléchargement :', erreur));`````
mais sa ne marche pas
et quand j'execute mon programme sa me mets sa
en theorie si il y auras un vrai probleme derangeant il y aurais un 1 tout en haut a cote de ton fichier
Ducoup je dois faire quoi ? Car le bot ne se connecte pas malgré tout
Si je fais un copier coller ça devrait fonctionner ?
Les copier coller ça marche rarerment
Faut savoir ce que tu fais sinon c’est que tu n’es pas assez bon pour le faire
Et donc commencer par la base de JavaScript peut être une bonne idée
Oui j'ai regardé une vidéo pour cela , j'ai fait comme il a fait, cependant ça marche pas.. j'aimerai comprendre pourquoi ça marche pas avant d'avancer
J'apprends avec la vidéo
const intents = new Discord.Intents([
Discord.Intents.FLAGS.GUILDS,
Discord.Intents.FLAGS.GUILD_MESSAGES,
Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
Discord.Intents.FLAGS.DIRECT_MESSAGES,
Discord.Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
Discord.Intents.FLAGS.DIRECT_MESSAGE_TYPING,
Discord.Intents.FLAGS.GUILD_VOICE_STATES
]);
const client = new Discord.Client({
intents: intents,
});
Attends mais ca fait 1 semaine que tu es bloqué ?
Hello ! Si quelqu'un connait l'APi de spotify je veux bien de l'aide xd (PIng moi) ^^
Tu veux quoi, c’est quoi ton problème ?
Je vais demandé à quelqu'un d'autre je pense, ça se passera mieux
Comment ça ? Désolé si tu as eu l’impression que j’étais désagréable 😄
Je travaille avec l’api de spotify tout les jours donc je pense être ta meilleur aide 😉
Oui c'était un peux l'impression que ça donne xd
Ah bah niquel, ça te dérange si je reviens vers toi dans quelque jours (les cours reprennent pour moi)
Aucun soucis 🙂
Ça ne "marche" pas parce-que l'API discord change beaucoup et que si la vidéo sur laquelle tu copies le code n'est pas très récente alors elle est dépréciée voir obsolète
D'où l'importance de commencer par apprendre le JavaScript avant de chercher à utiliser des librairies complexes comme discord.js
Et ce n'est pas avec discord.js que tu peux apprendre le JavaScript. Ça reviendrait à apprendre à nager en sautant tout seul au milieu de l'océan
pov moi qui a fait le chemin inverse 🥲
Après avant discord.js était beaucoup plus simplifiée, mais y'avais moins de fonctionnalités aussi
Bonjour es ce que vous avez un hosting pour bot.js gratuit sil vous plait ?
Je te conseille de passer par un framework JavaScript genre React, sa sera bien plus simple pour toi
Car avec JavaScript vanille ça va être la galère
Ah d'accord
Je regarderais plus ton code demain 🙂
J'ai réussi mais je vais voir l'implementation de React
Bonjour, j'ai besoin de vos lumières. J'ai besoin de récupérer des données e-commerce à partir d'un site Web développé à partir de zéro pour les envoyer vers GA4. Je dois donc tout créer (datalayer et tags GTM). J'utilise plutôt des CMS comme WordPress d'habitude. Puis-je créer un seul datalayer sur le fichier « script.js » qui est chargé sur toutes les pages ? Où trouver des ressources utiles ? Merci beaucoup
Attention React nécessite des compétences et des bases en HTML, CSS et JavaScript
Et même voir + que les bases pour certains cas
Non je fais d'autre projet, alors tant que je suis bloqué, j'avance sur autre chose. ( Le code que tu as fournis, ne marche pas non plus)
pourquoi sa me fait le code erreur comme sa
Wsh sa sa veux dire ton pc ou ton serveur se sent airbusa320
Ces pas la bonne ip ou ton firewall bloque
La connexions est refusé
cest bon j'ai trouver la solution masi ducoup un autre bleme
Timeout ces que ces pas la bonne ip
Que ton serveur ne répond pas
parce que ducoup le bleme cetiat que je n'avais mysql
je dois faire quoi pour corriger ?
Ces la même machine ?
oui
Met localhost:3306
ou
Ces quoi ton code
module.exports = async () => {
let db = await mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'bot_modération'
})
return db
}
?
mysql
Tu est sur ton pc ou un serveur
pc
Windows ?
oui
Ces quel logiciel que tu utilise pour la bdd
Met lui plutôt comme sa tu pourra avoir php my admin
Je suis sur qu'il fonctionne lui
donc je dessinstalle l'autr
Oui
oui
toujours pas
Bah
...
T en 64 bits ?
oui
Bzr
ducoup je fait comment
jsp dutout
pg
Mais ces pour faire quoi ton code
Bot discord
tu cherche un hebergeur ?
Oui aussi
Oui je sais, je suis assez limité par mes compétences en développement ce qui me gène un peux, mais avec de la persévérance ça devrait aller
Faudrait que j'apprenne à créer des app vraiment interactive et très dynamique avec des lib js tel que react
C'est quoi ta version de discord.js ? Parce que si c'est la v14 c'est pas Discord.Intents que tu dois écrire mais GatewayIntentBits.Guilds (par exemple)
Initialement tu devrais rester sur du JS de base hein je sais pas pourquoi on te recommande React alors que tu débutes
Je crois que tu peux utiliser ça https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder
Sinon tu dois config ton DNS (ou du moins configurer comment le client utilise le DNS)
my bad je vois pas d'option ipv6...
en regardant un peu tu peux ptet de débrouiller avec dns.resolve6(hostname)
ah bon?
je dois pas bien connaître les options de fetch alors
ah c'est une lib??
ptet axios
mais ça me paraît plus simple de resolve l'ipv6 puis d'utiliser fetch derrière non?
dépendre d'axios je préfèrerais éviter perso en tout cas
ah trouvé @eternal plank https://www.npmjs.com/package/node-fetch#custom-agent
oui oui j'ai bien compris
tu peux créer un http.agent :
const http = require('http')
const httpAgent = new http.Agent({
family: 6,
});
fetch('gsgregwesrgeg.com', {
agent: httpAgent,
})
un truc comme ça du moins j'ai pas testé
oui
mais je savais pas que node-fetch supportait l'option de changer l'agent utilisé dans la requête
ils donnent ça comme exemple :
import http from 'node:http';
import https from 'node:https';
const httpAgent = new http.Agent({
keepAlive: true
});
const httpsAgent = new https.Agent({
keepAlive: true
});
const options = {
agent: function(_parsedURL) {
if (_parsedURL.protocol == 'http:') {
return httpAgent;
} else {
return httpsAgent;
}
}
};
tu peux reprendre le code que je t'ai donné et le mixer avec ça
en gros ça devrait fonctionner un peu de cette façon
ok champion
bonne chance
ouais mais je sais pas si les defaults d'un http.Agent sont bien config pour https donc faudrait faire gaffe pour ça
si tu sais quel protocole tu dois utiliser t'as pas besoin de supporter les deux cela dit
bon bah voilà
remplace http par https dans mon code et t'auras ce qu'il te faut
vas-y dis si ça fonctionne
ah mince je suis passé lvl 5 j'aimais bien être en orange
ah rip
ça resolve toujours en ipv4?
chelou
hmm
en gros c'est basé sur ça
donc dedans y a bien family
ah mais localAddress il y est aussi dans les options
Tu voudrais y mettre quoi?
Moi monip.io ça resolve pas donc j'imagine que c'est un nom de domaine que tu as écrit toi
import fetch from 'node-fetch';
import https from 'https';
fetch('https://monip.io/', {
agent: new https.Agent({ family: 6, localAddress: 'blabla' }),
}).then(r => r.text()).then(w => w.slice(1800));
ça ça pourrait marcher par exemple
euh pardon
voilà
Enfin débuter... ça va faire bientôt 3-4ans que je dev
Bonjour j'arrive pas à connecté mon code au site par le terminal
Ok mais ça fait longtemps que tu fais du Js ?
Heu non moins je pense
le truc c'est qu'à moins de comprendre assez bien le fonctionnement du DOM et du Js côté client, j'aurais tendance à déconseiller d'apprendre une lib comme react ou vue
c'est des trucs complexes faits pour résoudre des problèmes complexes ; y a une tendance dans le monde du js à toujours chercher une lib avant de réfléchir si on peut le faire soi-même donc si ton but c'est d'apprendre je te conseille de pas trop te lancer dans des libs et d'essayer d'implémenter toi-même
évidemment si t'es dans un contexte ou tu travaille pour une entreprise et qu'on te demande d'utiliser tel ou tel truc tu le fais mais c'est un autre sujet
je pense qu'apprendre à utiliser react a de la valeur mais c'est encore mieux de comprendre comment fonctionne le web côté client
bref fais ce que tu veux après si tu es intéressé par react vas-y mais je te conseille de pas toujours sauter sur une dépendance pour résoudre ton problème, dans 90% des cas ta propre solution marchera très bien
si ton problème est compliqué ça vaut le coup de dépendre d'un truc qui le fait pour toi (un orm, du caching, de la cryptographie...) mais à part ça c'est bien d'essayer de comprendre le fonctionnement et de voir si tu peux le faire par toi-même quand tu veux apprendre
haha moi je dois utiliser react mais c'est pour les cours
React est l’une des lib les plus simple, mais si tu ne sais pas comment marche JavaScript c’est vrai que c’est contre productif
Quelqu'un s'y connait en mongoose ?
C'est en fonction de tes objectifs en vrai si tu veux juste une application interactif single page tu peux aller sur du react+vitejs, si tu veux aller plus loin genre des multipage application avec des SSR tu peux commencer avec svelte
d'ailleur svelte c'est très bien pour débuter, il a un très bon dx similaire à react et sans virtual DOM
Bonjour à tous j'avais une question assez courte. Voilà j'ai adonis en back en mode api et je souhaitais implémenter des fonctionnalités plus tôt temps réel qui demande des updates du serveur vers le clients. Or est-ce que ça serait une bonne idée de requêter une fois toutes les 2 secondes par exemple adonis pour renvoyer une réponse et donc update côté client ? Sinon j'intégre une websocket sur adonis même si je voulais éviter ça.
pour être plus précis je souhaite plus tôt mettre en place des mise à jour de notifications
existe-t-il des solutions qui contournes l'utilisation des websockets ou c'est pas opti ?
Snox 👀
dépends c'est quoi ton but
personnellement faire un requête tout les 2 sec (http/https) n'est pas très opti avec beaucoup d'utilisateur
Yo c'est mieux de partir sur un websocket
Hello ! J'ai une petite question. Comment est-ce que je peux récupérer mes anciens messages (les messages postés avant que le robot redémarre), car quand je supprime le message alors que le robot a redémarré, il me renvoie comme erreur :
TypeError: Cannot read properties of null (reading 'bot')
at module.exports (/home/container/Events/messageDelete.js:5:29)
at Client.emit (node:events:518:28)
at Client.emit (node:domain:488:12)
at MessageDeleteAction.handle (/home/container/node_modules/discord.js/src/client/actions/MessageDelete.js:24:16)
at Object.module.exports (/home/container/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_DELETE.js:4:32)
at WebSocketManager.handlePacket (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:355:31)
at WebSocketManager.<anonymous> (/home/container/node_modules/discord.js/src/client/websocket/WebSocketManager.js:239:12)
at WebSocketManager.emit (/home/container/node_modules/@vladfrangu/async_event_emitter/src/index.ts:360:28)
at WebSocketShard.<anonymous> (/home/container/node_modules/@discordjs/ws/src/strategies/sharding/SimpleShardingStrategy.ts:32:47)
at WebSocketShard.emit (/home/container/node_modules/@vladfrangu/async_event_emitter/src/index.ts:360:28)
Le code : https://sourceb.in/qDNGkVe8zA
@indigo hazel @cursive sail pour rappel les MP sont totalement interdits et on ban perm quand ca arrive
Ah, sorry
Quand le msg est delete, Discord ne te permet plus d'avoir accès aux infos du msg
Le seul moyen que tu as c'est de gérer un cache via redis par exemple
excuse
Du coup là ton code crash car quand tu fais deletedMessage.author.bot bah deletedMessage.author est null
Pas de soucis
Ahhh d'accord
Merci
Yo, j'ai un problème avec Mongoose, j'essaye de récupérer l'entièreté des donné présente dans ma base de donnée MongoDB mais j'ai une erreur de cast mais je n'arrive pas à la résoudre alors que tout les types de valeur sont correcte dans mon shema. Voici mon erreur : https://pastebin.com/80X3dRjh, mon code : https://pastebin.com/yYNJ2VUN et la structuration d'une des donné de ma base : https://pastebin.com/87yhVbmj. Merci d'avance
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.
merci pour vos réponses !
Salut je m'y connais pas trop en data type sur mongodb, mais je crois que le problème viens du fait que le champ "nom" est un objet mais dans ton query tu fournis un array
Merci de ta réponce, mais le type est bon car j'enregistre plusieur nom sous la forme d'un array : ```JSON
"relation": {
"reco": [
{
"nom": ["劇場版 呪術廻戦 0","Jujutsu Kaisen 0","Jujutsu Kaisen 0","Jujutsu Kaisen 0"],
"type": "Film",
"stats": ["1h45"],
"id": "0",
"dub": true,
"chrono": 0
}
],
"rela": [
{
"nom": ["劇場版 呪術廻戦 0","Jujutsu Kaisen 0","Jujutsu Kaisen 0","Jujutsu Kaisen 0"],
"type": "Film",
"stats": ["1h45"],
"id": "0",
"dub": true,
"chrono": 0
}
]
}
Voici mon shema mongoose : ```JS
relations: {
reco: [
{
nom: [String],
type: String,
stats: [String],
id: String,
chrono: Number
}
],
rela: [
{
nom: [String],
type: String,
stats: [String],
id: String,
chrono: Number
}
]
}
sil vous plait me faite pas tourner atour du pot car j'en ai marre. COMMENT ON TROUVE LE NOM DE LA DB (node:25680) [DEP0160] DeprecationWarning: The multipleResolves event has been deprecated. (Use `node --trace-deprecation ...` to show where the warning was created) Error: Unknown database 'loaclahost'
Ptdrrrr
Bah c'est toi qui l'a créer la base de donnée
non je sait pas ce que j'ai fait
Ah bah lets go apprendre
non dite moi comment on fait pour savoir le nom de la base donné vous m'enerver a me dire de aller faire des doc pour rien, alors que je demnde sur un truc
et vous dite d'aller des doc merde
Tu ne voulais pas marquer localhost, et non loaclahost
SVP
Bonsoir j'ai une question
comment faire ou comment se nomme un bar avec multiple choix ?
Un bar ou une barre ?
barre x)
Un exemple ?
Oki att
une barre à choix multiples
ouo
Mais du coup ça ressemble à quoi ? 😄
Un select menu
Ça ?
C’est ça 😉
Bonjour je cherche un développeur pour un bot RP ?
Bonjour, tu peux faire ta demande directement ici : https://creatorsarea.fr/
Je voudrais prendre le script directement
Vous pensez le faire en combien de temps le bot ?
Si vous le voulez gratuitement il faut regarder sur Github si il y en a
Ya des scripts sur github ?
Déjà faite ?
Oui apres si il y a ce que vous souhaitez je ne sais pas
Je voudrais un bot RP pour du RP GTA RP ps4 mais avec un bot discord
Il faut que vous ayez voir directement, je n'ai jamais regardé
Oui et d'autres développeurs ici c'est pour ça qu'il faut que vous mettiez votre demande sur le site internet
Comment je fais @ruby garden
Vous vous connectez et vous créez une offre
Tu as le lien direct dans #poster-une-recherche
Salut es-tu développeur?
TypeError: Cannot read properties of undefined (reading 'FLAGS') bonjour comment je peut corriger sa voici mon code ````const { Intents } = require('discord.js');
const allIntents = [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_BANS,
Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,
Intents.FLAGS.GUILD_INTEGRATIONS,
Intents.FLAGS.GUILD_WEBHOOKS,
Intents.FLAGS.GUILD_INVITES,
Intents.FLAGS.GUILD_VOICE_STATES,
Intents.FLAGS.GUILD_PRESENCES,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MESSAGE_REACTIONS,
Intents.FLAGS.GUILD_MESSAGE_TYPING,
Intents.FLAGS.DIRECT_MESSAGES,
Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,
Intents.FLAGS.DIRECT_MESSAGE_TYPING
];
console.log(allIntents);
const config = require('./config');
const loadEvents = require('./loadEvents');
const loadCommands = require('./loadCommands');
const loadSlashCommands = require('./loadSlashCommands');
loadEvents(client);
loadCommands(client);
loadSlashCommands(client);
client.once('ready', () => {
console.log('Bot en ligne !');
});
client.login(config.token);
Salut, si tu utilises discord.js v14, Intents n'existe plus et a été remplacé par GatewayIntentBits. Tu peux le retrouver au niveau de la doc:
https://discordjs.guide/popular-topics/intents.html#gateway-intents
Donc si tu veux créer ton client avec discord.js v14, ça doit ressembler à quelque chose comme ça:
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
GatewayIntentBits.GuildMembers,
...
],
});
Bonjour, je fait actuellement une commande casier pour voir les ban, kick, mutes etc d'un membre du serveur, je fait donc /locker user: @la personne, ensuite je passe par des boutons pour choisir entre kick etc, je passe donc dans mon fichier interactionCreate mais c'est l'endroit ou je bloque, quand je clique par exemple sur Mute, j'aimerais que sa me sort via ma DB toute les informations de l'user en question, mais je ne sais pas comment faire pour.
locker.js
const { SlashCommandBuilder, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, Component } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName("locker")
.setDescription("Allows you to see a user's locker.")
.setDMPermission(false)
.setDefaultMemberPermissions(null)
.addUserOption(opt => opt.setName("user").setDescription("Which user?").setRequired(true)),
async run (interaction) {
const db = interaction.client.db;
const user = interaction.options.getUser("user");
if(!user) return interaction.reply({ content: ` | Unknow user.`, embeds: [], ephemeral: true });
const EmbedLocker = new EmbedBuilder()
.setColor("Gold")
.setDescription(` | What do you want to see from ${user}?`)
.setFooter({ text: `MiraBot`, iconURL: interaction.client.user.avatarURL({ dynamic: true }) });
const BoutonLocker = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId("Mute")
.setLabel("Mute(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Warn")
.setLabel("Warn(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Kick")
.setLabel("Kick(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Ban")
.setLabel("Ban(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji("")
);
await interaction.reply({ content: `${interaction.user}`, embeds: [EmbedLocker], components: [BoutonLocker], ephemeral: false });
}
};
interactionCreate.js
if (interaction.customId === "Mute") {
const BoutonLocker = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId("Mute")
.setLabel("Mute(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Warn")
.setLabel("Warn(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Kick")
.setLabel("Kick(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
new ButtonBuilder()
.setCustomId("Ban")
.setLabel("Ban(s)")
.setStyle(ButtonStyle.Secondary)
.setEmoji(""),
);
};
Tu peux utiliser SELECT, par exemple :
db.query(`SELECT * FROM warns WHERE guild = '${message.guild.id}' AND user = '${user.id}'`, async (err, req) => {
console.log("uééé y'a des warn")
} else {
console.log("aucun warn")
}
Tu sélectionnes depuis la racine de ta base de données, tu cherches ta table warns et les informations à l'intérieur
Dans ma table warn y'a "guild", et "user" etc
bonjour je fait un bot discord et quand je fait node main j'ai sa qui apparait `````
node:internal/modules/cjs/loader:1143
throw err;
^
Error: Cannot find module 'C:\Users\matja\Desktop\Commandes\Bot musique.Py\main'
at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
at Module._load (node:internal/modules/cjs/loader:981:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
at node:internal/main/run_main_module:28:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}````
Est-ce que le chemin du fichier que tu lances est correct ? Sinon, c’est peut-être dû à l’import d’un fichier qui n’existe pas dans ton code
Tu lances quelle commande ?
Bonsoir j'aurais besoin d'une petite précision dans mon bot une commande envoie un embed avec un bouton en dessous un bouton d'interaction pas de lien, le problème c'est qu'a chaque reboot de mon bot ce bouton ne marche plus à part si je refais la commande y'a t'il moyen de faire en sorte que le bouton marche toujours sans base de donées si oui comment ?
Bonjour, quelqu'un pourrait il m'aider. Je suis entrain d'utiliser electronjs pour un projet mais j'ai un problème. En effet, voici mon JS :
const addExpenseLink = document.getElementById('addExpenseLink');
// Sélectionnez le formulaire par son identifiant
const expenseForm = document.getElementById('expenseForm');
// Ajoutez un gestionnaire d'événements de clic au lien "Ajouter"
addExpenseLink.addEventListener('click', function(event) {
event.preventDefault(); // Empêche le comportement par défaut du lien (naviguer vers une autre page)
// Affichez le formulaire en changeant son style de "none" à "block"
// si pas visible, et vice versa
expenseForm.style.display = expenseForm.style.display === 'none' ? 'block' : 'none';
});
const sqlite3 = require('sqlite3').verbose(); // Importer SQLite
const DB_PATH = path.join(__dirname, 'db.sq-lite'); // Chemin vers le fichier de la base de données
const submit = document.getElementById('submit_expense');
submit.addEventListener('click', function(event) {
event.preventDefault(); // Empêche le comportement par défaut du formulaire (rechargement de la page)
const nom_entreprise = document.getElementById('nom').value;
const categorie = document.getElementById('cat').value;
const date = document.getElementById('date').value;
const somme = document.getElementById('montant').value;
console.log(nom_entreprise, categorie, date, somme);
});``` mon console.log ne fonctionne pas et mes id sont les bons
Probablement que ton évènement n'est pas déclanché 😉
Mais pourquoi il ne déclanche pas ? Mon btn : <button id="submit_expense" type="submit">Valider</button>
¯_(ツ)_/¯
t'a pas d'idée ?
Mais est-ce que t’as lié ton JS à ton HTML si tu utilises HTML ?
essaye de tout mettre dans un événement DOMContentLoaded. Et sinon oui matteo a raison, si tu charges pas ton JS c'est clair que rien ne fonctionnera
Si il est bien chargé car des choses de mon js marche bien
Coucou tout le monde, je code un bot en JS V14, j'ai un petit soucis...
J'utilise canvas et l'aperçu de l'image est floue. Par contre quand je mets "afficher sur le web" c'est clean, je comprends pas trop...
J'ai testé plusieurs dimensions qui sont pourtant pas floues quand moi je poste l'image (sans passer par le bot).
J'en suis à la dimensions 800x600 actuellement, si quelqu'un a une solution...
Coucou, c'est à dire ? Tu peux montrer un exemple ?
c’est bon j’ai trouvé x)
c’est tout bête mais en mettant ** name: 'userinfo.png'** ça a réglé mon problème
ça a dû compresser l’image comme elle était pas renommée
Bonsoir... mais j'ai besoins d'aide jai dev un bot il y a longtemps mais je me souvient plus comment on add des cmd et comme j'ai une syntaxe un peu diff un compliqué
Si tu peux la refaire en français on pourra peut-être t'aider
j'ai créer un bot discord et sa va faire un moment, et je n'arrive plus add des commande car je croit ma syntaxe est compliqué, donc je demande de l'aide car je ne sait plus
Je peux t’aider stv mais déjà pour ça faut que tu viennes en voc vu que c’est pas simplement de l’aide là X) d’après ce que tu dis
je peut pas voc mtn
Bonjour tlm, j'ai une erreur en tsc que je ne comprend pas... j'ai essayer les solution youtube StackOverFlow mais rien ne marche si quel que à une idée
J'essaye de fait un import export d'une fonction mais j'ai l'erreur: " Uncaught ReferenceError: exports is not defined "
Salut tu as trouvé ?
Salut j'ai toujours pas trouvé
Il sort d’où ton export là ?
.
C’est pas module.exports par hasard ?
non c'est pas ça non plus je pense que c'est dans mes ficher de config
mais comme je debut j'y connait rien
Comme ça je n’ai pas d’idée
Je suppose que ton fichier js est relié à un fichier html ?
@fickle ruin
Est-ce que tu as la ligne "module": "commonjs", dans ton fichier tsconfig.json ? Si oui, supprime-la et dis-moi ce que ça fait
Oui je l'ai bien, je l'ai enlever et j'ai l'impression que ça n'a rien fait
j'ai put trouver le problème c'était au niveau de ma configuration qui était mauvaise
merci pour ton aide !!!
Bien joué champion
Si t’as d’autres questions ou problèmes tu pourras toujours demander ici
Hey ! J'ai commencé React hier. J'utilise actuellement ViteJS pour créer mon projet. Le problème est que j'ai besoin d'une API express à côté. Comment je pourrais l'implémenter dans mon projet ViteJS ? j'ai vu qu'il y avait un module pour express mais j'ai pas envie de refaire toute ma configuration par la suite. Merci d'avance !
Finalemment j'ai trouvé une solution
npm install vite-plugin-ssr express
créer ton fichier de config ```// vite.config.js
import { defineConfig } from 'vite'
import { ViteSSR } from 'vite-plugin-ssr'
export default defineConfig({
plugins: [ViteSSR()]
})
Ensuite tu créer ton serveur Express dans src/server/index.js avec ceci ```// src/server/index.js
import express from 'express'
import { createPageRender } from 'vite-plugin-ssr'
const app = express()
const renderPage = createPageRender({ isProduction: process.env.NODE_ENV === 'production' })
app.get('*', async (req, res) => {
const url = req.originalUrl
const pageContext = { url }
const result = await renderPage(pageContext)
res.status(result.statusCode).send(result.renderResult)
})
app.listen(3000, () => {
console.log('Server running at http://localhost:3000')
})
Et pour finir tu démarres le serveur avec
node src/server/index.js
Approximativement
Hey, je suis en train de créer un site avec nuxt3 mais j'ai un probleme. J'ai l'impression que la fonction ne s'execute pas quand je clique sur le bouton. Pouvez vous m'aider svp
index.vue
<script setup lang="ts">
import { EditUserInfoModal } from "#components";
const modal = useModal();
function openEditModal() {
console.log("openEditModal");
modal.open(EditUserInfoModal);
}
</script>
<template>
<UButton :onClick="openEditModal">Open</UButton>
<button @click="openEditModal">Open</button>
</template>
EditUserInfoModal .vue
<script lang="ts" setup></script>
<template>
<UModal>
<div class="p-4">
<Placeholder class="h-48" />
</div>
</UModal>
</template>
T'as oublié la fonction openEditmodal sur onclick
Enfin pas oublié juste une erreur
<UButton onClick="openEditModal()">Open</UButton>
<button @click="openEditModal()">Open</button>
</template>
Fonctionnel ?
ah oui un peu bete moi 😂
Tqt 🤗
c'est à dire?
Problème réglé ?
je test
j'avai étein mon pc du coup faut le temps qu'il se rallume
sa l'as log 1 fois et apres plus rien
je pense que sa vient du modal.open
je verrai sa plus tard
d'acc
merci pour l'aide 👍
avec plaisir
Hey petite question ça fait 2h que je suis dessus.
J'ai un site web en React et j'utilise ViteJS. J'ai un système de compte que je suis en train de créer et là j'initialise une base de données MySQL. Malheureusement j'ai un problème très chiant. Je suis en syntaxe ES6 donc import/export dans la console web j'ai des exports is not defined et je vois pas d'où ça vient. Si quelqu'un peut m'aider ça fait 2h30 que je suis dessus ^^'
Envois ton index.js please
alors l'index.js en question c'est celui du mysql
le pire c'est qu'hier soir tout marchait
Mais déjà t'as un problème dans ta fonction loadclass
Attends je suis sur tel c'pas pratique mais y'a quelques erreurs je check
Désolé je mangeais un œuf à la coque, c'était prioritaire...
tkt mdr
J'peux pas past le code sur tel 😒 wait
essaye de cliquer sur le lien index.js au dessous des erreurs
@hazy shale
Ouaip justement c'est celui que j'ai envoyé
aNotepad.com est votre bloc-notes en ligne de tous les jours. Vous pouvez prendre des notes et partager des notes en ligne sans avoir à vous connecter. Vous pouvez utiliser un éditeur de texte enrichi et télécharger votre note au format PDF ou Word. Mieux encore, aNotepad est un bloc-notes en ligne rapide, propre et facile à utiliser.
c'est celui de MySQL
quand tu clique dessus il t'apporte a une ligne exacte non ?
C'est juste qu'il use export au lieu de module.explort je crois lmao
Oui mais en gros dans le index.js dev MySQL c'est exports.createConnection par exemple
c'est juste que c'est du code compilé
le problème étant que mon interpréteur le comprendre pas car je suis en syntaxe ES6
donc import mysql from 'mysql';
Je t'ai envoyer un code essaie le
ouaip j'ai fait ça mais ça marche pas
ça ?
oui
bruh
en fait pour une raison inconnu ton code c'est du module.exports et sur le fichier dans inspecter l'élement c'est exports tout court
et j'ai bien restart tout
Uncaught ReferenceError: exports is not defined
at index.js:9:1
c'bon ça suffit merci
Ha bah oui , hier ça fonctionnait mais pas dans le navigateur si ?
Impossible
Node oui pas navigateur
😳
je viens de teste sur Edge j'ai maintenant module is not defined
avec module.export ?
Je suis pas en condition optimale pour t'aider maintenant maintenant , si jamais ton problème persiste dans l'aprem , je t'aiderais quand je serai sur pc
sur tel c'est illisible je glr
d'acc
plutôt import * as mysql from 'mysql'
je ne sais pas ce que tu cherches à faire mais j'ai vu passer mysql, createConnection et "j'ai testé sur edge". Ca me fait penser à une tentative de te connecter à mysql depuis du javascript sur navigateur. Je ne pense pas que ce soit possible et même dans le cas où c'est possible c'est à proscrire, on ne fait pas de connection directe à la base de données depuis un client. Il faut une API intermédiaire.
De plus, je ne suis pas sûr que module existe sur navigateur, c'est propre à nodejs
Evitons d'importer tout le package
Mon compte ayant été compromis, je réponds avec le nouveau. je vais voir comment mettre en place ça mais je sens que ça va être chiant..
P'tite question : Est-ce qu'il est possible depuis un bot Discord, de créer un post sur un site internet propulsé sous Azuriom, et également, si un message est envoyé dans X salon, est-il possible que le message en question soit aussi envoyé sur le forum ?
(avec ce plugin)
Si y'a une API documentée et faite pour être utilisée en dehors d'azuriom, oui bien sur
Sa me dit home/bot mais sur ptero cest /home/container/bot
donc je sais pas comment
svp
le mkdir est pas bon
Tkt cb
Sinon je cherche comment configurer le rôle wl pour que quand je fais la cmd il est accès a leur channel tout seul pour le sponsor bot
Bien le bonjour 🙂
Petite question qui me fait penser à un débat sur une certaine viennoiserie au chocolat :
Lors du post d'un formulaire assez gros contenant un input de type file, vaut-il mieux poster les informations en une seule requête via FormData
OU
Séparer et envoyer les fichiers, attendre la réponse, et si l'envoi est réussi, envoyer ensuite le reste en JSON ou autre format ?
J'ai fini par utiliser la seconde option, ça me permet de faire un envoie des gros fichiers avec xhr et donc avoir une progressbar plutôt qu'un spinner infinie frustrant 😐
Hello, moi personnellement, j'ai tendence, à envoyé le fichier dès lors qu'il est upload, s'il est upload dans mon S3 et enregistré dans la BDD, petite animation avec un tick vert, sinon une erreur
Comme cela tu envoie seulement les informations de ton formulaire, sa évite un chargement interminable quand l'utilisateur n'a pas la fibre ||Comme les belges 😆||
Et donc, si l'utilisateur annule le formulaire, nous devons supprimer les fichiers envoyés, je suppose.
Yep c'est exactement sa
Moi j'ai tout simplement mis un expired_at puis une CRON qui check toute les nuits ceci
De ce fait, si l'utilisateur termine le formulaire, il est établie en tant que complet, la valeur expired_at devient NULL, s'il annule et que la date est le 16 Mai, le 16 Mai à 3h, les fichiers sont supprimé
hey, je suis en train d'essayer de faire un systeme de login pour mon app (nuxt 3) avec sidebase/nuxt-auth mais je ne sait pas pourquoi la connexion avec google ne fonctionne pas.Pouvez vous m'aider svp
/server/api/auth/[...].ts :
import { NuxtAuthHandler } from "#auth";
import CredentialsProvider from "next-auth/providers/credentials";
import GoogleProvider, { GoogleProfile } from "next-auth/providers/google";
import { User } from "~/server/models/User";
import bcrypt from "bcrypt";
export default NuxtAuthHandler({
secret: useRuntimeConfig().authSecret,
// pages: {
// signIn: "/login",
// },
providers: [
// @ts-expect-error
CredentialsProvider.default({
name: "credentials",
credentials: {},
async authorize(credentials: { username: string; password: string }) {
// TODO: Fetch user from database
const user = await User.findOne({ username: credentials.username });
if (!user) {
throw createError({
statusCode: 401,
statusMessage: "Unauthorized",
});
}
const isValid = await bcrypt.compare(
credentials.password,
user.password
);
if (!isValid) {
throw createError({
statusCode: 401,
statusMessage: "Unauthorized",
});
}
return {
...user.toObject(),
password: undefined,
};
},
}),
// @ts-expect-error
GoogleProvider.default({
clientId: useRuntimeConfig().GoogleClientId,
clientSecret: useRuntimeConfig().GoogleClientSecret,
authorization: {
params: {
prompt: "consent",
access_type: "offline",
response_type: "code",
},
},
profile(profile: GoogleProfile) {
console.log("cc", profile);
return profile;
},
}),
],
session: {
strategy: "jwt",
},
callbacks: {
async jwt({ token, user, account }) {
if (user) {
token = {
...token,
...user,
};
}
return token;
},
async session({ session, token }) {
session.user = {
...token,
...session.user,
};
return session;
},
},
});
L'erreur que j'ai :
okay c'est bon j'ai trouvé
j'ai juste renvoye un truc formaté au lieu du profile directement donné
async profile(profile: GoogleProfile) {
console.log("cc", profile);
return {
id: profile.sub,
name: profile.name,
firstname: profile.given_name,
lastname: profile.family_name,
email: profile.email,
image: profile.picture,
};
},```
il y a un endroit ou tu essaie de récupérer un id qui existe pas
Hello, j'essaye de faire une authentification via discord avec next auth et lorsque je clique pour connecter j'ai ceci, dans les redirect url du discord dev portal j'ai mit http://localhost:3000/dashboard ( la page sur laquel je veut atterrir suite a ma connexion, car je veut que l'index sois accessible par tout le monde et le dashboard uniquement en étant connecter, pourriez vous m'aider s'il vous plait ?
Vérifie biens que tu es mis le bon URL depuis Discord Dev Portal
coté dev portal j'ai mit http://localhost:3000/dashboard, j'ai vérifier l'ortographe celui-ci est bon
oui ^^
mais j'utilise nextauth alors ce n'est pas ce lien qui est utiliser je pense
car le generate url fonctionne correctement, mais c'est next auth qui doit fonctionner, c'est lui dont j'ai besoin ^^
ah
BOnjour
j'aurais besoins d'aide pour mon bot j'ai aggravver ses erreur
quelqu'un pourrait me corriger sa sil vous plait ?
...
Mets ton problème directement
PS C:\Users\matja\Desktop\DEV\Commandes\prmg.0> node main
node:internal/modules/cjs/loader:1143
throw err;
^
Error: Cannot find module './config'
Require stack:
- C:\Users\matja\Desktop\DEV\Commandes\prmg.0\main.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1140:15)
at Module._load (node:internal/modules/cjs/loader:981:27)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:177:18)
at Object.<anonymous> (C:\Users\matja\Desktop\DEV\Commandes\prmg.0\main.js:6:16)
at Module._compile (node:internal/modules/cjs/loader:1364:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
at Module.load (node:internal/modules/cjs/loader:1203:32)
at Module._load (node:internal/modules/cjs/loader:1019:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ 'C:\\Users\\matja\\Desktop\\DEV\\Commandes\\prmg.0\\main.js' ]
}
tu as un fichier config.js à la racine de ton projet ?
et fais voir ton package.json
hello, je suis entrainn de faire mon site web, avec un systeme de connection/inscription mon probleme c'est que, le form de connection fonctionne nickel ( en local comme en ligne) alors que le systeme d'inscription lui ne marche dans aucun cas, ça me dit erreur de cors, sauf que je vois pas pk car le log in focntionn ?
( tout mon systeme est fait en js )
Hey petite question pour mon site web, j'ai un système de compte et je compte utiliser un cookie. Cependant, j'ai une API qui tourne sur le PORT 3000 et le serveur ViteJS sur le port 5173. Ma question est la suivante: Etant donné que les deux sont sur localhost mais n'ont pas le même port ce sera les mêmes cookies sur les deux sites ?
Bon finalement j'ai trouvé une solution mybad
LocalStorage 🤗
ouaip c'est ce que j'ai fait
sinon tu peux le set dans le header de la réponse
en gros j'ai fait une requête à l'API avec l'ID du transfer de données pour que l'API fasse la requête à la database pour créer le compte
et l'ID du compte est ensuite stocké dans le LocalStorage
aider moi j arrive pas a faire un systeme de ticket ou tu peux utiliser un choix de ticket
genre sois recrutemnt soir contract des trucs dans ce genree
et c pour mon bot discord
Bonjour, @glass cargo
hello dans l'API discord.js v14 j'ai pas trouvé comment mettre la localisation externe dans un événément. Quelqu'un saurait comment faire ?
Je viens de trouver 💀 faut juste scroll et ouvrir un peu ses yeux et tada !


Bonjour, je suis entrain de faire un chat en temps réel via nodejs et npm. Ce pendant lorsque j'exécute la commande "node index.js", ce message d'erreur s'affiche :
internal/modules/cjs/loader.js:818
throw err;
^
Error: Cannot find module '/home/hugo40/github/Ecocene/index.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
at Function.Module._load (internal/modules/cjs/loader.js:667:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
Je bloque dessus depuis 4 jours, j'ai regardé sur tous les forums rien n'a marché, je dois finir mon projet dans 4 jours. C'est assez important, une personne pourrait m'aider s'il vous plait ?
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server);
app.get("/", (req, res) => {
res.sendFile(`${__dirname}/public/index.html`)
})
server.listen(8000, () => {
console.log("Test");
})
Voici mon code
Si je puis me permettre, ça me parait très complexe comme projet alors que tu bloques sur un MODULE_NOT_FOUND

Bloqué sur un chemin de fichier alors que tu fais un projet plutot conséquent, c'est bizarre xd
Vérifie le chemin de ton fichier ? 
Soyez sympa un peu
Montre le dossier où il y a index.js
Fais-nous un screen de l’arborescence de ton projet s’il te plaît. Le problème vient du fait que Node ne trouve pas ce fichier index.js. Peut-être que tu ne donne pas le bon chemin pour ce fichier
Le problème a été résolu, merci. J'ai un dernier souci, il y a des erreurs dans mon code qui font que mon chat en temps réel ne fonctionne pas.
Si vous pouvez m'aider ça serait cool, il me reste lus que ce problème 🙂
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server);
app.get("/", (req, res) => {
res.sendFile(`${__dirname}/public/index.php`)
});
io.on("connection", (socket) =>{
console.log("Un utilisateur");
socket.on("deconnecte", () => {
console.log("Un utilisateur s est deconnecte");
});
socket.on("chat message", (msg) => {
io.emit("chat messsage", msg);
});
});
server.listen(8080, () => {
console.log("chat");
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Home</title>
</head>
<body>
<div id="messages"></div>
<form action="">
<input id="msg" autocomplete="off" /><button>Envoyer</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script>
$(function(){
var socket = io();
$("form").submit(function(e){
e.preventDefault();
socket.emit("chat message", $("#msg").val());
$("#msg").val("");
return false;
});
socket.on("chat message", function (msg){
$("#messages").append($("<p>").text(msg));
});
});
</script>
<?php
?>
</body>
</html>
@weary torrent @floral bolt
Soit il n'existe pas, donc il n'est pas créer
Soit la redirection du dossier n'est pas correcte
Je vais essayer de me renseigner
ok merci
@silent compass Tu l'as installé via npm ?
Donc, tu as un dossier nommée "node_modules", en toute logique
exact
Parfait
<script src="/chemin/vers/node_modules/socket.io/client-dist/socket.io.js"></script>
Essai un truc comme ça
quans je fias ls mon repertoire node modules apaprait
<script src="/node_modules/socket.io/client-dist/socket.io.js"></script>
Et, du coup comme ça, ça fonctionne ?
oui parfait
y en a un autre mdr
Ah bah, envoie x)
y'a toujours l'erruer d'avant en fait
j'avais mal refresh mdr
[::1]:40486 [404]: GET /socket.io/?EIO=4&transport=polling&t=O-YPYj7 - No such file or directory
j'ai cette erreur
Est-ce que tu penses que c'est possible que tu m'envoies ton projet en entier pour que je comprenne d'où provienne l'erreur (il sera supprimé sans aucun problème à la fin)
Socket.IO is composed of two parts:
Tu ne peux pas utiliser des packages du node_modules côté client sans un outil pour bundler ton code
Dans le tutoriel le fichier js importé côté client est servi par le serveur
Oui bien sûr, je te le partage où ?
@cursive sail tiens
@pure tiger @lone flax Avez-vous une idée svp ?
Alors de 1 je vais pas télécharger ton point zip et ensuite pas besoin de me mentionner
Je regardes ça quand j'ai le temps de le mettre dans un sandbox ou sinon tu peux le mettre sur github
Tout marche merci. A présent comment je peux faire en sorte qu'un utilisateur voit les anciens messages écrit, que ça garde l'historique des conversations ?
Base de données
on doit faire en json
Bah, ça dépend de ce que tu préfères
Tu peux le faire en json
en sql
Je comprend pas c'est un projet que tu dois rendre dans 3 jours, ca veut dire que c'est dans une ecole ?
C'est bon j'ai réussi merci quand même.
A présent il faut que le pseudo des utilisateurs, l'heure du message apparaissant
Bonjour, je suis entrain de continuer mon projet, cependant lorsque j'importe un fichier (il faut cliquer sur l'image trombone) et que je fais téléverser pour mettre le fichier sur le chat une erreur s'affiche, voici mon code et les erreurs. Pouvez-vous m'aidez svp ?
L’erreur parle d’elle même nan 
Oui
j'ai bien créé un dosssier uploads
donc pourquoi il trouve pas ?
Tu l’as bien configuré comme un dossier statique ?
En supposant que tu utilises express bien sûr
je dois pas pluto créer un fichier upload ?
qu'un dossier ?
¯_(ツ)_/¯
je suis perdu
slt, je suis sur une commande ping et j'utilise des émoji persso, j'aimerais savoir comment je peut faire pour que quand j'ai une latence de X ça me met un certain émoji
un tableau,
et selon la latence (via une simple division ou log) ça te dessine tel ou tel emoji
exemple :
let arr= [1,2,3,4,5]; // tableau d'emoji
let ind= Math.log( 1+latence_ms ); // index selon latence_ms calculée
if(ind>arr.lenth-1){ ind=arr.length-1; } // secu overflow
out= "Votre co est "+ arr[ind]; // draw
ok jvai voir merci
dans mon exemple, à partir de 6ms ça bascule à l'emoji index 1
et au delà de 100 environ, ça sera "hors tableau" donc au dernier emoji
help me svp :
<script>
$.ajax({
url: 'MyHttpUrl',
method: 'GET',
dataType: 'json',
contentType: 'application/json',
success: function(data) {
console.log(data);
},
error: function(xhr, status, error) {
console.error('Erreur lors de la requête :', error);
}
});
</script>`
quand je met l'url dans mon navigatuer, ou sur postman sa marche, mais j'arrive pas à le get depuis ajax ou fetch
Voici l'erreur : has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Le paramètre cors du headers
j'ai pas acces au serveur :/
tu aurais un lien pour que je me refere ?
I am trying to make a ajax request to the musicbrainz api but keep getting a cors header error.
the error : Access to XMLHttpRequest at 'https://musicbrainz.org/ws/2/release-group/?xxxxxxx' from or...
Sinon plus simple que le tableau tu peux faire une suite de if/ else if
C'est moins propre mais plus facile a comprendre
quite à faire ça autant utiliser un switch
Oui mais il connaît peut être pas
sisi donne moi juste un petit exemple est c'est bon
Mais tu peux avec des opérateur inférieur/supérieur ?
switch (variable) {
case condition:
Logger.log("Test");
break;
case condition2:
Logger.log("Test");
break;
default: // Aucune condition n'est remplie
Logger.log("Default");
break;
}
ok mrc
bof bof la solution du switch
C’est juste que ça s’utilise pas comme des if/else
@vale birch ton exemple ne marche pas
➜ Utilisation du groupe switch
Consulte la page pour voir + de détails :ok_hand:
➜ 101 Switching Protocol
Consulte la page pour voir + de détails :ok_hand:
➜ switch
Example:
switch (expression) {
case valeur1:
// Instructions à exécuter lorsque le résultat
// de l'expression correspond à valeur1
instructions1;
[break;]
case valeur2:
// Instructions à exécuter lorsque le résultat
// de l'expression correspond à valeur2
instructions 2;
[break;]
…
case valeurN:
// Instructions à exécuter lorsque le résultat
// de l'expression à valeurN
instructionsN;
[break;]
[default:
// Instructions à exécuter lorsqu'aucune des valeurs
// ne correspond
instructions_def;
[break;]]
}
C’est une valeur que tu dois mettre dans le case, pas une condition….
Le switch permet de remplacer des
if (x === "valeur") {}
else if (x === "valeur2) {}
// …
Et la valeur peut être de n’importe quel type
Bah par définition dans case c'est une condition "="
Oui mais avec le ping faut faire des tes du type < ou >
En sois ça fonctionnerai mais dans switch faudrai mettre true pour que ça fonctionne j'avais juste donner un exemple générique
Dans le switch au lieu de faire switch(a) faire switch(true) et ça fonctionnera
Autant faire un if else en vrai
exact, c'est pour ça que j'ai montré que ça ne marchait pas :)
je ne suis pas stupide au point de confondre if et switch :p
ou sinon on peut revenir à ma methode qui ne necessite ni if, ni switch, juste un tableau avec limites et une simple fonction mathematique qu'on peut choisir et adapter (log, ou division simple, ou autre)
j'ai essayé mais non jcrois que ça ne marche pas non plus :s
c'est domage de devoir prouver que ça ne fonctionne pas, au lieu de juste montrer un exemple qui marche :p
Si sa a marche
Ton a est = a 4
Et tu as mit des opérateur strict
Dcp il n'y as aucun cas rempli et c'est le default qui est joue
Il faut que tu mette <= sur un
Bah la pour le coup ça a respecter aucune condition
Si il y en a bcp un switch est tj plus sympa et lisible
Jprefere quand même utilisé un if else
Dit moi @simple arch avant de vouloir faire un bot discord tu as appris comment coder les bases en js?
@slim anvil salut ! Tu serais dispo cette semaine pour me filer des petits conseils en séniorité ?
Hey ! j'ai un soucis CORS et j'arrive pas a le regler j'utilise une API et quand j'essaie de recup des infos ça me dis " Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://cfx.re/join/134.255.225.63. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant. Code d’état : 404." j'ai vue qu'il fallais rajouter Access-Control-Allow-Origin mais je ne comprend pas ou n'y comment si quelqu'un a une explication je suis preneur
J'ai la même erreur quand j'essaie d'accéder à mon api sur un réseau "sécurisé"
(celui de mon école)
Dans ton .htaccess
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
sur nginx :
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
return 204;
}
add_header 'Access-Control-Allow-Origin' '*';
}
je suis en html css js php et node pour l'api
je ne m'y connais vraiment pas avec node
npm i cors déjà
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/ton-endpoint', (req, res) => {
res.json({ message: 'ça fonctionne !' });
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
C'est la configuration de t'es cors ça
Je vois ça ou
C'est à toi de le faire
Crée un fichier proxy.php
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
exit(0);
}
$url = $_GET['url'];
if (filter_var($url, FILTER_VALIDATE_URL)) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
} else {
echo json_encode(["error" => "URL Invalide"]);
}
?>
C'est un exemple
Ok
En gros tu dois autoriser sur ton URL l'utilisation du proxy pour les requetes externes
Après la ça touche sur quelque chose ou j'ai du mal pour le coup
Ah
Si tu veux une explication déjà :
https://developer.mozilla.org/fr/docs/Web/HTTP/CORS/Errors/CORSMissingAllowOrigin
Le plus important est de rajouté du coup ton en-tete,
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
Le « Cross-origin resource sharing » (CORS) ou « partage des ressources entre origines multiples » (en français, moins usité) est un mécanisme qui consiste à ajouter des en-têtes HTTP afin de permettre à un agent utilisateur d'accéder à des ressources d'un serveur situé sur une autre origine que le site courant. Un agent utilisateur réalise une...
Yes
Viens voc en despi
Je ne peux pas je suis en cour mdr
ou ?
Sur le terminal de ton serveur
et dedans tu mets :
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
</IfModule>
ensuite tu fermes ton éditeur
et tu a2enmod headers
puis restart service apache2
Tu utilises ton propre pc ?
Ok
mince j'ai mis a=4 au lieu de 2 ducoup mon test ne sert à rien
bon bah merci, je confirme sans avoir recu d'exemple mais en testant, que le switch fonctionne lorsqu'on prevoit true.
donc @empty mauve tu peux utiliser cette solution ouip
@steep gulch en js tu peut mettre { mode: 'no-cors' }) dans le fetch mais pas très utile car ça cache le contenu il me semble mais sinon tu peut utiliser un proxy gratuit comme https://corsproxy.io/ et ça reglera le soucis
ou faire les rêquete depuis le server-side (sur une machine donc pas en local)
Oui c'est ce que je fait mais le prblm avec sa c'est que pour les utilisateurs ils ont pas forcément de proxy
Bonjour j'ai une question.
J'essaye de faire un sorte qu'un bot extrait 3 paramètres d'une URL provenant d'un bouton discord sur une page profil web, contenant le lien de l'invitation et 2 autres paramètres importants pour la suite des choses. L'URL d'invit est correctement détecté mais pas les deux autres.
Voici le code
const inviteUrl = inviteUsed.url; console.log('URL de l\'invitation utilisée:', inviteUrl); const urlParams = new URL(inviteUrl).searchParams; const firstName = urlParams.get("firstName"); const skaNumber = urlParams.get("skaNumber");
L'URL de l'invit provenant du bouton discord est :
https://discord.gg/<lien d'invit>?firstName=<Prénom>&skaNumber=SKAxxx (où le prénom et où SKA est suivi de 3 chiffres).
La console me retourne :
Paramètres extraits: { firstName: null, skaNumber: null }
Paramètres requis non trouvés dans l'URL de l'invitation.
Je ne comprends pas trop comment ça se fait qu'il ne parvient pas à retrouver les 2 paramètres en question
Petite question concernant l'API discord, je commence à sérieusement tapé dans l'API (15r/s) et je commence à me prendre des rate limit, j'ai comme idée d'utiliser un maximum le cache avez vous connaissance d'un package npm ou autre pour discord.js qui permettait d'utiliser redis pour cacher les requêtes ?
Y’a une propriété cache dans la fonction fetch (native/node-fetch), mais je sais pas dans quelle mesure est-ce qu’elle met en cache
Ça te ferait pas utiliser redis bien sur, mais ça peut peut-être aider
Je mauto répond mais je pense me prendre des nan ip de CloudFlare pour trop de requêtes qui finissent en code 4** je suis en train de voir pour add plus de monitoring notamment rajoute des log pour Prometheus, des idées de point important a log ?
Ou d'autres outils add pour le monitoring d'erreur
Tu peux essayer de contacter leur support
La variable inviteUrl semble pas contenir les paramètres en question tu est sûr que tu les transmets ? et inviteUsed à été crée comment ?
Justement j'y connais pas grand chose, je ne sais pas s'il y a une autre variable / fonction qui serait plus efficace
Bonjour, j'ai un soucis avec mon code, j'utilise prisma pour gerer ma bdd postgresql, et j'effectue un findmany et j'export mes données en json, mais il n'envoie que le premier object et puis ensuite, plus rien, alors qu'il ya bien deux iems differents dans la bdd. Voici le code api pour le json :
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export async function GET(req, res) {
try {
const services = await prisma.service.findMany();
console.log('Services from database:', services);
return new Response(JSON.stringify(services), { status: 200 });
} catch (error) {
console.error('Error fetching services:', error);
return new Response(JSON.stringify({ error: 'Failed to fetch services' }), { status: 500 });
}
}
Ce que je récupère : [{"id":"clwwn4xzs0003usty3kfv6x5z","image":"h","title":"Carlo Acutis","value":"Merci","description":"Salut","createdAt":"2024-06-01T21:47:23.113Z","updatedAt":"2024-06-01T21:47:23.193Z","userId":"clwwdy2g3000113ycsamo3hom"}]
et voic ma bdd
id | image | title | value | createdAt | updatedAt | description | userId
---------------------------+-------+-------------------+-------------+-------------------------+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------
clwwn4xzs0003usty3kfv6x5z | h | Carlo Acutis | Merci | 2024-06-01 21:47:23.113 | 2024-06-01 21:47:23.193 | Salut
| clwwdy
2g3000113ycsamo3hom
clwxk2qjp0003qq9zb3svvjdw | h | Lissage Brésilien | Cou
pe Femme | 2024-06-02 13:09:28.108 | 2024-06-02 13:09:28.156
| Lorem ipsum dolor sit amet, consectetur adipicing elit, s
ed do eiusmod tempor incididunt ut labore et dolore magna al
iqa. Ut enim ad minim veniam, quis nostrud exercitation ulla
mco laboris nisi ut aliquip ex ea commodo consequat | clwwdy
2g3000113ycsamo3hom
(2 rows)
ma bdd est dans mon terminal, donc bon, voila l'affichage...
Si tu fais un await prisma.service.count() ?
ça ne serait pas prisma.user.findMany() à tout hasard?
ou services
(astuces trouvées dans la doc)
si je retire le await, a première vue, cela bloque le contenu json, je vais faire encore des recherches et je verrais
je ne crois pas avoir parlé de toucher au await :s
const services = await prisma.service.findMany();
à modifier en
const services = await prisma.user.findMany();
ou
const services = await prisma.services.findMany();
ah oui, autant pour moi 👍
Okk, ducoup, cela ne fonctionne pas car le "service" est le nom dans mon shema prisma
mais fait intéressant, si je met user, pour tester, il m'affiche toutes les donnée de ma bdd en format json
je pense que je vais refaire mon shema prisma en changeant le nom, car je pense que c'était un conflit avec un bout de code, lequel, jsp Merci d'avoir pris le temps pour moi
! génial
bon codage à toi :)
🙏
( là je migre du javascript de 2011-2014 de mon site perso, c'est si horrible xD mais ça marche :D )
ah oe 💀, bon courage alors
Hello qlq pourrait m'aider j'aimerais pouvoir mettre des émojis personaliser dans l'embed mais je ne sais pas comment faire
Bonjour, cela fait longtemps je n'ai pas fait ceci, mais de mémoire je dirais
<:[Nom_de l'emoji]:[Id de l'emoji]>
et
<a:[Nom_de l'emoji]:[Id de l'emoji]> pour les emoji animé
Voici un site qui peut t'aider
sinon tu peux importer formatEmoji de discord.js : https://discord.js.org/docs/packages/formatters/0.4.0/formatEmoji:Function
et l'utiliser dans ton embed : formatEmoji("ID")
si c'est un emoji animé faut rajouter true en paramètre à la fin : formatEmojit("ID", true)
okk thanks
et pour mettre citer un salon dans son code on fait comment ?
Je ne connaissais pas du tout cette fonctionnalité, merci de l'info mdrr 😅
<#Idchannel>
okk thanks
Tu as la même chose pour les Channel, utilisateurs rôles et j'en passé : channelMention, roleMention, userMention...
je vais check c'est intéressant, je suppose que sa catch auto les undefined et autre ? Sa fait quelque mois j'ai pas fait de bot discord en ts 😅
la j'experimente le go justement en matiére de bot discord
t'en a plein pour toutes les fonctionnalités textuelle de discord
mon préféré c'est time
ça formatte juste le texte, c'est comme un alias
en TS je sais pas comment ça rend
oui je vois c'est pour rendre le code plus propre, genre a la a place de la syntaxe de time de discord avec les <> tu fait appel a une fonction qui le fait pour toi, c'est bon à savoir !
Hello Pas trop le temps de regarder ton code pour l'instant. Ce que je peux dire c'est que tes utilisateurs devront écouter un message serveur qui leur dit "ok les gars, un membre a supprimer un message, veuillez actualiser votre page". Cela peut être fait de différente façon. ce qui est certain est que si tu n'utilises pas les sockets, tu vas devoir certainement utiliser JS avec setInterval() pour que les clients puissent détecter si un message a été supprimé du tchat... J'imagine que ce mécanisme existe déjà pour notifier les membres d'un nouveau message. C'est le même principe. Tu peux par exemple envoyer à tout le monde un message du genre "delete #12345" qui ne va pas s'afficher mais qui va juste supprimer le message 12345 dans la liste. Tu peux utiliser JS pour supprimer le message dynamiquement sur ton client ou bien forcer un refresh de la page dès qu'un message "delete" arrive...
exact
Zaros va pas être content avec le fichier zip 👀
Effectivement, @sudden lava évite les zip pour envoyer du code, passe par un git
Hello qlq serait il m'aider ?? j'aimerais mettre afficher des rôles dans mon Embed mais sa me met les id au lieux des rôles
un rôle ne se mentionne pas comme ça en + d'où le fait que tu voit les ID
const { roleMention } = require('discord.js')
roleMention("id")
ok merci
En fait j'ai fait des tests là, lorsque j'envoie des messages ou les supprime le fichier json s'actualise bien ce pendant quand on est sur le site quand on envoie un message parfois on le voit pas il faut actualsier la page pour le voir pareil lorsqu'on en supprime donc je sais pas d'où ça peut venir.
à terme (si tu veux faire une V2 de ton projet) passe par les websockets 😉 ça t'évitera de galérer à essayer de mettre à jour ta page à chaque changements. Bien évidemment ce sera un poil plus complexe techniquement parlant mais le résultat sera meilleur
Je ne sais pas trop comment ton site fonctionne, comment le client détecte que les messages du tchat ont changé. Faudrait que je regarde le code mais là j'ai pas trop le temps désolé. Je serai un peu plus dispo plus tard.
Sinon pour patienter, tu as ceci
https://www.gekkode.com/developpement/tutoriel-javascript-comment-creer-un-chat-en-ligne/
(oui mais du coup là ça utilise les webaockets)
Lui il avait fait un truc simple en JS y me semble ça fonctionnait avec un fichier json qui enregistre tous les messages
Sauf que du coup il n'y avait pas la réactualisation automatique
Et bien comme ça il aura une base pour sa V2 😄
@Centurix C'est bien ce que tu as suggéré ? Là j'ai pas trop de temps pour dézipper un code et mon plonger dedans. Par contre, si tu t'en sent le courage... ^^
Bon j'ai regardé vite fait son code et il utilise déjà les sockets ! 🫣
Hello ! Petite question, à quoi correspond les "widget" pour les guild (DJS - V14)
Ah bah, je vient de trouver réponse à ma question ('x
Et bien si ça répond à son problème justement ^^
Hello your computer has virus
Nan je rigole
Mais évite de download des zip moi j'allais attendre qu'il upload son code sur git
J'ai toujours pas connaissance de son code donc je me base sur ce qu'il a envoyé
A sa place, je partirai de zéro en me servant du tuto
Dit le lui pas à moi lol
@cobalt dew les MP ne sont pas autorisés, le but c'est d'aider ici justement, pas en MP
Dans ce cas on va continuer de polluer ici ^^
Tu pollues pas justement 
j'ai pas le droit à websocket
Tu t'es inspiré d'un code existant ou d'un tuto ?
Un mélange de tout mdrr
apres le chat marche bien
y a juste un probleme parfois il faut actualiser la page
pour voir les messages disparaitre
tu vas pouvoir répondre à cette question je pense: Comment tu détectes un nouveau message ? Je veux dire, comment les clients savent qu'il y aun nouveau message posté ?
avec un evenment en js
un peu de code ? sinon peux-tu installer sur git sinon ça va être compliqué de t'aider
vsy je te mets tt sur un git 🙂
top
Tenez 🙂
Hello, game.players c'est un array d'username ? Si oui tu peux faire :
const playerFound = game.players.find((players) => players === username);
if (playerFound) {
await interaction.reply('Vous avez déjà rejoint cette partie.');
return;
}
j'ai vu ça, le mieux pour être sûr qu'il y ait pas de doublons ou quoi, c'est d'insérer les deux (l'id et l'username, si jamais tu dois afficher l'username), au moins tu sais que chaque joueur est unique
Hello @keen narwhal Je vais jeter un oeil, je ne te promets rien mais garde espoir! 😉
Déjà, as-tu des erreurs dans la console quand tu testes ta fonctionnalité ?
As-tu pensé à ajouter des logs ou à utiliser un debugger pour dérouler et analyser le process de ton application ?
Note perso: J'ai franchement du mal à comprendre l'algo que tu as choisi pour le calcul de l'xp / niveau du joueur... C'est pour ça qu'il serait préférable que tu puisses corriger le problème toi-même en debuggant ton code. Sais-tu comment procéder ?
Essaye déjà quelques tutos. ça va te changer la vie de savoir faire ça car c'est la base pour un dev
ok. ajoute quelques console.log dans ton code pour savoir si toutes tes valeurs de ton programme sont ok ou pas. Souvent c'est pas grand chose tu as raison. bon courage!!
Héééé! Je développe actuellement une authentification par Discord avec NextAuth.js sur mon projet Next.js mais lorsque je m'authentifie, Discord m'indique que l'URI de redirection est non valide.
https ?
Et du coup il te faudra sûrement un sous nom de domaine ou un nom de domaine pour faire de l'https
En effet!
$('#chartContainer').show();
const ctx = $('#myChart');
const img = new Image();
img.src = './ressources/sticker-plongeur.jpg';
console.log(img.complete);
const imagePlugin = {
id: 'imagePlugin',
afterDatasetsDraw(chart, easing) {
console.log("afterDatasetsDraw");
if (img.complete) {
const xAxis = chart.scales.x;
const yAxis = chart.scales.y;
const ctx = chart.ctx;
// Position de l'image pour le point courant de l'animation
const currentPoint = animationFrame % chart.data.labels.length;
const x = xAxis.getPixelForValue(currentPoint);
const y = yAxis.getPixelForValue(chart.data.datasets[0].data[currentPoint]);
ctx.drawImage(img, x - img.width / 2, y - img.height / 2);
}
}
};
const chartInstance = new Chart(ctx, {
type: 'line',
data: {
labels: lt,
datasets: [{
label: 'Profondeur (m)',
data: lp,
borderColor: 'rgb(75, 192, 192)',
tension: 0.1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
},
plugins: {
imagePlugin: {}
}
}
});
// Animation de l'image
let deplacementFrame = 0;
function animateImage() {
// console.log("animateImage");
deplacementFrame++;
chartInstance.update();
requestAnimationFrame(animateImage);
}
img.onload = function () {
animateImage();
};
Quelqu'un serait capable de m'expliquer pourquoi mon plugin n'est jamais lancé ?
(Le but est que mon image suive la courbe du graphique)
(me ping svp)
Alors, plusieurs points :
Premièrement, tu as déclaré ton plugin imaginePlugin, c'est bien mais mais à aucun moment tu l'as activé dans l'instance de Chart. Tu dois l'enregistrer dans une table 'plugins' de l'objet options ```js
plugins: [imagePlugin]
Deuxième point que j'ai remarqué, tu redéfinies ta variable 'ctx' en tant que contexte du canvas après l'avoir utilisé comme élément DOM dans ton const ctx = $('#myChart'); ... (Ca peut créer des conflits / erreurs de logique)
Okeyy alors j'ai fait le premier point mais par rapport au second idk, je censé faire quoi ?
Si jamais mon graphique s'affiche correctement. C'est ce qui est relatif à l'image qui suit la courbe qui ne fonctionne pas
Sinon merci beaucoup pour ton aide
const ctx = $('#myChart'); fait référence à l'élément DOM de jQuery, on est d'accord ?
oui
const ctx = chart.ctx; le contexte de dessin du canvas, j'me trompe ? @steep tartan
oui ?
ça peut créer des conflits car 'ctx' représente à la fois l'élément DOM et ton contexte de dessin
Et je règle comment le soucis de conflit ?
bonjour quand je fais npm i discordjs/Commando sur la vidéo
7:03 / 32:14
Créer un bot Discord MUSIC avec Node.JS FACILEMENT - 01 - Lire une vidéo sur YouTube
sa marche pas
Bah en changeant le nom d'une de tes variables
une ctx que tu mets en ctx1 pour tester voir si ça evite ce probleme là
oui
de la à dire que c'est de ma famille...
c'est un autre système / langage de bdd comme d'autre
que veux-tu savoir ?
Je crois que @keen narwhal t’as répondu
non
oui
viens en voc stv
pour te montrez
quand je fais
npm i discord/Commando
@keen narwhal
oui
yes
oui👋
ok att
merci
bon je vais continuer la vidéo et je te dis quand j'ai d'autre erreur
@keen narwhal tu peut m'aidez 😶
@keen narwhal j'ai trop d'érreur
excuté @keen narwhal
oui
regarde je t'envoie tt les truc
@keen narwhal
j'ai floutez les ID et le token
att
nn
j'ai pas mis ou je mes
ouit
@keen narwhal
nn
oui ?
je suis là sur la vidéo !
@keen narwhal
att
je regarde @keen narwhal
les modules @keen narwhal
auppirs tu t'y connais en bot discord a codez ?
Quand tu reset le niveau, mets un console.log après ta condition pour voir si ça marche bien
C’est que ta condition n’est pas bonne
Bonsoir, j'au soucis extrêmement pénible, en local, je peux créer un service, le service se créer et sur la page de rendus, il s'affiche. Sur Vercel je créer, il se créé, va dans la bdd, mais ne se trouve pas dans le contenus json et donc ne s'affiche pas, pour que cela se fasse, je dois redémarrer mon serveur et la le json se met. service.tsx : 'use client';
import { TabsContent } from '@/components/ui/tabs';
import React, { useEffect, useState } from 'react';
import InputLabel from '@mui/material/InputLabel';
import MenuItem from '@mui/material/MenuItem';
import FormControl from '@mui/material/FormControl';
import Select, { SelectChangeEvent } from '@mui/material/Select';
import Link from 'next/link';
interface Service {
id: string;
title: string;
category: string;
price: string;
description: string;
dureeRDV: string;
domicile: boolean;
image: string;
}
export default function ServicesTab() {
const [services, setServices] = useState<Service[]>([]);
const [sortOption, setSortOption] = useState<string>('');
useEffect(() => {
fetch('/api/service', {
method: 'GET'
})
.then(response => {
if (!response.ok) {
throw new Error(HTTP error! status: ${response.status});
}
return response.json();
})
.then((data: Service[]) => {
console.log('Services fetched:', data);
setServices(data);
})
.catch(error => console.error('Error fetching services:', error));
}, []);
AddService.tsx ;
addService : const handleSubmit = async () => {
try {
console.log('Données envoyées:', services[0]);
const servicesWithConvertedDescription = services.map((service) => ({
...service,
description: convert(service.description),
}));
const serviceData = {
...servicesWithConvertedDescription[0],
};
const response = await fetch('/api/service/addService', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(serviceData),
});
if (response.ok) {
console.log('Service créé avec succès');
} else {
const errorData = await response.json();
console.log('Erreur lors de la création du service:', errorData);
}
} catch (error) {
console.error('Erreur:', error);
}
};
api/service :
import { prisma } from "@/lib/prisma";
export async function GET(req, res) {
try {
const services = await prisma.service.findMany({
select: {
title: true,
description: true,
category: true,
price: true,
domicile: true,
image: true,
dureeRDV: true,
},
});
console.log('Services récupérés depuis la base de données:', services);
return new Response(JSON.stringify(services), { status: 200 });
} catch (error) {
console.error('Erreur lors de la récupération des services:', error);
return new Response(JSON.stringify({ error: 'Erreur lors de la récupération des services' }), { status: 500 });
}
}
api/service/addService :
import { NextApiRequest, NextApiResponse } from 'next';
import { prisma } from '@/lib/prisma';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method === 'GET') {
try {
const services = await prisma.service.findMany({
select: {
title: true,
description: true,
category: true,
price: true,
domicile: true,
image: true,
dureeRDV: true,
},
});
console.log('Services récupérés depuis la base de données:', services);
const servicesArray = services.map(service => ({
title: service.title,
description: service.description,
category: service.category,
price: service.price,
domicile: service.domicile,
image: service.image,
dureeRDV: service.dureeRDV,
}));
res.status(200).json(servicesArray);
} catch (error) {
console.error('Erreur lors de la récupération des services:', error);
res.status(500).json({ error: 'Erreur lors de la récupération des services' });
}
} else if (req.method === 'POST') {
try {
const { title, description, category, price, domicile, image, dureeRDV } = req.body;
const newService = await prisma.service.create({
data: {
title,
description,
category,
price,
domicile,
image,
dureeRDV,
},
});
console.log('Service ajouté à la base de données:', newService);
const updatedServices = await prisma.service.findMany({
select: {
title: true,
description: true,
category: true,
price: true,
domicile: true,
image: true,
dureeRDV: true,
},
});
const updatedServicesArray = updatedServices.map(service => ({
title: service.title,
description: service.description,
category: service.category,
price: service.price,
domicile: service.domicile,
image: service.image,
dureeRDV: service.dureeRDV,
}));
res.status(201).json(updatedServicesArray);
} catch (error) {
console.error('Erreur lors de l\'ajout du service:', error);
res.status(500).json({ error: 'Erreur lors de l\'ajout du service' });
}
} else {
res.setHeader('Allow', ['GET', 'POST']);
res.status(405).end(Méthode ${req.method} non autorisée);
}
}
Bonjour a tous, je cherche actuellement le moyen de faire un list_member_role, en gros je voudrais mettre mes ID par exemple le role 'membre', et un embed renvoie tout les utilisateurs qui possède le rôle, mais je ne sais pas du tout comment m'y prendre malgrè mes recherche, si possible de m'aider ;)
tu prend les membres et tu filtre pour récupérer ceux qui on le rôle correspondant a celui que tu veux
un exemple de filter :
a toi d'essayer de trouver pour le faire de manière a ce que sa face ce que tu veux 🙂
const array = [
{
name: "user1",
role: "admin"
},
{
name: "user2",
role: "membre"
}
]
array.filter(i => i.role === "membre")
Hello, je viens pas souvent ici, mais je suis la pour poser une question à propos de TS:
Comment typer toutes classes étendues à une classe abstraite pour les construires?
Si vous avez une réponse merci beaucoup !
perso je storais just l'xp total et avec un calcule je dirais c'est quoi son lvl
example : ```ts
function getLevel(xp: number) {
return Math.floor(Math.pow(xp / 256, 1 / 2));
}
function setLevel(level: number) {
return 256 * level ** 2;
}
function getNextLevel(xp: number) {
return 256 * (getLevel(xp) + 1) ** 2 - xp;
}
// ici sa log combien d'xp requis par niveaux
for (let i = 1; i <= 100; i++) {
console.log(Level ${i}: ${setLevel(i)} xp needed to level up);
}
Enfaite la le problème il est obvious, à la fin tu reset l'xp du joueur à zéro tout cours 
Faut que tu mettes juste à jour l'xp total
Lorsque le bougre monte de niveau, tu calcules l'XP résiduelle en soustrayant l'XP requise pour le niveau actuel avant la montée de niveau de l'XP mise à jour
Tu as fais comment du coup ?
ça pourra aider d'autres personnes dans le futur
Ouais je vois, tu as introduis ta variable lastPlayerXP pour stocker l'XP pour suivre les gains, watchPlayerExperience pour vérifier et mettre à jour le niveau de l'XP restant
Petit conseil supplémentaire, tu devrais faire surveiller uniquement les personnes actifs ou ceux qui ont récemment gagné de l'XP pour réduire la charge sur ta BDD et CPU
bonjour, j'ai un soucis avec l'erreur 405 method not allowed
voici ma page qui affiche les données
export async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method !== 'GET') {
return res.status(405).json({ error: 'Method not allowed' });
}
try {
const { id } = req.query;
if (!id || Array.isArray(id)) {
return res.status(400).json({ error: 'Invalid ID' });
}
const postId = parseInt(id as string, 10);
if (isNaN(postId)) {
return res.status(400).json({ error: 'Invalid ID format' });
}
const post = await prisma.post.findUnique({
where: {
id: postId,
},
});
if (!post) {
return res.status(404).json({ error: 'Post not found' });
}
return res.status(200).json(post);
} catch (error) {
console.error('Error fetching post:', error);
return res.status(500).json({ error: 'Internal server error' });
}
}
et voila ma page api :
import { NextApiRequest, NextApiResponse } from 'next';
import { prisma } from '@/lib/prisma';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const postId = parseInt(req.query.id as string);
try {
if (req.method === 'GET') {
const post = await prisma.post.findUnique({
where: { id: postId },
});
if (!post) {
return res.status(404).json({ message: 'Post not found' });
}
return res.status(200).json(post);
} else {
return res.status(405).send(`Method ${req.method} not allowed`);
}
} catch (error) {
console.error('Error fetching post:', error);
return res.status(500).json({ message: 'Internal Server Error' });
}
}
Parce que tu essayes de faire un post sur un get ?
post, c'est le nom d'un de mes éléments, il ne s'agit pas de la méthode
Je veux bien mais ton return dit que la méthode est pas bonne
Donc c’est qu’il y a un soucis dans ta condition
Ou que req method ne correspond a rien :/
Je suis sur mon tel c’est compliqué à définir
je sais, c'est pour cela que je comprends pas, j'ai fais un test en supprimant tous et plaçant un simple console.log('test'), mais meme soucis 🥲
tkt pas de soucis
Alors si même ton console log ne s’affiche pas c’est que le problème vient d’autre part
Hey j'ai commencer à utiliser react récement et je me demandais ce qui etait mieux quand on fais du javascript. faire une fichier séparer pour le js ou bien le mettre dans la fonction juste avant le return
Je vais essayer de te répondre avec ce que j'ai compris.
Tu peux faire les deux. Quand c'est un fichier assez simple, tu peux le laisser dans le même fichier mais il existe des cas où tu vas vouloir séparer ta logique et la mettre dans d'autres fichiers
Dans ce fichier, on a un bouton qui incrémente de 1 la variable myVar lorsqu'on clique dessus. C'est simple et cette logique ne va s'appliquer qu'à se fichier donc on peut tout mettre dans le même fichier. (Tu peux modifier ce code, éviter la fonction increment pour que ce soit plus simple, etc)
MyComponent.jsx
'use client';
import { useState } from 'react';
export default function MyComponent() {
const [myVar, setMyVar] = useState(0);
const increment = () => {
setMyVar(myVar + 1);
}
return (
<>
<code>myVar</code> vaut {myVar}
<button onClick={increment}>
Cliquer pour incrémenter
</button>
</>
);
}
user.js
// ...
// Cette fonction va chercher un utilisateur dans une base de données et elle sera utiliser un peu partout dans le projet et tu peux voir qu'elle est un peu longue
export const getUserById = async (id) => {
const user = await prisma.user.findFirst({
where: { id },
});
if (!user) {
return { error: "Cet utilisateur n'existe pas !" };
}
return user;
}
On va séparer la logique de requête à la base de données dans un autre fichier car elle sera utiliser à d'autres endroits et ça permet d'aller le fichier MyComponent.jsx
MyComponent.jsx
export default async function MyComponent() {
const user = await getUserById();
return (
<>
{!user.error && (
<p>Ton nom d'utilisateur est {user.username}</>
)}
</>
);
}
En le développant ? 
Ça faut pas le faire avec React, tu fais une opération lourde await getUserById() car ça va être exécuté à chaque fois que ton composant va être rendu, dans un composant sous forme de classe ça serait comme si tu faisais ton appel dans la méthode render. Il faut regarder le cycle de vie des components et le hook useEffect
Merci de la réponse !
mdrrr
bah il a pas tord il a pas tord
Salut tout le monde, j'essaye de faire fonctionner une api PlayStation et ça ne fonctionne pas, voici mon code :
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { token } = require('./config.json');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const { myNpsso } = require('./config.json')
const accessCode = await exchangeNpssoForCode(npsso);
const authorization = await exchangeCodeForAccessToken(accessCode);
const trophyTitlesResponse = await getUserTitles(
{ accessToken: authorization.accessToken },
"ECLIPS_Andsley"
);
client.once(Events.ClientReady, readyClient => {
console.log(`Ready! Logged in as ${readyClient.user.tag}`);
console.log(trophyTitlesResponse)
});
client.login(token);
Mon Erreur :
const accessCode = await exchangeNpssoForCode(npsso);
^^^^^
SyntaxError: await is only valid in async functions and the top level bodies of modules
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1088:15)
at Module._compile (node:internal/modules/cjs/loader:1123:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47
Node.js v18.12.1
je n'ai jamais eu cet erreur donc je ne sais pas comment la résoudre
Error during authentication or fetching user titles: ReferenceError: exchangeNpssoForCode is not defined
import marche sur js ?
je croyais c'était que sur python
ok, j'ai fais ça:
const { Client, Events, GatewayIntentBits } = require('discord.js')
const { token, myNpsso } = require('./config.json');
const { exchangeNpssoForCode, exchangeCodeForAccessToken, getUserTitles } = require('psn-api');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
// Mettre await dans une fonction asynchrone
async function main() {
try {
const accessCode = await exchangeNpssoForCode(myNpsso);
const authorization = await exchangeCodeForAccessToken(accessCode);
const trophyTitlesResponse = await getUserTitles(
{ accessToken: authorization.accessToken },
"ECLIPS_Andsley"
);
client.once(Events.ClientReady, readyClient => {
console.log(`Ready! Logged in as ${readyClient.user.tag}`);
console.log(trophyTitlesResponse);
});
client.login(token);
} catch (error) {
console.error('Error during authentication or fetching user titles:', error);
}
}
// Appel de la fonction main pour démarrer le processus asynchrone
main();
et maitenant j'ai cet erreur:
(node:33984) ExperimentalWarning: The Fetch API is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
Ready! Logged in as PSNChecker#3622
{
error: {
referenceId: '147084eb-2b24-11ef-952c-2dbea6c15e7f',
code: 2240513,
message: 'Bad Request (path: sort)'
}
}
Salut les copains ! Dites j'ai besoin d'aide.
J'utilise Supabase pour mon système d'authentification pour mon site, mais je ne comprends pas comment gérer l'URL de redirection vers mon site lorsque je confirme l'email :
Sur l'image, c'est l'URL définit par Supabase pour confirmer l'adresse mail avec laquelle je veux me créer un compte sur mon site, mais moi je veux pas que ça me redirige vers la page d'accueil (http://localhost:3000) mais vers la page success si ça à marcher (par exemple http://localhost:3000/auth/sucess) et vers la page d'error si ça à pas marcher
Mais le soucis est que je n'arrive pas à faire ça 
Comment ça ?
The encodeURIComponent() function encodes a URI by replacing each instance of certain characters by one, two, three, or four escape sequences representing the UTF-8 encoding of the character (will only be four escape sequences for characters composed of two surrogate characters). Compared to encodeURI(), this function encodes more characters, in...
Oui je sais, mais je comprends pas ou je dois le placer
Dans mon API ?
Ton url de redirection, tu dois l'encoder avec cette fonction
Donc ça va te donner ça :
`https://example.com?redirect_to=${encodeURIComponent("http://localhost:3000/auth/callback")}`
ooooh ok
Mais cet url la c'est dans l'email de redirection supabase
Sur mon panel
C'est .ConfirmationURL
Mais du coup la template de l'email c'est un html css bancale que j'ai récupérer
C'est nouveau le ActivityType Custom??
et si c'est pas le cas pourquoi je vois aucun bot l'utiliser lol
Nan ?
ah ça fait un sacré bail que ça existe
Bonjour, je suis actuellement entrain de développer une api avec express mais je rencontre quelques problèmes avec ma route /sibnet.
J'ai deux routes, "/sibnet/download" et "/sibnet/info" et les deux ont un paramètre "url".
Voici le code de ma route :
Voici deux exemples d'url que j'utilise pour envoyer une requête à mon api :
https://api-delta-omega.vercel.app/sibnet/info?url=https://video.sibnet.ru/shell.php?videoid=3566463
https://api-delta-omega.vercel.app/sibnet/download?url=https://video.sibnet.ru/shell.php?videoid=3566463
Et voici ce qu'elles sont censées renvoyer :
Pour /sibnet/info :
{
"title": "Assassination Classroom S2 01 VF",
"url": "https://video.sibnet.ru/video3566463-Assassination_Classroom_S2_01_VF/",
"embed": "https://video.sibnet.ru/shell.php?videoid=3566463",
"image": "https://st.sibnet.ru/upload/cover/video_3566463_0.jpg",
"description": "Pour plus d'?pisodes rendez-vous sur http://www.vostfree.com",
"duration": {
"heures": 0,
"minutes": 22,
"secondes": 10
}
}```
> Pour /sibnet/download :
```json
{
"videoUrl": "https://cvs13-2.sibnet.ru/33/12/83/3312838.mp4?st=oVsMvBBNf26X_3Bcxfzhsw&e=1718559000&stor=6&noip=1"
}
Mais elles ne renvoient ceci que rarement alors que j'utilise la même url. Dans la console ça me met error 403 au niveau de la requête quand ça ne marche pas et met ce message (console vercel) :
Données de fuseau horaire chargées
Legacy server listening...
BQBf5vFbsRPkZFgCqVBvb-fB1hkY2bey21bshLB2BLL0APCW3h9tu5xVc2mtTFP_GEw4d0Rr-PyhKCVmuF3T7iuqkSoBdQIL2lZ1g83iUqQDlVar8BY
Failed to fetch from https://video.sibnet.ru/shell.php?videoid=3566463: AxiosError: Request failed with status code 403
Je pense que c'est lié à un problème de cookie mais au bout d'un certain temps, les cookies expirent donc impossible de les mettre dans le request header. J'aimerais savoir si vous connaissez des solutions/alternatives et si vous savez comment par exemple générer des cookies à chaque requête pour les mettre dans le header. Merci de votre aide.
Ps : J'utilise vercel.app pour héberger mon api et sur le localhost ça à l'air de plutôt bien marcher comparé à vercel.
Merci de me ping pour que je sois au maximum à l'affut
Ah je crois que j'ai trouvé (plus besoin d'aide merci)
de rien
no
ah bah c'est pas bon enfaite
bah tu n'as pas accès à la ressource c'est simple
c'est comme le 401 un-authorized
tu t'es auth avec ta key d'api ?
Enfaite l'erreur viens pas de la connexion entre moi et l'API mais de la connexion entre l'API et sibnet.ru
Hello 
J'ai utilisé une template de Astro pour réaliser mon portfolio mais je n'arrive pas à build le site.
Quelqu'un pourrait m'aider ?
si jamais, voici les versions que j'utilise pour npm et node :
yo les mecs, quelqu'un aurait une idée de comment "déobfusquer" un code js ?
Utilise JSBeautifier, rename les variables et les fonctions et essaye de simplifier les parties non nécessaires
tu peux aussi essayer deobfuscate.io et suivre le même fonctionnement
ah ouais j'ai essayé et c'est pas mal merci
Hello, essaye de supprimer le node_modules et de le réinstaller ```rm -rf node_modules
Npm install
sudo apt install build-essential
de rien
Merci, toujours là même erreur :/
Le truc chelou c'est que j'ai qu'un seul fichier html dans mon dist, c'est la page du 404
D'ailleurs j'ai cette erreur qui pop de temps en temps, vous savez d'où ça vient ?
Faut surement config astro pour qu'il prenne en compte les fichiers HTML dans pages non ?
Tu as utilisé quel template ?
Mmhhh si tu fais npm run dev tu as bien les modifs en local ?
yepp
As tu essayé npm run preview
Ça a l'air de fonctionner pour moi, en regardant la doc le build ce fait bien car tu as ton dossier dist, pas de message d'erreur dans le terminal, peut être un problème de code / configuration pour setup la page d'accueil ?
Normalement un build d'application c'est fait pour minimifier les fichiers volumineux js /css pour les rendre plus rapide , tu montes une prod avec , donc si ton build preview ceci en page d'accueil, c'est qu'il y a un soucis de configuration pour la homepage je pense
mon fichier astro.config.ts :
Dans le README y'a rien concernant l'exportation en prod :/
Yes parce que l'exportation en prod ce fait directement sur le serveur de production , en local pour dev osef on s'occupe pas de prod normalement d'où l'absence dans le readme
Sa sert à rien de build en local si tu va continuer à dev (ou alors tu utilises npm run watch, pour build à chaque modifs)
Non justement, j'ai terminé le dev et j'aimerai avoir les fichiers finaux
Quand tu npm run dev, tu as aussi la 404 en allant sur localhost ?
Ah purée pardon j'avais pas vu l'erreur dans le build ! Expected paraméter accesstoken, te faut un token en fait
Ah mince, comment j'en choppe un mdrrr
Aucune idée mdrrr x) ton template à pas une doc x)?
hey, je vient de mettre à jour ma version de nuxt et depuis j'ai cette erreur. Pouvez vous m'aider svp
Yo un dev nextjs pour m'apprendre a faire un carousel svp
sa dit qui manque un accessToken check voir dans ton .env ou autres
le build crash a cause de sa
je vais devoir que tu a déjà u ta réponse 
Regarde swipper js
Dacc merci !
Enft je veut devenir développeur Web et je cherche qlq qui peut m'aider m'apprendre react et nextjs avec tailwinds et eslint etc ce serait vrm gentil
J'ai déjà les bases donc ça va
Ya plein de formations en ligne
Salut 👋
J’ai changé de template pour une « officiel » proposé par Astro et maintenant le build fonctionne. Hormis le fait qu’il n’y a aucun CSS sur la version build 
Salut, je suis actuellement en train de voir comment faire un système d'authentification avec NextJS et MySQL. Seulement, je ne trouve pas réellement de tuto récent hormis pour des système d'auth avec Prisma ou Clerk. J'aimerais donc savoir si vous aviez des idées, des exemples ou des tutos ?
Merci d'avance
Bah tu prend le package qui va faire du MySQL
Oui non mais ça je l'entend 😅 mais je ne sais pas utiliser le coté server de next surtout.
Next.js is a Full Stack based robust framework built on React JS that simplifies and significantly improves the building of modern…
bonjour je voulais savoir comment faire du scrapping avec un bot discord car sur la machine d'host il n'y a pas de navigateur
pas besoin d'un navigateur pour faire du scraping
à moins que t'ai des captcha à passer
mais sinon tu fais tout simplement des requète http avec une bibliothèque ou un bon vieux socket à la main ^^'
pcq j'aurai besoin de rentrer un lien dans un input , appuyer sur entrée et return l'url qui en resultera
ça passera ?
ah tu veux voir les redirections qui sont faites plutôt ?
c'est pas du scrapping donc
hum ça marchera avec certaines redirection mais pas toute, dans ce cas un nvagiteur serait mieux effectivement
tu peux utiliser les webdriver chromium pour faire ça
j'ai cru voir passer je vais tester merci

Bonsoir mon problème concerne la commande ban. En effet lorsque je veux ban qlq le bot me renvoie "pas de membre à bannir". Si vous pouvez m'éclairer svp
mon ban.js
Je n'ai pas de msg d'erreur dans la console
Fait un console.log de user
Après la 27
Je te conseille vraiment pas les vidéos de mad rage
catch une erreur et l'ignorer n'est pas une bonne pratique 👀
Si il y a une erreur, c'est que tes conditions ne sont pas suffisantes 😉
Autre chose, n'envoie pas ton message de confirmation avant d'avoir banni le membre
Et une dernière chose, utiliser les commandes à prefixe est dépassé. Pour un nouveau bot, je te conseille de passer directement aux commandes slash 
Pourquoi ?
Càd ?
Bah justement là je pouvais pas ban
Pourquoi tu dis ça ? J'utilise uniquement les commandes slash ça se voit sur le screen, non ?
Alors nomme correctement tes variables
Je parle de ça
Ici, tu ignore l'erreur
bot = client
message = interaction
args c'est bien
Pour le catch, je ne vois pas toute la ligne, mais t'emmerde pas à mettre un try catch alors que c'est une promise, utilise .catch
Elles sont bien là ?
Il l'ignore pas, il ne la log pas 👀
Oui je sais
Ben il l'ignore en quelque sorte du coup
J'ai fait un console.log après c'est comme ça que j'ai résolu mon erreur
J'ai pas dis le contraire
Mais le message de confirmation s'envoie au moment où le membre est ban
Non, dans l'exécution du code le bannissement se fait après le message
Elle sont bien nommées donc
Non
Mais en soit oui y'a un problème avec le catch, une erreur dans tout ton code ne veut pas forcément dire qu'il n'y a pas de membre à bannir
Et au lieu de t'emmerder à mettre un try catch dans chaque fichier, place le directement quand tu call ta fonction run() comme ça tu peux mettre l'erreur dans tes logs et/ou répondre à ton utilisateur avec un message d'erreur
Ah ok donc faut juste que j'inverse les 2 lignes
yep
Rien de dramatique en fait
Ca change quoi que je mette interaction à la place de message par exemple
Rien, c'est juste plus logique
Ok merci du conseil
Chacun sa logique au pire
Non ?
En fait quand tu dev il faut prendre l'habitude de nommer tes variables correctement
Sinon je peux évidemment dire que ceci est une pomme de terre : 
Je t'assure que si, ici t'envoie le message, puis tu ban le membre
Oui c'est vrai mais si dès le début je pars du principe que ça c'est une pomme de terre bah ça marche
Oui le message s'envoie quand l'action a lieu
Fin avant l'action
Ecoute chef on ne fait que te donner des conseils, j'espère juste que :
- Tu ne reprendra jamais ton code dans quelques temps
- Tu ne travailleras pas avec quelqu'un d'autre sur ce projet
await = attendre une réponse
Donc dans l'odre de ton code, tu attends que le message s'envoie PUIS ET SEULEMENT APRES, tu banni l'utilisateur
Est ce que ça peut provoquer un incident grave ?
D'accord
Tu connais pas l'expression "ne vend pas la peau de l'ours avant de l'avoir tué" ? Ben c'est exactement ce que tu fais ici
Mais y'a quelques secondes d'écart entre les 2
Et si y'a une erreur lors du bannissement ?
Le message s'envoie pas alors
Bah là si
Ou ça envoie un autre message
Quel type d'erreur ?
Le bot n'a pas la perm


