#javascript-typescript

1 messages · Page 30 of 1

hollow wolf
#

Je vais essayer !

#

Ç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);```
grizzled agate
#

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 ?

red torrent
#

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

hollow wolf
#

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é

floral bolt
#

et c'est quoi le probleme ?

indigo hazel
#

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

hollow wolf
indigo hazel
#

en theorie si il y auras un vrai probleme derangeant il y aurais un 1 tout en haut a cote de ton fichier

hollow wolf
#

Ducoup je dois faire quoi ? Car le bot ne se connecte pas malgré tout

floral bolt
hollow wolf
#

Si je fais un copier coller ça devrait fonctionner ?

floral bolt
#

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

hollow wolf
#

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

floral bolt
#

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,
});

floral bolt
keen narwhal
#

Hello ! Si quelqu'un connait l'APi de spotify je veux bien de l'aide xd (PIng moi) ^^

floral bolt
keen narwhal
floral bolt
#

Je travaille avec l’api de spotify tout les jours donc je pense être ta meilleur aide 😉

keen narwhal
keen narwhal
floral bolt
#

Aucun soucis 🙂

red torrent
#

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

plush lava
#

Après avant discord.js était beaucoup plus simplifiée, mais y'avais moins de fonctionnalités aussi

keen narwhal
indigo hazel
#

Bonjour es ce que vous avez un hosting pour bot.js gratuit sil vous plait ?

floral bolt
# keen narwhal

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

keen narwhal
#

Ah d'accord

floral bolt
#

Je regarderais plus ton code demain 🙂

keen narwhal
#

J'ai réussi mais je vais voir l'implementation de React

cunning coral
#

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

plush lava
#

Et même voir + que les bases pour certains cas

hollow wolf
indigo hazel
#

pourquoi sa me fait le code erreur comme sa

sleek lava
sleek lava
#

La connexions est refusé

indigo hazel
sleek lava
#

Que ton serveur ne répond pas

indigo hazel
#

parce que ducoup le bleme cetiat que je n'avais mysql

indigo hazel
sleek lava
indigo hazel
sleek lava
indigo hazel
#

ou

sleek lava
#

Ces quoi ton code

indigo hazel
#

module.exports = async () => {

    let db = await mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'bot_modération'
    })

    return db
}
sleek lava
#

La ou il y a localhost met :3306 derrière

#

Ces sur ton pc

indigo hazel
sleek lava
#

non bah retire le 3306

#

Tu la cree avc quoi ta base de données

sleek lava
indigo hazel
#

mysql

sleek lava
#

Tu est sur ton pc ou un serveur

indigo hazel
#

pc

sleek lava
#

Windows ?

indigo hazel
#

oui

sleek lava
#

Ces quel logiciel que tu utilise pour la bdd

indigo hazel
sleek lava
# indigo hazel

https://www.wampserver.com/

Met lui plutôt comme sa tu pourra avoir php my admin

#

Je suis sur qu'il fonctionne lui

indigo hazel
#

donc je dessinstalle l'autr

sleek lava
#

Oui

indigo hazel
#

...

sleek lava
#

Ah

#

Ces pas normal sa

indigo hazel
#

oui

sleek lava
indigo hazel
#

toujours pas

sleek lava
#

Bah

indigo hazel
#

...

sleek lava
#

T en 64 bits ?

indigo hazel
#

oui

sleek lava
#

Bzr

indigo hazel
#

ducoup je fait comment

sleek lava
#

jsp dutout

indigo hazel
#

pg

sleek lava
indigo hazel
sleek lava
indigo hazel
keen narwhal
#

Faudrait que j'apprenne à créer des app vraiment interactive et très dynamique avec des lib js tel que react

timid loom
# hollow wolf

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)

timid loom
#

Sinon tu dois config ton DNS (ou du moins configurer comment le client utilise le DNS)

timid loom
#

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

#
#

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

timid loom
#

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à

keen narwhal
west dawn
#

Bonjour j'arrive pas à connecté mon code au site par le terminal

timid loom
keen narwhal
timid loom
#

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

west dawn
#

haha moi je dois utiliser react mais c'est pour les cours

floral bolt
#

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

hardy gate
#

Quelqu'un s'y connait en mongoose ?

thorn temple
#

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

civic matrix
#

qui peux m'aider

#

a faire un bot discord

neat vale
#

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 ?

violet knot
#

Snox 👀

violet knot
#

personnellement faire un requête tout les 2 sec (http/https) n'est pas très opti avec beaucoup d'utilisateur

thorn temple
cursive sail
#

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

queen ocean
#

@indigo hazel @cursive sail pour rappel les MP sont totalement interdits et on ban perm quand ca arrive

queen ocean
queen ocean
#

Du coup là ton code crash car quand tu fais deletedMessage.author.bot bah deletedMessage.author est null

queen ocean
hardy gate
#

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

neat vale
thorn temple
hardy gate
# thorn temple Salut je m'y connais pas trop en data type sur mongodb, mais je crois que le pro...

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
}
]
}

indigo hazel
#

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'

torn fog
#

Ptdrrrr

torn fog
indigo hazel
#

non je sait pas ce que j'ai fait

torn fog
#

Ah bah lets go apprendre

indigo hazel
#

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

hardy gate
foggy ledge
#

Bonsoir j'ai une question

#

comment faire ou comment se nomme un bar avec multiple choix ?

floral bolt
foggy ledge
#

barre x)

floral bolt
#

Un exemple ?

foggy ledge
#

Oki att

cyan iron
#

une barre à choix multiples

foggy ledge
floral bolt
#

Mais du coup ça ressemble à quoi ? 😄

foggy ledge
#

2s

#

regarde la barre

cyan iron
#

Un select menu

floral bolt
floral bolt
foggy ledge
#

oki

#

merci

gilded citrus
#

Bonjour je cherche un développeur pour un bot RP ?

ruby garden
gilded citrus
#

Vous pensez le faire en combien de temps le bot ?

ruby garden
gilded citrus
#

Déjà faite ?

ruby garden
gilded citrus
#

Je voudrais un bot RP pour du RP GTA RP ps4 mais avec un bot discord

ruby garden
gilded citrus
#

Ok merci vous savez script en js ?

#

Pour ce bot ?

ruby garden
#

Oui et d'autres développeurs ici c'est pour ça qu'il faut que vous mettiez votre demande sur le site internet

gilded citrus
#

Comment je fais @ruby garden

ruby garden
#

Vous vous connectez et vous créez une offre

queen ocean
indigo hazel
#

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);

weary torrent
# indigo hazel TypeError: Cannot read properties of undefined (reading 'FLAGS') bonjour comment...

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,
    ...
  ],
});
worthy ice
#

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: `![error](https://cdn.discordapp.com/emojis/1228457520239083621.webp?size=128 "error") | Unknow user.`, embeds: [], ephemeral: true });

        const EmbedLocker = new EmbedBuilder()
        .setColor("Gold")
        .setDescription(`![utility1](https://cdn.discordapp.com/emojis/1236265802207072356.webp?size=128 "utility1") | 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("![mute](https://cdn.discordapp.com/emojis/1236268298434510869.webp?size=128 "mute")"),
                new ButtonBuilder()
                .setCustomId("Warn")
                .setLabel("Warn(s)")
                .setStyle(ButtonStyle.Secondary)
                .setEmoji("![warn](https://cdn.discordapp.com/emojis/1236268297478082620.webp?size=128 "warn")"),
                new ButtonBuilder()
                .setCustomId("Kick")
                .setLabel("Kick(s)")
                .setStyle(ButtonStyle.Secondary)
                .setEmoji("![kick](https://cdn.discordapp.com/emojis/1235989272733941780.webp?size=128 "kick")"),
                new ButtonBuilder()
                .setCustomId("Ban")
                .setLabel("Ban(s)")
                .setStyle(ButtonStyle.Secondary)
                .setEmoji("![ban](https://cdn.discordapp.com/emojis/1235971109698932807.webp?size=128 "ban")")
            );

        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("![mute](https://cdn.discordapp.com/emojis/1236268298434510869.webp?size=128 "mute")"),
              new ButtonBuilder()
              .setCustomId("Warn")
              .setLabel("Warn(s)")
              .setStyle(ButtonStyle.Secondary)
              .setEmoji("![warn](https://cdn.discordapp.com/emojis/1236268297478082620.webp?size=128 "warn")"),
              new ButtonBuilder()
              .setCustomId("Kick")
              .setLabel("Kick(s)")
              .setStyle(ButtonStyle.Secondary)
              .setEmoji("![kick](https://cdn.discordapp.com/emojis/1235989272733941780.webp?size=128 "kick")"),
              new ButtonBuilder()
              .setCustomId("Ban")
              .setLabel("Ban(s)")
              .setStyle(ButtonStyle.Secondary)
              .setEmoji("![ban](https://cdn.discordapp.com/emojis/1235971109698932807.webp?size=128 "ban")"),
              );


};
cursive sail
#

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

indigo hazel
#

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: []
}````

weary torrent
indigo hazel
#

comment on sait

#

fin j'ai importé le fichier depuis mon bureau

weary torrent
#

Tu lances quelle commande ?

clear crater
#

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 ?

south apex
#

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
glass cargo
#

Probablement que ton évènement n'est pas déclanché 😉

south apex
#

Mais pourquoi il ne déclanche pas ? Mon btn : <button id="submit_expense" type="submit">Valider</button>

glass cargo
#

¯_(ツ)_/¯

south apex
#

t'a pas d'idée ?

weary torrent
#

J’arrive un peu

#

J’en ai aucune idée

weary torrent
plush lava
south apex
#

Si il est bien chargé car des choses de mon js marche bien

coarse vapor
#

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...

cerulean pond
coarse vapor
#

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

indigo hazel
#

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é

red torrent
indigo hazel
#

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

slim heart
indigo hazel
#

je peut pas voc mtn

fickle ruin
#

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 "

fickle ruin
weary torrent
#

Il sort d’où ton export là ?

weary torrent
#

C’est pas module.exports par hasard ?

fickle ruin
#

de ça

fickle ruin
#

mais comme je debut j'y connait rien

weary torrent
#

Comme ça je n’ai pas d’idée

weary torrent
weary torrent
#

@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

fickle ruin
#

Oui je l'ai bien, je l'ai enlever et j'ai l'impression que ça n'a rien fait

weary torrent
#

Essaye de recompiler ton ts en js

#

Et relance ton projet et tu me dis

fickle ruin
#

merci pour ton aide !!!

weary torrent
#

Bien joué champion

#

Si t’as d’autres questions ou problèmes tu pourras toujours demander ici

hazy shale
#

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 !

hazy shale
prisma stump
#

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

leaden prism
#

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>
prisma stump
#

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>
leaden prism
prisma stump
#

Tqt 🤗

leaden prism
prisma stump
#

Problème réglé ?

leaden prism
#

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

prisma stump
#

d'acc

leaden prism
#

merci pour l'aide 👍

prisma stump
#

avec plaisir

hazy shale
#

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 ^^'

prisma stump
#

Envois ton index.js please

hazy shale
#

alors l'index.js en question c'est celui du mysql

#

le pire c'est qu'hier soir tout marchait

prisma stump
#

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

hazy shale
#

c'est MySQL ça

#

T'y arrives ?

prisma stump
#

Désolé je mangeais un œuf à la coque, c'était prioritaire...

hazy shale
#

tkt mdr

prisma stump
#

J'peux pas past le code sur tel 😒 wait

magic scroll
prisma stump
#

@hazy shale

hazy shale
#

Ouaip justement c'est celui que j'ai envoyé

prisma stump
#
hazy shale
#

c'est celui de MySQL

prisma stump
#

Essaie ce code , si c'est bon je t'expliques l'erreur 👌

#

C'est tout bête je crois

magic scroll
prisma stump
#

C'est juste qu'il use export au lieu de module.explort je crois lmao

hazy shale
#

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';

prisma stump
hazy shale
#

ouaip j'ai fait ça mais ça marche pas

prisma stump
hazy shale
#

oui

prisma stump
#

bruh

hazy shale
#

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

prisma stump
#

Colle en texte tes erreurs

#

Ça me chiffonne de pas trouver

hazy shale
#

Uncaught ReferenceError: exports is not defined
at index.js:9:1

prisma stump
#

c'bon ça suffit merci

#

Ha bah oui , hier ça fonctionnait mais pas dans le navigateur si ?

#

Impossible

#

Node oui pas navigateur

hazy shale
#

hier ça fonctionnait parfaitement

#

et aussi dans le nav

prisma stump
#

😳

hazy shale
#

je viens de teste sur Edge j'ai maintenant module is not defined

prisma stump
#

avec module.export ?

hazy shale
#

oui

#

et je vois vraiment pas comment régler ça

prisma stump
#

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

hazy shale
#

d'acc

red torrent
#

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

brittle bison
cedar sparrow
#

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..

cursive sail
#

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)

glass cargo
#

Si y'a une API documentée et faite pour être utilisée en dehors d'azuriom, oui bien sur

keen narwhal
#

Sa me dit home/bot mais sur ptero cest /home/container/bot

#

donc je sais pas comment

keen narwhal
#

svp

violet knot
keen narwhal
#

Tkt cb

keen narwhal
dense crescent
#

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 😐

normal umbra
#

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 😆||

dense crescent
normal umbra
#

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é

leaden prism
#

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,
        };
      },```
pure tiger
#

il y a un endroit ou tu essaie de récupérer un id qui existe pas

normal lichen
#

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 ?

sudden cipher
normal lichen
sudden cipher
#

comme ça

normal lichen
sudden cipher
#

Tu séléctionne biens celui que tu as mis

normal lichen
#

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 ^^

sudden cipher
#

ah

indigo hazel
#

BOnjour

#

j'aurais besoins d'aide pour mon bot j'ai aggravver ses erreur

#

quelqu'un pourrait me corriger sa sil vous plait ?

#

...

misty parcel
indigo hazel
#
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' ]
}
pure tiger
#

et fais voir ton package.json

indigo hazel
#

l'erreur que 'jai

echo oxide
#

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 )

cedar sparrow
#

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 ?

cedar sparrow
#

Bon finalement j'ai trouvé une solution mybad

prisma stump
cedar sparrow
#

ouaip c'est ce que j'ai fait

pure tiger
cedar sparrow
#

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

weary finch
#

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

glass cargo
#

Bonjour déjà

weary finch
#

Bonjour, @glass cargo

plush lava
#

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 !

queen ocean
plush lava
silent compass
#

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

glass cargo
#

Si je puis me permettre, ça me parait très complexe comme projet alors que tu bloques sur un MODULE_NOT_FOUND

noble mountain
#

Bloqué sur un chemin de fichier alors que tu fais un projet plutot conséquent, c'est bizarre xd

weary torrent
floral bolt
#

Soyez sympa un peu

floral bolt
weary torrent
silent compass
#

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

cursive sail
#

@silent compass

silent compass
#

ce dosser est crée

#

à l'installation de socket

#

non ?

cursive sail
#

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

silent compass
cursive sail
#

@silent compass Tu l'as installé via npm ?

silent compass
#

Oui

#

j'ai installé node puis npm

#

express

#

et socket

cursive sail
cursive sail
#

Parfait

#

<script src="/chemin/vers/node_modules/socket.io/client-dist/socket.io.js"></script>

#

Essai un truc comme ça

silent compass
#

<script src="/node_modules/socket.io/client-dist/socket.io.js"></script>

cursive sail
silent compass
cursive sail
#

👌

#

N'hésite pas si tu as un autre problème

silent compass
cursive sail
#

Ah bah, envoie x)

silent compass
#

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

cursive sail
#

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)

red torrent
#

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

silent compass
#

@cursive sail tiens

silent compass
#

@pure tiger @lone flax Avez-vous une idée svp ?

pure tiger
pure tiger
silent compass
#

ok @pure tiger

#

meric

silent compass
#

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 ?

silent compass
cursive sail
#

Tu peux le faire en json

#

en sql

floral bolt
#

Je comprend pas c'est un projet que tu dois rendre dans 3 jours, ca veut dire que c'est dans une ecole ?

silent compass
#

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

silent compass
#

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 ?

glass cargo
#

L’erreur parle d’elle même nan kapp

silent compass
#

j'ai bien créé un dosssier uploads

#

donc pourquoi il trouve pas ?

glass cargo
#

Tu l’as bien configuré comme un dossier statique ?

#

En supposant que tu utilises express bien sûr

silent compass
#

qu'un dossier ?

glass cargo
#

¯_(ツ)_/¯

silent compass
empty mauve
#

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

simple arch
#

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
simple arch
#

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

shell monolith
#

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.

violet knot
#

L'erreur te dit le problem

#

il manque un header sur le serveur

torn fog
shell monolith
shell monolith
torn fog
leaden prism
#

C'est moins propre mais plus facile a comprendre

vale birch
leaden prism
#

Oui mais il connaît peut être pas

empty mauve
leaden prism
vale birch
empty mauve
#

ok mrc

simple arch
#

bof bof la solution du switch

glass cargo
#

@vale birch ton exemple ne marche pas

ancient sonnetBOT
#
Résultats de la recherche: switch

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;]]
}
glass cargo
#

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

vale birch
#

Bah par définition dans case c'est une condition "="

leaden prism
vale birch
vale birch
leaden prism
simple arch
#

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)

simple arch
#

c'est domage de devoir prouver que ça ne fonctionne pas, au lieu de juste montrer un exemple qui marche :p

leaden prism
#

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

vale birch
vale birch
leaden prism
#

Dit moi @simple arch avant de vouloir faire un bot discord tu as appris comment coder les bases en js?

floral bolt
#

@slim anvil salut ! Tu serais dispo cette semaine pour me filer des petits conseils en séniorité ?

steep gulch
#

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

leaden prism
#

J'ai la même erreur quand j'essaie d'accéder à mon api sur un réseau "sécurisé"

#

(celui de mon école)

noble mountain
#

<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' '*';
}
steep gulch
#

je suis en html css js php et node pour l'api

#

je ne m'y connais vraiment pas avec node

noble mountain
#

Tu peux utiliser un proxy à la limite

#

Je te l'écris laisse moi 2min

steep gulch
#

ok

#

Merci

noble mountain
#

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

steep gulch
#

Je vois ça ou

noble mountain
#

C'est à toi de le faire

steep gulch
#

Ah

#

je met ça ou du coup

noble mountain
#

Crée un fichier proxy.php

steep gulch
#

c'est bon

#

ensuite ?

noble mountain
#

<?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

steep gulch
#

Ok

noble mountain
#

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

steep gulch
#

Ah

noble mountain
#

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");

steep gulch
#

D'accord

#

je galère de fou je n'arrive pas à corriger l'erreur

noble mountain
#

C'est un serveur apache que tu as ?

#

@steep gulch

steep gulch
#

Yes

noble mountain
#

Viens voc en despi

steep gulch
#

Je ne peux pas je suis en cour mdr

noble mountain
#

Ah

#

nano /var/www/html/.htaccess

steep gulch
#

ou ?

noble mountain
#

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

steep gulch
#

Je suis déso j'ai l'impression d'être vraiment a la ramasse

#

je chope ou le terminal

noble mountain
#

Tu utilises ton propre pc ?

steep gulch
#

c'est un serveur MAMP

#

Yes

#

en local

noble mountain
#

nstalle anydesk et envoie ton code en pm

#

J'vais te montrer ce sera plus simple

steep gulch
#

Ok

simple arch
#

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

vale birch
#

ou faire les rêquete depuis le server-side (sur une machine donc pas en local)

leaden prism
vale birch
#

Regarde le site

#

C'est juste à mettre dans le paramètre fetch

primal knoll
#

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

merry inlet
#

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 ?

glass cargo
#

Ça te ferait pas utiliser redis bien sur, mais ça peut peut-être aider

merry inlet
#

Ou d'autres outils add pour le monitoring d'erreur

violet knot
vale birch
primal knoll
wet temple
#

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...

glass cargo
#

Si tu fais un await prisma.service.count() ?

simple arch
#

ça ne serait pas prisma.user.findMany() à tout hasard?

#

ou services
(astuces trouvées dans la doc)

wet temple
simple arch
#

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();

wet temple
#

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

simple arch
#

! génial
bon codage à toi :)

wet temple
simple arch
#

( là je migre du javascript de 2011-2014 de mon site perso, c'est si horrible xD mais ça marche :D )

wet temple
#

ah oe 💀, bon courage alors

tribal otter
#

Hello qlq pourrait m'aider j'aimerais pouvoir mettre des émojis personaliser dans l'embed mais je ne sais pas comment faire

normal lichen
# tribal otter Hello qlq pourrait m'aider j'aimerais pouvoir mettre des émojis personaliser dan...

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

https://stackoverflow.com/questions/65966363/discord-js-how-to-use-emojies-in-a-embed-showing-user-presence

plush lava
#

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)

tribal otter
#

et pour mettre citer un salon dans son code on fait comment ?

normal lichen
tribal otter
#

okk thanks

plush lava
normal lichen
#

la j'experimente le go justement en matiére de bot discord

plush lava
#

t'en a plein pour toutes les fonctionnalités textuelle de discord

#

mon préféré c'est time

plush lava
#

en TS je sais pas comment ça rend

normal lichen
#

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 !

cobalt dew
#

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...

plush lava
#

Zaros va pas être content avec le fichier zip 👀

queen ocean
tribal otter
#

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

plush lava
plush lava
# tribal otter

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")

sudden lava
#

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.

plush lava
#

à 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

cobalt dew
plush lava
#

(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

cobalt dew
cobalt dew
plush lava
#

Oui

#

Mais ça réponds pas à son problème du coup mdr

cobalt dew
#

Bon j'ai regardé vite fait son code et il utilise déjà les sockets ! 🫣

cursive sail
#

Hello ! Petite question, à quoi correspond les "widget" pour les guild (DJS - V14)

#

Ah bah, je vient de trouver réponse à ma question ('x

cobalt dew
plush lava
#

Nan je rigole

#

Mais évite de download des zip moi j'allais attendre qu'il upload son code sur git

plush lava
cobalt dew
plush lava
#

Dit le lui pas à moi lol

queen ocean
#

@cobalt dew les MP ne sont pas autorisés, le but c'est d'aider ici justement, pas en MP

cobalt dew
queen ocean
#

Tu pollues pas justement myman

sudden lava
cobalt dew
sudden lava
#

apres le chat marche bien

#

y a juste un probleme parfois il faut actualiser la page

#

pour voir les messages disparaitre

cobalt dew
#

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é ?

cobalt dew
#

un peu de code ? sinon peux-tu installer sur git sinon ça va être compliqué de t'aider

sudden lava
#

vsy je te mets tt sur un git 🙂

cobalt dew
sudden lava
#

Tenez 🙂

oak turret
#

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

cobalt dew
#

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 ?

cobalt dew
#

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!!

wary urchin
#

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.

cobalt dew
#

https ?

wary urchin
#

Ah merci

#

C'est toujours les choses les plus idiotes qui dérangent

torn fog
steep tartan
#
$('#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)

noble mountain
# steep tartan ```js $('#chartContainer').show(); const ctx = $('#myChart'); const img = n...

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)
steep tartan
#

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

noble mountain
noble mountain
#

const ctx = chart.ctx; le contexte de dessin du canvas, j'me trompe ? @steep tartan

steep tartan
#

oui ?

noble mountain
# steep tartan oui ?

ça peut créer des conflits car 'ctx' représente à la fois l'élément DOM et ton contexte de dessin

steep tartan
astral chasm
#

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

noble mountain
simple arch
#

une ctx que tu mets en ctx1 pour tester voir si ça evite ce probleme là

cobalt dew
#

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 ?

floral bolt
astral chasm
#

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

astral chasm
#

@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

astral chasm
#

auppirs tu t'y connais en bot discord a codez ?

floral bolt
#

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

wet temple
#

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);
}
}

worthy ice
#

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 ;)

tired scaffold
sand mountain
#

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 !

sand mountain
violet knot
#

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);
}

noble mountain
#

Enfaite la le problème il est obvious, à la fin tu reset l'xp du joueur à zéro tout cours kapp

#

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

wet temple
#

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' });
}
}

floral bolt
wet temple
#

post, c'est le nom d'un de mes éléments, il ne s'agit pas de la méthode

floral bolt
#

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

wet temple
wet temple
floral bolt
#

Alors si même ton console log ne s’affiche pas c’est que le problème vient d’autre part

steep gulch
#

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

weary torrent
#

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}</>
      )}
    </>
  );
}
weary finch
#

Bonjour, comment fair un bot disocrd pour faire des tickets

#

Comme sur c photo

noble mountain
#

En le développant ? kapp

red torrent
autumn tendon
#

bah il a pas tord il a pas tord

autumn tendon
#

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

autumn tendon
#

Error during authentication or fetching user titles: ReferenceError: exchangeNpssoForCode is not defined

#

import marche sur js ?

#

je croyais c'était que sur python

autumn tendon
#

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)'
  }
}

autumn tendon
#

finalement, j'ai trouvé

#

merci pour l'aide 😄

misty parcel
#

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 pepecry

glass cargo
#

Faut encoder pour le mettre dans une url

#

Ex, le / deviendra %2F

misty parcel
glass cargo
#
MDN Web Docs

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...

misty parcel
#

Dans mon API ?

glass cargo
#

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")}`
misty parcel
#

ooooh ok

misty parcel
#

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

plush lava
#

C'est nouveau le ActivityType Custom??

#

et si c'est pas le cas pourquoi je vois aucun bot l'utiliser lol

cursive sail
simple arch
#

ah ça fait un sacré bail que ça existe

keen narwhal
#

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

keen narwhal
#

Ah je crois que j'ai trouvé (plus besoin d'aide merci)

restive flower
keen narwhal
#

ah bah c'est pas bon enfaite

restive flower
#

quel est le soucis ?

autumn tendon
#

c'est comme le 401 un-authorized

#

tu t'es auth avec ta key d'api ?

keen narwhal
dusky swift
#

Hello wavey
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 :

keen narwhal
#

yo les mecs, quelqu'un aurait une idée de comment "déobfusquer" un code js ?

pulsar owl
keen narwhal
errant sphinx
pulsar owl
#

sudo apt install build-essential

pulsar owl
dusky swift
#

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 ?

plush lava
#

Faut surement config astro pour qu'il prenne en compte les fichiers HTML dans pages non ?

#

Tu as utilisé quel template ?

errant sphinx
dusky swift
#

yepp

errant sphinx
dusky swift
#

oui mais sans build ça marche pas top 😆

#

voilà ce que j'ai avec preview

errant sphinx
#

Ç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

dusky swift
#

mon fichier astro.config.ts :

#

Dans le README y'a rien concernant l'exportation en prod :/

errant sphinx
#

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)

dusky swift
#

Non justement, j'ai terminé le dev et j'aimerai avoir les fichiers finaux

errant sphinx
#

Quand tu npm run dev, tu as aussi la 404 en allant sur localhost ?

dusky swift
#

yep

#

j'ai tout en dev

#

mais en prod j'ai juste le html du 404 (et d'autre fichiers)

errant sphinx
#

Ah purée pardon j'avais pas vu l'erreur dans le build ! Expected paraméter accesstoken, te faut un token en fait

dusky swift
#

Ah mince, comment j'en choppe un mdrrr

errant sphinx
#

Aucune idée mdrrr x) ton template à pas une doc x)?

leaden prism
#

hey, je vient de mettre à jour ma version de nuxt et depuis j'ai cette erreur. Pouvez vous m'aider svp

low mason
#

Yo un dev nextjs pour m'apprendre a faire un carousel svp

violet knot
#

le build crash a cause de sa

#

je vais devoir que tu a déjà u ta réponse sue

floral bolt
low mason
#

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

leaden prism
#

Ya plein de formations en ligne

dusky swift
mental notch
#

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

torn fog
mental notch
#

Oui non mais ça je l'entend 😅 mais je ne sais pas utiliser le coté server de next surtout.

torn fog
woven cosmos
#

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

keen narwhal
#

à 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 ^^'

woven cosmos
#

pcq j'aurai besoin de rentrer un lien dans un input , appuyer sur entrée et return l'url qui en resultera

#

ça passera ?

keen narwhal
#

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

woven cosmos
#

j'ai cru voir passer je vais tester merci

restive flower
sturdy hatch
#

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

floral bolt
sturdy hatch
#

Je le mets à quelle ligne ?

#

@floral bolt

floral bolt
#

Après la 27

sturdy hatch
#

J'ai rien

#

C'est résolu

clever bane
glass cargo
# sturdy hatch

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 myman

sturdy hatch
sturdy hatch
sturdy hatch
glass cargo
glass cargo
glass cargo
cyan iron
#

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

sturdy hatch
cyan iron
sturdy hatch
#

Oui je sais

glass cargo
sturdy hatch
#

J'ai fait un console.log après c'est comme ça que j'ai résolu mon erreur

glass cargo
sturdy hatch
glass cargo
sturdy hatch
glass cargo
cyan iron
#

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

sturdy hatch
sturdy hatch
#

Rien de dramatique en fait

cyan iron
#

En soit si

#

Tu confirme une action qui n'a peut être pas eu lieu

#

La preuve

sturdy hatch
# glass cargo Non

Ca change quoi que je mette interaction à la place de message par exemple

glass cargo
sturdy hatch
cyan iron
#

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 : Carotte

cyan iron
sturdy hatch
sturdy hatch
#

Fin avant l'action

cyan iron
#

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
glass cargo
#

Donc dans l'odre de ton code, tu attends que le message s'envoie PUIS ET SEULEMENT APRES, tu banni l'utilisateur

sturdy hatch
#

Est ce que ça peut provoquer un incident grave ?

glass cargo
#

Oui

#

Tu dis à l'utilisateur que l'action est faite avant de la faire

glass cargo
#

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

sturdy hatch
glass cargo
#

Et si y'a une erreur lors du bannissement ?

sturdy hatch
#

Le message s'envoie pas alors

cyan iron
#

Bah là si

sturdy hatch
#

Ou ça envoie un autre message

cyan iron
#

C'est ce qu'on t'explique

sturdy hatch
#

Quel type d'erreur ?

glass cargo