#javascript-typescript

1 messages · Page 73 of 1

oak turret
#

fais plusieurs fields

#

utilise

#

.addFields()

#

ça s'utilise comme ça

#
.addFields(
  {name: "name", value: "value", inline: true/false}
)
#

et tu duplique pour le nombre de fields que tu veux

cyan iron
#

sans oublier la virgule bg

oak turret
#

y en a qu'un dans mon exemple

cyan iron
#

Et là ça devrait work

oak turret
#

ah oui ok pour le .addFields()

#

j'ai pas suivi son code

cyan iron
#

Question débile oublie

misty pulsar
#

att, je suis en train de faire les modifs mais ducoup j'ai des erreur de syntax xD

oak turret
#

screen

misty pulsar
oak turret
#

ah oui non

#

suis mon exemple

#

delete ton contenu

#

et réecris le correctement via mon exemple

misty pulsar
#

Je met quoi dans value ?

#

Surement une question débile xD...

oak turret
#

regarde ça

misty pulsar
#

je coco tkt

#

à part le inline, ca je sais

oak turret
#

fais plutôt

#

comme mon exemple

#

plus simple pour lire

misty pulsar
#

marche pas

#

Je ne recois aucun embed

#

je n'ai pas d'erreur

oak turret
#

ton code

misty pulsar
#
console.log("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO")
const {MessageEmbed} = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");

    const embed = new MessageEmbed()
        .setTitle("Choisi tes notifications")
        .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
        .setColor("#dc143c")
        .addFields({
            name: "Les notifications qui peuvent t'intérrésser:",
            value: " ",
            inline: true

            // ${emojiNotifStream} - ${roleNotifStream.toString()} ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};

oak turret
#

prends mon exemple

ancient sonnetBOT
#
Citation de Lartaxx8301 posté dans javascript

Cliquez sur [📝](#javascript-typescript message) pour accéder au message

.addFields(
  {name: "name", value: "value", inline: true/false}
)
misty pulsar
#

J'ai pris ton exemple

oak turret
#

copie colle

misty pulsar
#

Je l'ai fait

oak turret
#

c'discord alors

misty pulsar
#

bah non, mes autres commandes marchent

oak turret
#

mais faut mettre un ; à la ) de .addFields

#

je parlais de l'indentation qui change la forme visuelle

misty pulsar
#

toujours pas

oak turret
#

bon attend je vais te le réecrire

#

ça sera plus simple

misty pulsar
#

Att

oak turret
#

ah mais

misty pulsar
#

J'ai une piste

oak turret
#

tu l'envoies pas

misty pulsar
#

att

#
const {MessageEmbed} = require("discord.js");

module.exports.run = (client, message, args) => {
    const roleNotifStream = message.guild.roles.cache.get("804297729761214484");
    const roleNotifInfo = message.guild.roles.cache.get("798935551272288296");
    const emojiNotifStream = message.guild.emojis.cache.get("824614483649101854");
    const emojiNotifInfo = message.guild.emojis.cache.get("824614484055293992");
    console.log("OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO")
    const embed = new MessageEmbed()
        .setTitle("Choisi tes notifications")
        .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
        .setColor("#dc143c")
        .addFields({
            name: "Les notifications qui peuvent t'intérrésser:",
            value: " ",
            inline: true

            // ${emojiNotifStream} - ${roleNotifStream.toString()} ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        })
};

module.exports.help = {
    name: "allroles",
    aliases: ['allroles'],
    category: 'reactions',
    description: "Renvoi un message avec des réactions",
    cooldown: 10,
    usage: '',
    persmissions: true,
    isUserAdmin: false,
    args: false

};
oak turret
#

cherche pas

#

tu l'envoies pas

misty pulsar
#

Mon console.log n'apparait pas dans momn terminal

#

comment ca ?

oak turret
#

bah message.channel.send(embed)

misty pulsar
#
    message.channel.send(embed)
        .setTitle("Choisi tes notifications")
        .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
        .setColor("#dc143c")
        .addFields({
            name: "Les notifications qui peuvent t'intérrésser:",
            value: " ",
            inline: true

            // ${emojiNotifStream} - ${roleNotifStream.toString()} ${emojiNotifInfo} - ${roleNotifInfo.toString()}
        })

Comme ça ?

oak turret
#

what ?

#

relis toi

#

tu le mets après ton embed

#

mais screen ton code stp c'mieux

misty pulsar
#

ok

#

Toujours aucun embed sur mon discord

oak turret
#

const embed = new MessageEmbed()
  .setTitle("Choisi tes notifications")
  .setDescription("Cliquez sur les réactions pour choisir tes notifications!")
  .setColor("#dc143c")
  .addFields(
     {name: "Salut", value: "ça va ?", inline: false}
  );
message.channel.send(embed);
misty pulsar
#

Nope

#

Toujours pas

oak turret
#

ça vient pas de l'embed alors

misty pulsar
#

Je te l'ai dis

#

Mon cosole.log bloque plus haut

oak turret
#

ça vient de ta structure alors

misty pulsar
#

avant tous mes const, le console.log marche, après non

#

?

urban stream
#

Hello les gars,

J'ai fait un site navigable horizontalement grâce à une section ayant la propriété display:grid; grid-template-column:repeat(3, minmax(140px, 1fr); width:200vw; (200vw correspondant à deux sections de 100vw * 2 = 200vw), et on scroll grâce à un script qui s'appelle "skrollr" (+1 à celui qui connait :p), il permet de transformer le "container" de la section de 200vw vers la droite grâce à transform:translateX(-100%).

Cependant, j'ai également deux flèches sur le bas de la page d'accueil... une à gauche, et une autre à droite, vous avez compris à quoi elles servaient... à naviguer autrement qu'en scrollant. Sauf que je n'ai pas encore trouvé de solution pour cette fonctionnalité. J'ai tenté avec un "scrollLeft", avec un "scrollTo", etc... mais rien ne fonctionne. J'ai également essayé de faire naviguer l'utilisateur grâce à un "a href=#section", mais sans succès.

Je commence malheureusement à perdre espoir, c'est pour cela que je viens chouiner auprès de vous, développeurs talentueux.
Quelqu'un aurait une solution?

Je peux vous filer un ngrok afin de mieux inspecter le code.

keen narwhal
#

Bonsoir, on ne peux pas faire de msg de weelcom ?
Une personne m'a dit sa,
Si on peux , on peux me dire comment svp

oak turret
#

dans le panel discord

#

faut les activé sur ton bot

keen narwhal
#

Comment ?

oak turret
#

j'te montre

keen narwhal
#

Okay, je te répondrai dans 20m

#

Environ

#

Mercii

#

D'avance

oak turret
#

ça

#

sur l'appli dév de discord

keen narwhal
#

@oak turret, d'accord merci, et tu a une ligne de code simple ?

oak turret
#

aucune ligne de code là ?

keen narwhal
#

Nan mais pour que le bot envoi un msg quand on rejoint

oak turret
#

ahh

#

faut géré l'event guildMemberAdd

keen narwhal
#

okay, donc genre

#

if guildMemberAdd return, messsage.channel.send("bvn")

#

jsuis pas si sur que sa soit sa xd

oak turret
#

oula nonn

#

c'est un event

#

donc comme client.on("guildMemberAdd") etc

keen narwhal
#

ha ok

#

merci

full flare
# misty pulsar avant tous mes const, le console.log marche, après non

Bon on va employer la manière forte, au lieu de faire ça :

message.channel.send(embed);

Tu fais :

message.channel.send(embed).catch(err => console.log(err))

Et tu regardes ce qu'il te dit comme erreur. Car si tu dis que le console.log à la ligne 9 fonctionne, c'est que ça vient d'ici obligatoirement 🙂

cyan iron
#

Salut à tous, je développe un panel pour mon bot, mais j'ai ce petit soucis, qui est très étrange. Lorsque je tente de console log la valeur de user.guilds ( en vert ), mon terminal me sort un [], mais lorsque je le console log ( en rouge ), j'ai ce qu'il faut, est-ce normal ? https://i.imgur.com/FjPAbcv.png

hardy glacier
#

je suis pas sur, mais c'est pas un truc du style :

  • Les val sont remis à 0 quand tu sort de ta boucle
  • Comme il est en dehors de ta boucle et que js n’exécute pas de haut vers le bas, il remet à zero à cause de la création au début
    Ce sont que des supposition hein
cyan iron
#

En gros, j'ai capté après, je suis dans une promise, et quand tu sors du .then t'as pas moyen de récup la valeur :/

#

Donc je suis bloqué je sais pas comment faire

hardy glacier
#

Rah merde...

slim anvil
#

le forEach est juste pas asynchrone

#

donc il te sort un log de ton array vide car il est pas encore passé par ta boucle

cyan iron
#

ah !

cyan iron
#

Je sais pas pourquoi ça me met ça

#

Je tente quand même harold

cyan iron
slim anvil
#

fais juste une boucle for

#

et pas un for each

cyan iron
#

okay

slim anvil
#
for (const element of array1) {
  console.log(element);
}
cyan iron
slim anvil
#

regarde avant comment fonctionne les promises parce que là je pense qu'on y est pas

cyan iron
#

Je sais pas si tu vois ce que je veux dire

keen narwhal
#

Salut, je voudrais savoir si c'est possible que le bot envoi un msg dans un salon quand un certaint user n'a pas parler, svp mercii 😉

cyan iron
#

j'ai réussi au final

spring dock
#

comment

cyan iron
# spring dock comment

Si c'est à moi que tu poses la question désolé j'avais pas vu et j'ai simplement fait ça :

        user.guilds = []
        for (const guild of profile.guilds) {
            if ((guild.permissions & 0x8) === 0x8) {
                let dataGuild = await requestOrion(`https://discord.com/api/guilds/${guild.id}`)
                if (dataGuild.code !== 50001) user.guilds.push(dataGuild)
            }
        }
short wadi
#

salut les gars j’aimerais faire une commande pour réinitialiser le serveur que par les admin vous savez comment je peux faire svp je n’ai pas trouver sur la documentation discord.js

lone flax
#

Réinitialiser le serveur, genre supprimer tous les salons/catégories ?

bold sparrow
#

Bonsoir, il y a quelqu'un ? 👀

spring dock
#

Bonsoir, oui

#

que pasa @bold sparrow ?

bold sparrow
#

Ah super, j'explique

#

Donc, j'ai exporté une Promise, avec un paramètre booléen, j'y fait appel ainsi, j'aimerais qu'en fonction du paramètre, le code puisse continuer ou non.

#

A chaque condition, je retourne permission en false, et à la toute fin, en true, s'il n'a pas été return avant

spring dock
#

Genre en fonction de ce que te renvoie permChecker?

bold sparrow
#

C'est ça.

spring dock
#

let perm = await permChecker....
if(!perm) return;

#

c'est juste ça

#

(normalement)

bold sparrow
#

C'était ça, j'ai juste du laissé la const du boolean, j'te remercie !

spring dock
#

Pas de soucis wantowo

mystic bison
#
const Discord = require('discord.js');

module.exports = {
    name: "ban",

    async run (client, message, args) {

        if(!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send('Vous ne pouvez pas utiliser cette commande')
        if(!message.guild.me.hasPermission("BAN_MEMBERS")) return message.channel.send('Vous n\'avez pas les permission pour effectuer cela')

        const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);

        if(!args[0]) return message.channel.send('Veuillez spécifier un utilisateur');

        if(!member) return message.channel.send('Utilisateur introuvable');
    
        if(member.id === message.author.id) return message.channel.send('Bruh, tu peux pas te kick toi même débile!');

        let reason = args.slice(1).join(" ");

        if(reason === undefined) reason = 'Unspecified';

        member.ban(reason)
        .catch(err => {
            if(err) return message.channel.send(`Quelque chose ne va pas contacte ${message.author} pour qu\'il intervienne`)
        })

        const banembed = new Discord.MessageEmbed()
        .setTitle('Membre banni')
        .setThumbnail(member.user.displayAvatarURL())
        .addField('utilisateur banni: ', member)
        .addField('banni par : ', message.author)
        .addField('Raison : ', reason)
        .setFooter('Banni le :', client.user.displayAvatarURL())
        .setTimestamp()

        message.channel.send(banembed);


    }
}```
#

j'ai un problème c'est que rien et envoyer et que la personne est pas banniu
et j'ai le retour d'erreur ".catch err" qui détécte un probleme
et dans mon terminal j'ai rien

blazing wadi
#

Salut les gars vous savez pourquoi j'ai cette erreur alors que j'utilise ce code depuis longtemps et qu'elle n'a jamais pop ?
Erreur : [unhandledRejection] Reason: TypeError: Cannot read property 'length' of undefined

prefix = row != null ? row[0].prefix : 'c!');
        let args = message.content.slice(prefix.length).trim().split(/ +/g); ```
mystic bison
#

let args = message.content.trim().split(/ +/g);

blazing wadi
#

[unhandledRejection] Reason: TypeError: Cannot read property 'prefix' of undefined

#

ça m'a juste réadd une erreur

mystic bison
#

const prefix = '%';

#

a la place de % tu mets se que tu veux

blazing wadi
#

nan mais il est défini

#

juste au dessus

#

prefix = row != null ? row[0].prefix : 'c!');

broken sierra
#
  • Bonjour à tous, j'ai une question très bête étant débutant dans le javascript.
    Comment puis-je faire pour que lorsque je tape une commande par exemple : /test j'ai 1 embed aléatoire parmi plusieurs possible qui pop ?
    Je ne sais pas si c'était très clair, je voudrai en gros qu'avec 1 commande, 1 messages sur les 5 possibles aléatoirement POP.

Merci de votre aide :
`` if (msg.content === prefix + 'work') {
if(jobs == "Boulanger"){
const exampleEmbed = new discord.MessageEmbed()
.setColor('#00788C')
.setAuthor('✦ Menu du Boulanger ✦', '')
.setDescription('')
.setThumbnail('')
.setTimestamp()
.setFooter('Some footer text here', '');

        msg.channel.send(exampleEmbed);
     }``
wild bramble
#

Salut comment je peux faire pour mentionner dans embed. Je m’explique je veux faire un message de bienvenue avec un embed mais je n’arrive pas à mentionné la personne qui vient de rejoigne

broken sierra
#

J'utilise cette fonction moi @wild bramble , mais je suis hyper novice alors .. Je dis surement du caca :B
.catch(collected => { msg.reply('Tu as mis trop de temps à choisir !'); });

full flare
burnt perch
#

il manque le then et aussi le then c'est pour les promises il me semble voila il manquait ces infos

#

d'ailleur dans discord.js y'en a de partout

hardy glacier
#

Hello, j'ai besoin d'une petite aide... 😢 En gros, j'ai des icônes animés sur mon site (il sont stocké sur un serveur distant au que je n'ai pas accès (enfin je peux mais c'est relou). Et j'aimerai pouvoir modifier la couleur des icônes (qui sont en JSON d’ailleurs). J'ai essayé en css, aussi 2/3 truc en js que j'avais vue sur un forum mais rien de fonctionne, vous auriez une idée ?

cyan iron
#

Ou Photoshop

blazing wadi
#

Hello, j'ai cette erreur qui apparaît et ce code ci-dessous :

TypeError: Cannot read property 'client' of undefined

const embed = new Discord.MessageEmbed()
            .setTitle("Nouveau bug report !")
            .setColor('#FFAD14')
            .setDescription(`Le bug a été report sur le serveur ${message.guild.name} par ${member}`)
            .addField('Bug :', `${bug}`)
            .setTimestamp()
            .setFooter(client.user.username , client.user.displayAvatarURL())
        message.channel.send(messagesend)```
Pourtant mon code ne contient aucunes erreurs et j'ai suivi la doc de djs
#

j'ai bien défini discord et autre

cyan iron
#

Je peux voir tout ton code s'il te plaît ?

#

@blazing wadi

#

Euh ok changement d'identité ptdr

blazing wadi
#

ouep 😂

hardy glacier
cyan iron
#

OOF

blazing wadi
#
 
module.exports = {
    help: {
        name: "embed"
    },
    run: async(client, message,args) => {
        message.delete()

        let creator = message.author;
        let contenu = args.join(" ");
        const embed = new MessageEmbed()
            .setColor('#FFAD14')
            .setDescription(contenu)
            //.setTimestamp()
        message.channel.send(embed)
        //const logs = member.guild.channels.find(channel => channel.name === "logs-discord")

        const y = new MessageEmbed()
            .setColor(config.color)
            .setDescription(`Un embed a été envoyé dans ${message.channel.name} sur ${message.guild.name}`)
            .addField(
                {name: "Créateur:", value: creator, inline: true},
                {name: "Contenu:", value: contenu, inline: true}
            )
            .setTimestamp()
            .setFooter(client.user.username, client.user.displayAvatarURL())
            client.channels.cache.get('832324933182947328').send(y)
    }
} ```
cyan iron
#

Alors bon je vais cherche pour toi @hardy glacier mais d'abord j'aide Hector le vector

blazing wadi
#

au dessus j'ai défini discord

cyan iron
#

Plus simple

#

Et là ça devrait work ;)

blazing wadi
#

Ah, bah en fait j'ai juste redownload discordjs

cyan iron
#

Utilise canvas @hardy glacier ;)

hardy glacier
#

Ah ben cimer, je regarde ça, merci

cyan iron
#

De rien

#

ça fonctionne du coup @blazing wadi ?

blazing wadi
#

ouep cimer bro

cyan iron
#

de rien !

keen narwhal
#

Hello, on est d'accord que pour que le bot envoie un message auto quand il rejoint un serveur on mets ce message dans l'event guildCreate?

#

Un peu comme groovy quand il join un serveur il envoie un message

keen narwhal
# cyan iron Oui

Ok cimer parce que c'est plus facile de faire ça qu'une commande

cyan iron
#

¯_(ツ)_/¯

#

Les deux sont EZ mais ok 😂

keen narwhal
#

Mais genre au moins si le mec y pense pas

#

ça s'autosend

cyan iron
#

Bah c'est rien de plus qu'envoyer un message donc bon au final

broken sierra
#
  • Bonjour à tous, j'ai une question très bête étant débutant dans le javascript.
    Comment puis-je faire pour que lorsque je tape une commande par exemple : /test j'ai 1 embed aléatoire parmi plusieurs possible qui pop ?
    Je ne sais pas si c'était très clair, je voudrai en gros qu'avec 1 commande, 1 messages sur les 5 possibles aléatoirement POP.

Merci de votre aide :

        if(jobs == "Boulanger"){
            const exampleEmbed = new discord.MessageEmbed()
            .setColor('#00788C')
            .setAuthor('✦ Menu du Boulanger ✦', '')
            .setDescription('')
            .setThumbnail('')
            .setTimestamp()
            .setFooter('Some footer text here', '');
    
            
            msg.channel.send(exampleEmbed);
         }```
oak turret
#

salut

#

bah déjà il faut que tu créer tes embeds

broken sierra
#

Ils sont fais, la j'ai viré le contenu de base,

#

Mais ils sont fonctionnels,

#

Par exemple, mon code donne cela et detecte déjà le job boulanger plus haut, c'est pas le soucis. L'idée c'est surtout de réussir à proposer 1 embed aléatoire parmis plusieurs possible en tapant /work

#

Quand je laisse les liens discord censure alors j'ai viré le contenu ^^

#

Merci de ton aide

keen narwhal
#

Je check ça quand je rentre chez moi @broken sierra

broken sierra
#

Merci @keen narwhal , j'ai du faire une erreur toute bête quelques part

oak turret
#

mh j'aurais dis de les faire en object, et de faire un math random sur l'object.keys[Math.floor(Math.random() * objectkeys.lengh)]

#

mais ça va te return un array avec toutes les values

#

donc c'est pas ça

#

tripoter les méthodes des objets pourrait marcher, j'ai pas + regarder que ça

broken sierra
#

Humm, tripoter je sais faire, mais pas dans le code. Jsuis trop novice RIP

broken sierra
#

J'ai fini par trouver, merci de votre aide 🙂

cyan iron
#

Ô membres de GCA, j'ai besoin de votre aide. Est-ce que vous pouvez svp me dire comment envoyer un webhook avec nodejs en utilisant fetch

fetch(`https://discordapp.com/api/webhooks/${webhook.id}/${webhook.token}`, {
        method:"POST",
        content : "TEST ICI",
        payload : JSON.stringify({
            content :"Ceci est un test"
        })
    })

Je suis complet bloqué ! La doc : https://discord.com/developers/docs/resources/webhook#execute-webhook

Discord Developer Portal

Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.

#

Merci <3

hybrid berry
cyan iron
#

Parceque je suis sur express ^^

#

C'est pas un bot c'est un dashboard

hybrid berry
#

bah tant que t'as method est en Post c'est bon normalement

cyan iron
#

ça work pas là xd

blazing wadi
#

Hello 👋 ! J'ai une question savez-vous comment je peux faire pour pouvoir mettre ça

{"id":"740907498206134333":{"state":true}} ```
pour le moment j'ai ça 
```json
{"740907498206134333":{"state":true}} ```
```js
if (!antilink[guilds]) {
            antilink[guilds] = {
                id: guilds,
                state: true
            }```
 Et j'ai ça comme code
js
cyan iron
ancient sonnetBOT
#
Citation de Wailrone™0666 posté dans javascript

Cliquez sur [📝](#javascript-typescript message) pour accéder au message
Ô membres de GCA, j'ai besoin de votre aide. Est-ce que vous pouvez svp me dire comment envoyer un webhook avec nodejs en utilisant fetch

fetch(`https://discordapp.com/api/webhooks/${webhook.id}/${webhook.token}`, {
        method:"POST",
        content : "TEST ICI",
        payload : JSON.stringify({
            content :"Ceci est un test"
        })
    })

Je suis complet bloqué ! La doc : https://discord.com/developers/docs/resources/webhook#execute-webhook

cyan iron
#

aled

cyan iron
slim anvil
#

change payload par body

#

@cyan iron

#

et tu peux virer le content après method

cyan iron
#

roh si ça marche :o

#

Je teste après

slim anvil
#

set tes headers content-type en application/json

#

et surtout catch l'erreur je suis sur que c'est ce que tu envoies qui est pas bon

cyan iron
#

Ok ça work ! Merci !

#

<3

keen narwhal
#
object.onfocusout = function(){myScript};
cyan iron
#

?

urban stream
#

Hello à tous,

Je voulais savoir... est-ce que quelqu'un ici s'y connait en ParcelJS ? Car j'aimerais faire en sorte qu'il ignore certains fichiers (ou du moins certains types de fichiers*), mais je ne trouve que des réponses plus ou moins bancales sur internet... ce qui ne m'aide pas forcément. Du coup si une âme charitable par ici passe dans le coin, voit mon message, et décide de m'aider/m'orienter... c'est avec plaisir!

(si jamais: j'aimerais faire en sorte qu'il ne bundle pas mes images)

#

Et j'ai également tenté de vérifier s'il n'y avait pas de fichier de config autre que par le package.json tel que webpack, mais apparemment, non... sauf si j'ai mal fait mes recherches.

boreal edge
#

Yop !
Est ce que vous savez comment je peux récupérer l'identifiant de l'émoji (resolveIdentifier) depuis son nom ? (genre (flag_fr)

oak turret
#

tu peux faire un truc ouais

#

je pense que tu peux faire

#

ouais non ça pu

lone flax
#
const emoji = client.emojis.find(emoji => emoji.name === "name");
console.log(emoji.id);
#

Un truc comme ça non?

oak turret
#

ouaios

#

ça pourrait

boreal edge
#

client.emojis c'est sur des émojis des guilds (privés)

#

Le problème c'est que moi je cherche les émojis classiques, pars défault

oak turret
#

ouais bah alors

lone flax
#

C'est sûr les émojis du bot

oak turret
#

faut que tu fasses un truc à l'arrache

lone flax
#

pas d'une guild

oak turret
#

mais test quand même

lone flax
#

client c'est ton bot, pas ta guild

boreal edge
lone flax
#

donc à priori c'est tous les émojis du bot

oak turret
#

oui, c'ce que je pensais

boreal edge
oak turret
#

oui

boreal edge
lone flax
#

Ouais tous les émojis custom que le bot a

oak turret
#

look

#

\🇫🇷

#

merde

lone flax
#

\🇫🇷

#

ah ouais

oak turret
#

ouais donc

#

faut faire un truc à l'arrache

#

en premier

#

tu prends le nom

#

tu replaces les : par ""

#

tu get la size

lone flax
#

En fait pourquoi tu veux l'ID ?

oak turret
#

et après tu fais :nom:

#

ça va te return l'id

#

et là t'as qu'à substr()

lone flax
#

C'est du dev de merde ça

boreal edge
#

Bah déjà au moins juste checker si il existe

lone flax
#

C'est du bidouillage

oak turret
#

tu veux faire comment ?

#

j'ai pas d'autres soluces sinon mdr

lone flax
#

Mais si c'est un émoji de base il existe

#

Donc tu as pas à le verifier

boreal edge
#

Oui mais non

oak turret
#

bah apparemment ça marche pas la manière classique

boreal edge
#

Car là c'est pour un système de language, et si jamais le dimunitif Discord le trouve pas

#

ça va être le bordel

oak turret
#

\😄

#

ouais non

lone flax
#

Comment ça le trouve pas

boreal edge
#

C'est vraiment nul ceci dit les émojis de Discord, c'est un bordel

oak turret
#

attend

#

peut-être

#

ouais non c'l'id du message qu'il va te sortir

boreal edge
#

Imaginons :
Le gars fais ça avec rf au lieu de faire fr donc lui va le traduire en :flag_rf: pour l'émoji alors qu'il existe pas

lone flax
#

Mais c'est un système de réaction ou il doit envoyer dans le chat?

boreal edge
#

La config se fait dans le tchat

#

Après le reste c'est du react

lone flax
#

Bah

#

Un émoji sur discord

#

Il va pas être traduit comme :emoji_name:

#

Ca va être pris comme du unicode j'pense

boreal edge
#

!lang fr --> ça rajoute la langue fr

#

UN truc dans ce style

boreal edge
lone flax
#

Donc tu vérifies si c'est du unicode

#

Si il met autre chose ça sera du texte

#

:caca:

oak turret
#

moi c'que je faisais c'le convertir en unicode

boreal edge
#

En vrai ouais j'peux faireça

lone flax
#

Bah oui

oak turret
#
  • simple
lone flax
#

Utilise ce que Discord te met à disposition ^^

boreal edge
#

Mais comment tu veux récupérer l'unicode si l'émoji n'est pas send ?

oak turret
#

il à qu'à le send ?

boreal edge
#

Ouais mais j'essayer de trouver un truc pour éviter ça justement x)

lone flax
#

Mais je pige pas le mec il doit envoyer un émoji ou pas finalement ?

oak turret
#

mais attend

#

si le mec réact au message t'auras l'id de l'émoji ?

boreal edge
#

Quand tu config le truc, tu mets juste le diminutif de langue et après lui le converti en émoji pour que tu puisses react sur l'embed et choisir ce que tu veux

oak turret
#

bah voilà

#

t'as qu'à check là directement

lone flax
#

Bah si tu réagis avec un truc qui existe pas ça va juste te faire une erreur et osef

#

tu catch l'erreur

#

et tu fais rien

boreal edge
#

ouais au pire

lone flax
#

Et si ça catch une erreur c'est que le mec a mis un language qui existe pas

#

Donc tu réagis en conséquence

boreal edge
#

J'vais faire ça

#

Thx

#

J'viens de faire un autre test

#

Et du coup, le soucis reviens en quelque sorte

#

Sur un messageReactionAdd, tu peux pas get le nom de l'émoji si c'est un émoji basique

#

Donc du coup je vais pas pouvoir get la langue en fonction de l'émoji suefort

lone flax
#

Qu'est-ce que tu me baraguines

#

Je l'ai fais pour mon discord Wasied

boreal edge
#

Comment ta get le nom de l'émoji ?

#

Sans passer par le resolveIdentifier du coup

lone flax
boreal edge
#

lone flax
#

Ca retourne ça ?

boreal edge
#

yep

#

( react.emoji.name )

lone flax
#

Montre le code

boreal edge
#
module.exports.callback = function(client, react, user) {

    console.log(react.emoji.name);
}
lone flax
#

et là où tu appelles le callback

boreal edge
#

Dans mon client.on messageReactionAdd

lone flax
#

react c'est le premier argument de l'event ?

boreal edge
#

yep

lone flax
#

print react.emoji juste voir

#

moi je l'ai fais sur mon discord ça marchait

#

mais je le faisais direct via l'émoji

#

genre je mettais l'émoji dans la config

boreal edge
#
ReactionEmoji {
  animated: undefined,
  name: '�',
  id: null,
  deleted: false,
  reaction: MessageReaction {
    message: Message {
    },
      users: ReactionUserManager {
      cacheType: [class Collection extends Collection],
      cache: [Collection [Map]],
      reaction: [Circular]
    },
    _emoji: [Circular],
    count: 1,
    me: false
  }```
lone flax
#

id == null il y a un problème là

boreal edge
#

Yep mais j'vois pas d'où

#

J'comprends pas parce que même pour la doc ça devrait être bon

lone flax
#

Fais du Lua c'est plus simple

boreal edge
#

xD

#

react.message.reply(JSON.parse(react.emoji));

#
undefined:1
�👀
^

SyntaxError: Unexpected token � in JSON at position 0
#

Donc ça veut bien dire qui trouve l'émoji

#

Ceci dit là j'suis bloquer, appart faire une méthode avec un grosse table qui contient tout

#

J'vois pas comment je peux faire

lone flax
#

Fais un système de réactions avec tous les émojis de drapeau que tu lies dans la config, c'est 4x plus simple

#

et plus efficace

inner escarp
lone flax
#

"Personne qui professe que ce qui n'est pas expérimental, que l'absolu, est inconnaissable ; sceptique en matière de métaphysique et de religion."

#

Ouais je suis pas agnostique à mon avis

timid loom
#

t'as rien compris toi

lone flax
#

Bah non du coup lul

timid loom
#

agnostique c'est pour un programme indépendant d'une plateforme

inner escarp
#

Je n'ai jamais utilisé Discord JS mais il doit déjà y avoir une table dans ce genre dans le framework donc ça ne sert a rien de la recréer ( après je devrais peut être me taire vu que je ne l'utilise pas 😉 )

lone flax
#

Je ne dis pas de recréer une table, juste d'indiquer dans la configuration les languages qui sont disponibles sur le bot (fr, en) et les lier à un émoji drapeau du pays

#

Et faire une boucle sur cette table pour ajouter des disponibilités de réactions

#

C'est d'autant plus facile et efficace pour le client qui voit toutes les possibilités de language

timid loom
lone flax
#

Question de facilité pour le client

#

Mais ouais

inner escarp
inner escarp
timid loom
#

le but c'est de rendre son code le plus indépendant de l'implémentation réelle possible

#

souvent parce qu'on ne connaît pas l'implémentation réelle

#

tout ce que ça demandera après c'est de réaliser quelques modifications pour le rendre utilisable

full scaffold
#

Salut salut, j'ai un soucis avec mon switch et je comprends vraiment pas pourquoi

console.log(order, order == 1);
        switch (order) {
            case 1: // A to Z
                console.log("a à z");
                this.currentProducts.sort(function(a, b) {
                    let res = this.compareNames(a, b);
                    return res;
                });
                break;
        
            case 2: // Z to A
                console.log("a à z");
                this.currentProducts.sort(function(a, b) {
                    let res = this.compareNames(a, b);
                    return res;
                });
                break;
            default:
                console.log("Rien");
                break;
        }

ça print dans l'ordre :
1 true
Rien

Alors que là selon moi c'est censé rentré dans le case 1

inner escarp
#

alors

timid loom
#

mets order === 1

#

plutôt que ==

inner escarp
#

Normalement un switch (case) on doit le faire avec une condition

full scaffold
#

Ah

timid loom
#

là tu fais de la coercion de type

#

et pour le problème que tu as ça me paraît bizarre

#

order est bien un number?

full scaffold
#

C'est une value d'un élement option

timid loom
#

alors c'est un string

full scaffold
#

Ducoup j'ai changé le 1 et "1" et le 2 en "2"

timid loom
#

parseInt dessus et c'est bon

full scaffold
#

et ça marche

timid loom
#

sinon tu peux faire '1' et '2'

#

ouais voilà

full scaffold
#

J'ai fais ça

#

Je suis bloqué depuis tt à l'heure dessus mpaz_gehh aUZQER EG

timid loom
#

tkt c'est ces erreurs là qui bloquent le plus longtemps

full scaffold
#

Oui

inner escarp
full scaffold
#

J'ai eu ça aussi y'a 1/2 heures

inner escarp
#

x)

#

Pour ton problème, tu devrais test que la variable qui arrive en argument soit bien du type auquel tu t'attends ( Je sais plus si c'est getType() ou var.constructor.name )

full scaffold
#

Nan mais c'est toujours une string

inner escarp
#

Tu ne devrais pas mettre un string qui pourrait être compris comme un nombre alors c'est pas très facile de comprendre et d'ailleurs la VM s'attendait à un nombre

#

Genre plutôt que 1 tu devrais mettre 'case1' ou 'product1'

full scaffold
#

Ok je vais mettre quelque chose de plus évident

timid loom
#

quitte à avoir un string tu devrais mettre asc et desc vu qu'il s'agit d'un ordre

#

ou a_to_z et z_to_a

full scaffold
#

J'ai mis a_z et z_a

timid loom
#

ouais voilà pas mal
le code est fait pour être compris par les humains, sinon on écrirait tout en binaire ça irait plus vite pour le compilo

full scaffold
#

Oui

#

J'ai un nouveau problème

timid loom
#

donc faut chercher à être le plus clair possible en toute circonstance

#

oula

full scaffold
#

Apparemment ceci n'est pas une fonction

compareNames(obj1, obj2) {
        let object1 = obj1["name"].toLowerCase()
        let object2 = obj2["name"].toLowerCase()

        if (object1 < object2) {
            return -1
        } else if (object1 > object2) {
            return 1
        }
        return 0
    }```
timid loom
#

là tu mets pas function devant donc non en effet

full scaffold
#

Genre je l'appelle avec this.compareNames(mavar1, mavar2); et

#

C'est dans un objet c'est bon normalement

timid loom
#

ah

#

euhhh

#

je crois que ça peut fonctionner oui

full scaffold
timid loom
#

mais bon à la limite si c'est dans un objet et que ça marche pas tu peux en faire une fonction anonyme du style

{
  compareNames: function(obj1, obj2) {
    //...
  },
}
#

mais t'es sûr que this fait bien référence à l'objet?

full scaffold
#

Pourtant la fonction éxiste bien

full scaffold
timid loom
#

si c'est dans une function, this fera référence à la fonction elle-même

full scaffold
#

Perte de contexte ducoup merde

timid loom
#

pour ne pas avoir ce problème tu dois utiliser une fonction fléchée ou utiliser une autre variable

full scaffold
#

Ducoup je déclare une variable qui fait office de this

timid loom
#

l'idéal c'est la fonction fléchée si tu peux l'utiliser

full scaffold
#

C'est à dire ?

this.currentProducts.sort(function (a, b) {
                    /*
                    let res = this.compareNames(a, b);
                    console.log(res);
                    return res;
                    */
                    console.log(tempThis);
                    return tempThis.compareNames(a, b);
                });```
#

Discord qui mange mes tabulations

#

Une fonction anonyme tu veux dire ?

timid loom
#
                this.currentProducts.sort((a, b) => {
                    /*
                    let res = this.compareNames(a, b);
                    console.log(res);
                    return res;
                    */
                    console.log(tempThis);
                    return tempThis.compareNames(a, b);
                });
#

dans tous les cas c'est anonyme

full scaffold
#

Ok j'étais entrain de faire ça

timid loom
#

que ce soit une function ou une fonction fléchée

full scaffold
#

Oui

#

J'ai viré le this temporaire ducoup

#

ça fonctionne

timid loom
#

anonyme c'est une fonction que tu ne déclare pas comme ça :

function namedFunction() { ... }

// fonction anonyme
let myFunc = function() { ... }

// fonction anonyme
let myFunc = () => { ... }
full scaffold
timid loom
#

la fonction anonyme c'est l'expression que tu viens assigner à ta variable myFunc dans mon exemple

full scaffold
#

Oui

timid loom
#

donc ta façon de déclarer la fonction au début était bonne, c'était le contexte dans lequel tu l'appelais qui était mauvais

full scaffold
#

Oui

timid loom
#

plus exactement le type de fonction que tu faisais était une method

#

donc le this que tu peux utiliser dedans fait référence à l'objet qui la contient

full scaffold
#

Oui

#

En l'occurrence c'était la fonction et ducoup on avait une perte de contexte

keen narwhal
#

Soit tu utilises les arrow functions ou tu utilises la méthode bind

keen narwhal
#

Salut les gens, j'ai besoin de vous car j'ai un module qui est mort j'ai l'impression : ```internal/modules/cjs/loader.js:1154
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: C:\Users\bukom\Desktop\Atomic\node_modules\parse-ms\index.js
require() of ES modules is not supported.
require() of C:\Users\bukom\Desktop\Atomic\node_modules\parse-ms\index.js from C:\Users\bukom\Desktop\Atomic\Commands\Economy\beg.js is an ES module file as it is a .js file whose near
est parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from C:\Users\bukom\Desktop\Atomic\node_modules\parse-ms\package.json.

at Object.Module._extensions..js (internal/modules/cjs/loader.js:1154:13)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (C:\Users\bukom\Desktop\Atomic\Commands\Economy\beg.js:2:12)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14) {

code: 'ERR_REQUIRE_ESM'
}

#

Il me met ça comme erreur

keen narwhal
#

j'ai une question , comment je fais pour faire en sorte que mon bot envoie un message toute les 5minutes ?

#

Je crois que c'est ça

#

ok merci

frosty idol
#

Hello

#

j'ai une erreur avec un bot sur la lib discordjs. Je créer un message de "purge" et tout fonctionne mais j'ai une erreur qui me perturbe^^

#

Pourtant les messages se suppriment bien 🤔

#
client.on('message', message => {
    if(message.content.startsWith(`${config.prefix}clear`)){
        if(message.member.hasPermission('MANAGE_MESSAGES')){

            let args = message.content.trim().split(/ +/g);

            if(args[1]){
                if(!isNaN(args[1]) && args[1] >= 1 && args[1] <= 99){
                    message.channel.bulkDelete(args[1])
                    message.channel.bulkDelete(1)
                }
                else{
                    message.channel.send('Vous devez infiquer une valeur entre 1 et 99 !')
                };
            }
            else{
                message.channel.send('Vous devez indiquer un nombre de message à supprimer !')
            };
        }
        else{
            message.channel.send('Permission requise !')
        };
    }
});
#

J'utilise la V12

keen narwhal
#

.catch(console.error);

keen narwhal
frosty idol
#

D'accord, je vais faire un catch merci

spring dock
#

Je pense que le soucis viens de ton deuxième bulkDelete tiltowo

bitter summit
#

salut question simple mais vu que je débute comment on fait pour mentionner un utilisateur svp ?

oak turret
#

dans quel cas

bitter summit
#

lorsque une personne fait une commande

bitter summit
#

non c'est bon je viens de trouver

#

merci de ta réponse quand même

full scaffold
broken sierra
#
  • Bonjour à tous, j'ai une question très bête.
    ** Comment puis-je incruster manuellement l'ID d'un client sur chaque embed ?**
    (par exemple je décide de faire en embed et le citer dedans en y ajoutant sont ID, y a t'il une méthode simple ?)
queen ocean
broken sierra
#

Non l'ID du gars, genre comme un reply un truc du genre.
Je voudrai en fait le citer comme "auteur". Ralala dur à expliquer.

Par exemple, sur ce discord je fais @broken sierra , comme je suis présent je suis PING. Si je n'étais plus sur le discord ça mettrai @45546512124242542

#

Je voudrai pouvoir intégrer le @broken sierra , suivant mon choix dans un embed.

#

J'ai juste besoin de faire <@193830660991877120 > dans mon message direct ? J'ai pas pensé, je vais tester cette technique lol

#

AH BHA OUI jsuis con

#

ça fonctionne niquel cette technique T-T

#

@queen ocean Merci, grâce à toi j'ai réfléchis et trouvé la solution. x)

queen ocean
#

👌

naive schooner
#

@queen ocean Comment on est dev vérifié ? 🙂

oak turret
#

yop all, dites moi créer une api avec express pour faire un système de votes like topserveurs est okay ? en mode une route « /vote/guild_id », va chercher en bdd si l’id existe si oui ça fait +1 genre et après avec l’api avec un bot ça fait pareil ?

#

si vous avez des conseils je suis preneur

spring dock
#

oui tu peux faire avec express

#

Mais c'est pour faire quoi concrètemetn?

#

un site de référencement?

oak turret
#

là juste pour m’exercer mais oui faire un topserveur like tu vois juste pour m’exercer avec la création d’api et l’use avec un bot ou quoi

spring dock
#

ok ok

oak turret
#

en tout cas merci bob 👌🏻

oak turret
#

Hello, vous savez comment bypass le res.send de base d'express-rate-limit ?

#

car du coup je peux pas mettre à quelle date le mec peut refaire une requête

cyan iron
#

J'ai appris à utiliser express il y a à peine une semaine, donc désolé si je suis un petit mongole, mais j'ai pas compris ton problème kappo

oak turret
#

en gros

#

mon package set un message au status 429

#

mais le message je peux le personaliser si je rajoute l'option "message" dans mon object de ma const createAccount, hors dans ce message je ne peux inclure aucune variable vu qu'elle est au-dessus, hors dans mon cas je veux inclure la date à laquelle l'user peut refaire un vote, mais mon res.send() n'est pas prit en compte car celui du package le bypass

#

et je ne sais pas comment faire pour qu'il ne le sois pas justement :p

cyan iron
#

j'ai pas le level

slim anvil
#

dans tes options tu peux ajouter un handler et dedans récupérer certaines valeurs

#

dans la doc

cyan iron
#

mais où s'arrête le savoir d'Enzo kappo

slim anvil
#

à la doc du coup

oak turret
#

ça je l'ai vu, mais je comprends pas ce que tu veux me dire ?

#

comment je pourrais faire du coup dans mon cas ,

#

?

oak turret
#

okay j'ai compris

#

soluce j'ai pas réfléchi sur le coup mdr

slim anvil
oak turret
golden aurora
#

Salut !
J'ai un petit problème, je me mets à un bot discord, mais quand j'essaie de restreindre les permissions d'un channel, il me dit que l'id du membre ( le event.d.member.user.id) n'est ni un utilisateur, ni un role...
Voici mon code:

const newChannel = idOfEmbedCommandCreator.guild.channels.create(`commande de ${user.username}`,{
                type:"text",
                permissionOverwrites: [
                    {
                        id: event.d.member.user.id,
                        allow: ['VIEW_CHANNEL', 'SEND_MESSAGES']
                    },
                    {
                        id: idOfEmbedCommandCreator.guild.roles.everyone,
                        deny: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY']
                    }
                ],
                
            });
            

( J'ai essayé de log event.d.member.user.id, le résultat est correct )
Voici l'erreur:

Merci d'avance !

slim anvil
#

Par contre je l'aurai pas géré comme ça a ta place Lartaxx

#

Car si ton serveur restart je pense que ton rate limit est reset

oak turret
#

comment l'aurais-tu fais ?

#

yep

#

tout à fait

slim anvil
#

Tu devrais juste save les users et sauvegarder la date du dernier vote et puis voilà

#

Et tu te fais un middleware qui va venir déjà checker si il peut y accéder ou non

oak turret
#

pas bête, je vais faire ça, merci à toi et bonne soirée !

hazy mirage
oak turret
#

à quoi correspondent tes valeurs ?

hazy mirage
#

Pour être sûr, juste au dessus de ça n'hésite pas a console.log ces deux variables

golden aurora
#

Je fais ça dessuite^^

oak turret
#

montre ton code un peu plus haut qu'on comprenne un peu plus le contexte

golden aurora
#

Mais quand je teste avec moi, ça marche

#

et eux n'ont pas de roles

hazy mirage
#

Bah voilà KappaShrug1

golden aurora
#

c'est ça le pb tu pense?

#

okkkkkk

#

thanks

hazy mirage
oak turret
#

roh

golden aurora
#

xd

hazy mirage
#

D'ailleurs attend

#

Je vais vérifier un truc

golden aurora
#

oki

hazy mirage
#

ouais non c'est bien ça tkt

golden aurora
#

oki merci à vous les boiii

hearty wedge
#

Hello, il y a un moyen de detecter avec un bot, si un utilisateur envoit ca ? me ping

cyan iron
#

c'est un lien j'imagine non ?

#

tu peux edit ton msg pour voir si c'est un lien pls ?

hearty wedge
#

ok

#

je pense aussi que c'est un lien meme si dans l'inspecteur j'ai rien trouver

cyan iron
#

ah fuck c'est pas un lien

#

j'en sais rien du coup désolé :/

hearty wedge
#

yep ce n'est pas un lien

oak turret
#

j’crois pas qu’on puisse le get alors

cyan iron
#

Regarde sur google peut être

oak turret
#

au pird get le message avec l’id

timid loom
#

c'est sans doute un embed

cyan iron
hearty wedge
oak turret
#

et regarde ce qu’il te return

cyan iron
hearty wedge
oak turret
#

oui

cyan iron
hearty wedge
cyan iron
#

Je reviens je vais try

oak turret
#

mais pour le détecter déjà voir ce qu’il te return

#

si c’est un embed tu pourras le détecter via son nom ou autre

hearty wedge
#

sinon on peut utiliser selenium mais faudrai edge ou chrome d'installer sur mon hebergeur...

oak turret
#

attend de voir ce que wailrone va te dire

cyan iron
#

attachments vide

#

ah mais attends ma session d'écoute est terminée c'est peut être pour ça

hearty wedge
#

yep

cyan iron
#

Non c'est vide de chez vide

#

les embeds aussi visiblement

oak turret
#

ouais donc tu ne peux pas le savoir donc

cyan iron
#

AH ATTENDS

#

activity

oak turret
#

peut-être à la prochaine version de djs

cyan iron
#

2s

#

YES

#

Dans activity y'a un truc

#

a-ha !

#

Tu veux faire quoi exactement avec ça @hearty wedge ?

oak turret
#

parfait

#

tu peux le faire alors

cyan iron
#

SI c'est le détecter, bah voilà

oak turret
#

yep

hearty wedge
cyan iron
#

Mais si tu veux la musique etc je pense pas que ça soit possible

cyan iron
oak turret
#

verif bien que t’as ton .activity et .partyID et qu’il commence bien par spotify

#

au cas-où

cyan iron
hearty wedge
oak turret
#

j’en sais rien

#

le partyID au moins t’es sûr que c’est spotify si ça commence par spotify

#

m’enfin

#

np

cyan iron
#
if (message.activity?.partyID?.startsWith('spotify')) {
    // TU FAIS CE QUE TU VEUX 
}
#

V'la normalement ça work

hearty wedge
#

ca ca fonctionne

cyan iron
#

héhé nice

hearty wedge
#

merci bcp !

oak turret
#

👌🏻

hearty wedge
#

comment tu as fais pour avoir id 3 ?

cyan iron
#

ça sert à rien tkt t'as déjà ce qu'il faut

oak turret
#

console.log(message.activity?.type)

hearty wedge
#

pour apprendre

cyan iron
#

yep

#

C'est le type qui est à 3

#

Je pense qu'il doit y avoir les invitations à un jeu, à écouter de la musique, et sûrement les gifts

oak turret
#

yep

cyan iron
#

ah non vu qu'un gift c'est un link

oak turret
#

ouaip

cyan iron
#

je connais pas les 3 types, mais normalement il doit aussi y avoir un type 0

#

Donc 4 types 🤔

timid loom
hearty wedge
#

interessant

keen narwhal
#

Est-ce possible de mélanger du js et du py avec un handler ?

cyan iron
#

Alors, tu peux j'imagine mais, c'est satan de faire ça non ?

keen narwhal
#

Un peu

#

Mais si t’as pas le choix 😂😂

cyan iron
#

Quel est l'objectif je comprends pas

oak turret
#

🤔

cyan iron
#

@keen narwhal

golden aurora
#

Salut !
Alors, je reviens encore pour le même problème, après réflexion, j'ai vu que les restrictions d'écrire et de voir le channel n'étaient toujours pas établies et la même erreur revient: ```javascript
Supplied parameter is not a User nor a Role

Voici mon code: 
```javascript
console.log(event.d.user_id);
            console.log(idOfEmbedCommandCreator.guild.roles.everyone.id);
            const newChannel = idOfEmbedCommandCreator.guild.channels.create(`channel de ${user.username}`,{
                type:"text",
                permissionOverwrites: [
                    {
                        id: event.d.user_id,
                        allow: ['VIEW_CHANNEL', 'SEND_MESSAGES']
                    },
                    {
                        id: idOfEmbedCommandCreator.guild.roles.everyone.id,
                        deny: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY']
                    }
                ], 
            });

La console me log bien les deux id ( everyone et le membre qui a réagit )
Merci d'avance !

tough lily
#

Bonjour, j'ai regardé une vidéo ytb pour pouvoi mettre une musique en pause
mais j'ai une erreur

keen narwhal
#

server n’est pas définit

finite verge
#

faites du code smart

#

(écrit en OCaml les gars :p)

slim anvil
#

ca fait le taff aussi kapp

finite verge
#

ué mais c'est pas écrit en ocaml

slim anvil
#

je pense que tu cherches la bagarre

keen narwhal
#

🥲

slim anvil
#

Et en quoi du coup

keen narwhal
slim anvil
keen narwhal
#

J'ai pas vu une seule offre d'emploi qui demandes des connaissances en Flow contrairement a Typescript qui est bien plus populaire et adopté ! kapp

slim anvil
#

Y en a quelques une, mais généralement c'est écrit "Typescript ou Flow"

#

Mais ca reste assez rare ouais car c'est de la merde

#

Euh pardon nul

#

Euh pardon pas utilisé kappa

keen narwhal
#

xDD

keen narwhal
#

D'ailleurs j'aimerais poser une questions qui paraît con. Mais si je fais un projet Nest.js (en typescript donc) est-ce que je peux prétendre me présenter à l'évaluation Javascript ? Ou alors faudrait faire une éval spéciale typescript ?

#

Typescript, javascript, au final l'un est compilé vers l'autre donc bon

#

Oui mais je suis pas sûr

#

ça doit passer IMO

#

Ce serait tout à fait possible que l'évaluateur ne fasses pas de Typescript étant donné qu'il est évaluateur Javascript

#

Et TS ça rajoute plein de fonctionnalités qui ne sont pas présentes dans Javascript de façon native (Decorators, Generics...)

#

ça doit passer IMO

#

j'peux pas dire plus tho

#

¯_(ツ)_/¯

#

tente

slim anvil
#

Oui Wrecker

keen narwhal
#

Ah bah niquel j'ai la confirmation

#

Merci

regal spire
#

Salut je cherche des builder pour un MMORPG minecraft java si sa intéresse quelqu'un venir en mp

Des compétition peuvent être organisées

keen narwhal
#

@regal spire

regal spire
#

Oui

#

Quoi

keen narwhal
#
keen narwhal
hearty wedge
#

Java ≠ Javascript

cyan iron
#

Non c'est interdit

oak turret
#

quelle question

#

bien sûr

#

t’as pas à demander 🙂

#

on est là pour aider si besoin

hearty wedge
#

hello

#

pourquoi le footer n'apprait pas ?

#
const embeds = [
    { color: '#d7342a', description: "__**Dans tout le serveur :**__\n Le respect est la première chose à retenir et à appliquer ! \nSans ça, le serveur ne peut fonctionner. \nVeuillez noter aussi que l’équipe du staff peut vous appliquer des sanctions et que si celles ci sont trop nombreuses, ils se réserveront le droit de vous bannir.", footer: "Page 1/3" },

    { color: '#d7342a', description: "__**Partie graphisme :**__ \n Veuillez ne pas critiquer une création de manière gratuite, le but étant de s’entraider, et non de tirer vers le bas ! \nSi vous ne donnez pas d'avis, à quoi bon en donné un ?\n Rappel que le terme « GFX » définit un effet graphique, un fichier.png et non un graphiste !", footer: "Page 2/3" },

    { color: '#d7342a', description: "__**Finisialitation**__ \nSi vous rencontrez des problèmes avec quiconque étant présent dans le staff : soit un réel membre ou un bot, veuillez envoyer un message au staff via le Bot de Support en message privé. \nNous sommes ravis de vous venir en aide !", footer: "Page 3/3" },
]```
keen igloo
#

Tu n'as pas d'erreur dans ta console ? @hearty wedge

hearty wedge
#

Nop aucune

#

@keen igloo

keen igloo
#

Ah bah je ne saurais t'aider 😦

hearty wedge
#

ok

slim anvil
#

footer c'est un objet avec text dedans et icon_url

oak turret
#
footer: {
  text: "",
  icon_url: ""
}
cyan iron
#

Pourquoi ils sont comme ça tes embeds c'est illisible ;-;

hearty wedge
#

je prefers

#

c'est juste pour les msg react

hearty wedge
#

Hello, je me demandais si c'est possible que un bot puisse stream une video youtube dans un channel ?

timid loom
#

non, juste le son

little zealot
#

Techniquement, si l'API le permet à un client, elle devrait le permettre à un bot (c'est exactement la même API pour les deux au cas où)
Cependant Discord à volontairement pas/très peu documenté certaines features de leur api, pour empêcher les devs d'un peu abuser

#

(streamer une vidéo, c'est ptn de lourd pour une api lol)

timid loom
#

bah c'est surtout que je crois que les bots ne sont pas autorisés à streamer (le fameux Go Live) sur l'api, de la même manière qu'ils ne peuvent pas par exemple ajouter des utilisateurs en ami

#

au-delà d'un manque de documentation c'est carrément pas autorisé en fait

little zealot
#

afaik je crois qu'avec un peu de fouille c'est possible, mais je me trompes sûrement

timid loom
#

bah c'est sans doute possible mais ça va certainement en dehors de ce que discord autorise aux bots

#

dans tous les cas c'est pas une bonne idée

little zealot
#

Ouais c'est sur xd

keen narwhal
#

Et ça poserait un très gros problème de bande passante

broken sierra
#
  • Hello l'équipe, dites voir, il y a quelqu'un de caler ici pour m'expliquer comment récupérer les nombres de pouces en l'air et en bas pour les afficher dans mon embed ? Dois-je faire une base de données ? (par logique j'imagine que oui).
  • Merci d'aider cet incompétent de novice que je suis.
oak turret
#

salut, non la base de données n'a aucun rapport

#

il faut que tu get ton message

#

et ses réactions

#

t'auras dedans les émojis et un "count" à l'intérieur de chaque émoji

broken sierra
#

Mais si le messages est disponibles sur plusieurs discord, et que chaque discord peut voter. Je ne dois vraiment pas stocker ces infos quelques part pour les afficher ensuite ?

cyan iron
#

Hey, malheureusement tu vas aussi rencontrer un problème, si tu essayes de get ton message alors que ton bot a restart, ça ne vas pas fonctionner, alors soit à tu l'affiche à chaque réaction soit tu trouves une autre solution

broken sierra
#

Du genre Recommandé par xx personnes

oak turret
#

ah

cyan iron
oak turret
#

ouaip

cyan iron
#

Tient si tu veux

#

Après en JSON ça suffirait si c'est un event, mais franchement ça t'apprendra au moins à utiliser le SQL, plus t'apprends mieux c'est ;)

broken sierra
#

Ouai je vois le truc, .. Bon, je suis vachement novice la dessus, je vais aller chek le tuto pour le coup. Merci Waldrone et si une âme charitable a un peu de temps pour devenir mon mentor et m'apprendre la dessus je suis grave preneur :B

cyan iron
#

Bah moi, vu que c'est mon tuto, du coup reviens ici si t'as besoin d'aide :)

oak turret
#

pas de soucis pour t'aider 😉

broken sierra
#

C'est gentil, merci pour ta gentillesse mec, c'est cool. Je regarde ça

#

Merci les gars

cyan iron
#

de rien !

hybrid berry
keen narwhal
#

Bonjour j'ai un prb quand je fait !clear voici l'erreur

DiscordAPIError: Missing Permissions
oak turret
#

le grade de ton bot mets le plus haut

keen narwhal
#

merci

keen narwhal
#

Comment je fait pour mettre un émoji animé sur mon bot discord pour systeme de status

oak turret
#

<message>.guild.emojis.cache.get("id_de_l_emoji");

#

même si il est animé ça sera ok

keen narwhal
#

merci

burnt fractal
#

bonjour j'aurais besoin d'aide concernant un ptit problème
voila j'aimerais récupérer la valeur dans le cadre rouge pour ca j'ai fais response.current.weather_description[0] or ca me retourne " Uncaught (in promise) TypeError: Cannot read property '0' of undefined " donc je ne sais pas comment accéder a cette valeur

half osprey
burnt fractal
#

nope 😦

half osprey
#

et si tu enlèves le [0]

burnt fractal
#

bah enfait j'ai deja fait cette manip ca affiche bien le reste sauf la valeur visé s'affiche en undefined

half osprey
#

Je sais pas alors

burnt fractal
#

merci quand meme 🙂

oak turret
#

montre ta requête un peu mieux stp

#

.request.weather_descriptions[0]

#

@burnt fractal

burnt fractal
#
 <script>
            function getWeather(){
                var ville = document.getElementById("recherche").value;
                var unités = document.getElementById("unités").value;
                fetch("http://api.weatherstack.com/current?access_key=c38b6f4a3a5d207569d1ddd3e618ae05&query="+ville+"&units="+unités)
                .then(a =>a.json())
                .then(response =>{
                    document.getElementById("image").src=response.current.weather_icons;
                    document.getElementById("output").innerHTML="<h1>"+response.current.weather_description+
                    "</h1>Temperature: "+ response.current.temperature+
                    "<br> ressentie: " + response.current.feelslike+
                    "<br> Indice UV :" + response.current.uv_index+
                    "<br>Humidité: "+ response.current.humidity+
                    "<br> Couverture nuageuse:"+ response.current.cloudcover+
                    "<br> Heure d'observation :"+ response.current.observation_time;
                });
            }
oak turret
#

units c'est quoi ?

#

je vais faire la requête pour que ça sois plus lisible pour moi

#

oui ok

#

fr

burnt fractal
#

nope

oak turret
#

ah oui nion

#

metric

burnt fractal
#

units c'est concernant la temperature metric

oak turret
#

je mets quoi à units ?

#

metric ?

burnt fractal
#

oui

#

s'il te plait ^^

oak turret
#

marche pas xd

burnt fractal
#

normal je t'ai passé que le script

#

attend

#

XD

oak turret
#

oui ok

#

m

burnt fractal
#

je vais faire le changement moi meme et te re give

oak turret
#

voilà

#
{
    "request": {
        "type": "City",
        "query": "Paris, France",
        "language": "en",
        "unit": "m"
    },
    "location": {
        "name": "Paris",
        "country": "France",
        "region": "Ile-de-France",
        "lat": "48.867",
        "lon": "2.333",
        "timezone_id": "Europe/Paris",
        "localtime": "2021-04-27 17:10",
        "localtime_epoch": 1619543400,
        "utc_offset": "2.0"
    },
    "current": {
        "observation_time": "03:10 PM",
        "temperature": 19,
        "weather_code": 113,
        "weather_icons": [
            "https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0001_sunny.png"
        ],
        "weather_descriptions": [
            "Sunny"
        ],
        "wind_speed": 11,
        "wind_degree": 50,
        "wind_dir": "NE",
        "pressure": 1006,
        "precip": 0,
        "humidity": 28,
        "cloudcover": 0,
        "feelslike": 19,
        "uv_index": 5,
        "visibility": 10,
        "is_day": "yes"
    }
}
#

quand même beaucoup plus propre

burnt fractal
#

mais en fait je pense on va rester sur unités car j'ai fait un tru pour choisir celsius ou fahrenheit

oak turret
#

donc tu fais .request.current.weather_descriptions[0]

burnt fractal
#

ah oui ok la requete comme ca déso x)

#

j'avais pas compris dnans ce sens

#

oui ce que j'ai fait

#

ah request

oak turret
#

ah non

#

j'suis con

#

.current.weather_descriptions[0]

#

ça devrait te sortir Sunny

burnt fractal
#

ouais bah justement non c'est pour ca je demande de l'aide 🙂

oak turret
#

log ton .current

burnt fractal
#

ok att

#

j'ai un doute faut bine que je mette ca dans mon script console.log(response.current.weather_description);

oak turret
#

juste ton .current

#

response.current en l'occurrence

burnt fractal
#

pas l'air de marché a moins que je suis con x)

#

je l'ai mis en bas

#

mais ca m'affiche rien de plus que ce que j'avais avant

oak turret
#

t'as ta console ?

#

bon au pire attend, je vais te fix ça vite fait

#

je test moi

burnt fractal
#

tu veux tous le html ?

#

il est petit

oak turret
#

non tqt

#

oui ok

#

t'as oublié le s dans ton code

#

xd

#

weather_descriptions

burnt fractal
#

ah oui XDDD

#

comme quoi une erreur d'inatention peu bloqué pendant un moment

#

merci bcp

oak turret
#

pas de soucis

burnt fractal
oak turret
#

je suis en nodejs là donc node-fetch ( le package )

burnt fractal
#

ah ok ^^

golden aurora
#

Salut !
Alors, je reviens encore pour le même problème, après réflexion, j'ai vu que les restrictions d'écrire et de voir le channel n'étaient toujours pas établies et la même erreur revient: ```javascript
Supplied parameter is not a User nor a Role

Voici mon code: 
```javascript
console.log(event.d.user_id);
            console.log(idOfEmbedCommandCreator.guild.roles.everyone.id);
            const newChannel = idOfEmbedCommandCreator.guild.channels.create(`channel de ${user.username}`,{
                type:"text",
                permissionOverwrites: [
                    {
                        id: event.d.user_id,
                        allow: ['VIEW_CHANNEL', 'SEND_MESSAGES']
                    },
                    {
                        id: idOfEmbedCommandCreator.guild.roles.everyone.id,
                        deny: ['VIEW_CHANNEL', 'SEND_MESSAGES', 'READ_MESSAGE_HISTORY']
                    }
                ], 
            });

La console me log bien les deux id ( everyone et le membre qui a réagit )
Merci d'avance !

oak turret
#

c'un rôle event.d etc

#

?

golden aurora
#

en gros je suis dans un raw

#

et event c'est ce qui me permet d'avoir les infos sur la reaction

keen narwhal
#
client.on("guildMemberAdd", async member => {
  member.roles.add('834388097311572018');
  bdd["captcha"][member.id] = { "value": Math.floor(Math.random() * Math.floor(10000)), "statut": false }
  Savebdd();
  client.channels.cache.get('834347758621687828').send(`Bonjour ${member} ! Ton code de captcha est : ${bdd["captcha"][member.id]["value"]}`)
});

client.on('message', async message => {
  if(message.author.client || message.member.permissions.has('SEND_MESSAGES')) return;
  if(message.channel.id === "834347758621687828") {
      message.delete();
      if(!bdd["captcha"][message.member.id]["statut"]){
          if (isNaN(message.content)) {
              return message.channel.send('Tu dois indiquer la valeur de la captcha envoyée au dessus').then(message=> message.delete({timeout: 15000}));
          }
          else {
              if(message.content === bdd["captcha"][message.member.id]["value"]){
                  bdd["captcha"][message.member.id]["statut"] = true;
                  Savebdd();
                  message.member.roles.add('833388904471068712');

              }
              else{
                  return message.channel.send('Tu dois indiquer la valeur de la captcha envoyée au dessus').then(message=> message.delete({timeout: 15000}));
              }
          }
      }
  }
});

client.on('guildMemberRemove', async member => {
  delete bdd["captcha"][member.id]
  Savebdd();
})

le message s'envoie correctement avec le code aléatoire mais quand la personne effectue le code rien en se passe

bdd :

    "captcha": {
        "833289770641522688": {
            "value": 1672,
            "statut": false
        }
    }
boreal edge
#

Hello !

Je souhaite récupérer le nombre de personnes connectées sur un Discord spécifique.
Hors, le member.presence.status ne s'actualise JAMAIS (j'ai beau le forcer avec une request à l'API),c'est à dire que leur status est toujours égal à offline savez vous comment je peux faire ?
Merci d'avance 😉 !

bold sparrow
boreal edge
#

Yop
Peut être pas, je te tiens au courant, merci

steel summit
molten junco
#

Bonjour est-ce que quelqu'un connait le module gamedig ?

full scaffold
#

Oui c'est pas dur

keen narwhal
#

Hello les gars, j'ai un petit problème en essayant de faire un système pour avoir les stats covid xD, j'ai une erreur JSON qui pop sauf que j'arrive pas à la résoudre :

Voici le code en question :

const getByCountry = (country) => new Promise((resolve, reject) => {
    const selectedCountry = country && country.length > 0 ? country : '';
    const url = `${config.status}${selectedCountry}`;

    https.get(url, (res) => {
        let body = '';

        res.on('data', (chunk) => {
            body += chunk;
        });

        res.on('end', () => {
            try {
                const json = JSON.parse(body);
                if (json && json.error) return reject(json);
                return resolve(json);
            } catch (error) {
                return reject(error);
            }
        });
    })
        .on('error', (error) => reject(error));
});``` 


Et l'erreur en question : 

```shell
SyntaxError: Unexpected token < in JSON at position 0
full scaffold
#

Tu peux pas console.log le json avant l'erreur ?

keen narwhal
#

je vais try

#

Att

full scaffold
#

Tu utilises quelle api / site pour récupérer les données ? CovidTracker ?

keen narwhal
#

Ah bah j'ai trouve l'erreur faut changer d'api xD

full scaffold
#

yes

burnt fractal
#

salut j'ai un ptit probleme pour installer npm afin de pouvoir node.fetch mes données 😦

full scaffold
#

Quel est ton problème donc ?

burnt fractal
full scaffold
#

Le problème vient peut-être du module npm

burnt fractal
#

donc c'est pas de mon ressort ?

#

sinon personne n'aurait une alternative pour affiché la requête envoyer par une api comme le fait node.fetch ?

boreal edge
full scaffold
#

Nous disions

keen narwhal
#
Players: [<players>/<maxplayers>](discord)  Map: [<map>](discord) \nPing:  [<ping>](discord)```
full scaffold
#

Et tu veux faire quoi ?

keen narwhal
#

En gros regarde

#

le Player et Map est coller

full scaffold
#

Oui

keen narwhal
#

et je veut mettre un espace

full scaffold
#

bah " "

keen narwhal
#

Bah oui jchuit con

#

merci

burnt fractal
#

bon bah je viens de réussir concernant mon problème le seul soucis c'est que ma version gratuite de L'API me permet pas d'avoir la langue francaise PepeClown sadgun

#

donc j'ai passé littéralement toute une matinée et presque 1 heure a chercher a résoudre mon problème pour rien 🙂

bold sparrow
#

@burnt fractal tu peux faire les traductions toi même tqt

burnt fractal
bold sparrow
#

Même si tu replaces les résultats ?

burnt fractal
#

je peux pas touché aux données du tous seulement les récupérer

burnt fractal
bold sparrow
#

Il doit forcément y avoir un moyen de modifier les données

burnt fractal
#

je peux mettre des " + message " devant concernant les données genre temperature etc car ils les transmettent sous formes de Int / float etc mais ce que je peux pas changé c'est le nom du temps qu'il fait

#

et ca c'est la requete

bold sparrow
#

Dans tous les cas tu récupères uniquement les valeurs

#

Donc c’est good

burnt fractal
#

oui ca c'est pas le probleme moi ce qui m'embete c'est le nom c'est pour ca je voulais le mettre ne francais pour avoir ensoleillé a la place de sunny

#

car je suis en stage et la je fais un ptit truc météorologique que l'on intégrera dans de l'emailing sauf que du coup les clients sont francais

#

donc je vais pas leur transmettre un truc anglais

bold sparrow
#

Bah value.replace(String, newString)

#

Si vraiment tu y tiens à l’utiliser cette API

burnt fractal
bold sparrow
#

Ah bah ça ...

#

J’ai créé un module tu mets toutes les valeurs que tu veux remplacer

burnt fractal
#

voila ^^ pourquoi j'avais bsn de l'api fr mais du coup bah je vais soit changer d'api et tous recommencer ou je sais pas x)

bold sparrow
#

Si ça tinteressse et que tu te sens hot pour le faire

#

x)

burnt fractal
#

ouais on va voir x) car va falloir que je fasse une fonction qui chope la valeur ete s'y elle est egale a tel ca met ca x)

#

en plus la je me suis lancé dans changement de fond d'ecran en fonction du temps x) comme sur la meteo iphone

bold sparrow
#

Celle qui remplace

#

Et toc

#

Bon courage :p

bold sparrow
burnt fractal
bold sparrow
#

C’est juste un Booléen

#

if(value === « ») { \ }

burnt fractal
#

ouais je pensais faire un truc comme ca le probleme etant que je doit ressortir une image differente en fonction du temps

#

apres je peux faire masse de elif mais c'est pas opti quoi x)

bold sparrow
#

Tu peux faire un switch case

#

C’est plus propre

burnt fractal
#

oui 🙂

#

mais apres je vais quand meme essayer de faire une fonction qui me fasse ca

#

comme ca a mon compte rendu de stage ils seront tous pipo content car j'ai fait un truc "optimisé"

#

x)

bold sparrow
#

x)

burnt fractal
#

en tous merci d''avoir essayer de m'aider 🙂

#

pour ca j'adore ce serveur trop de gens gentils

burnt fractal
bold sparrow
#

Bien sûr

burnt fractal
#

pour obtenir la toute premiere valeur d'un element on peut faire ca ? " var nom = document.getElementById("output").value[0] "

bold sparrow
#

Si tu veux utiliser [0] il faut que ta valeur soit split

burnt fractal
#
document.getElementById("output").innerHTML="<h1>"+response.current.weather_descriptions[0]+
                    "</h1>Temperature: "+ response.current.temperature+
                    "<br> Temperature Ressentie: " + response.current.feelslike+
                    "<br> Indice UV :" + response.current.uv_index+
                    "<br>Humidité: "+ response.current.humidity+
                    "<br> Couverture nuageuse:"+ response.current.cloudcover+
                    "<br> Heure d'observation :"+ response.current.observation_time;
#

en gros j'aimerais récup que le premiere element de cette ligne

#

le " response.current.weather_descriptions[0] "

bold sparrow
#

Je passe sur PC

#

Alors,

#

Tu peux détailler un peu plus stp ? ^^

#

J'me réveille doucement

burnt fractal
#

alors je sais que les function sont dépendante l'une de l'autre mais est ce que on peut via une fonction recuperer des données d'une autre fonction pour commencer ?

bold sparrow
#

Bien sûr

burnt fractal
#

d'accord bah en gros la je fais une fonction qui va gérer justement le nom en anglais

bold sparrow
#

Mais c'est un peu particulier

#

Il faut que ta fonction soit exportable.

burnt fractal
#

😭 je suis déja perdu x)

bold sparrow
#

Ta fonction doit être utilisée sur le meme fichier ?

burnt fractal
#

oui la je suis en one page

bold sparrow
#

Ok bon.

#

Ta fonction, pour qu'elle puisse récupérer des données et les utiliser à son tour, tu dois utiliser des paramètres

#

Ses paramètres correspondront aux valeurs que tu vas utiliser dans la fonction en question.

burnt fractal
#

d'accord donc je peux bien récup avec une fonction les valeurs d'une autre c'est ca ?

bold sparrow
#

Tout à fait

burnt fractal
#
function getWeather(){
                var ville = document.getElementById("recherche").value;
                var unités = document.getElementById("unités").value;
                fetch("http://api.weatherstack.com/current?access_key=c38b6f4a3a5d207569d1ddd3e618ae05&query="+ville+"&units="+unités)
                .then(a =>a.json())
                .then(response =>{
                    document.getElementById("image").src=response.current.weather_icons;
                    document.getElementById("output").innerHTML="<h1>"+response.current.weather_descriptions[0]+
                    "</h1>Temperature: "+ response.current.temperature+
                    "<br> Temperature Ressentie: " + response.current.feelslike+
                    "<br> Indice UV :" + response.current.uv_index+
                    "<br>Humidité: "+ response.current.humidity+
                    "<br> Couverture nuageuse:"+ response.current.cloudcover+
                    "<br> Heure d'observation :"+ response.current.observation_time;
                });
            }
            function ChangerNom(){
                var nom = document.getElementById("output").value[0]
                console.log(nom)
            }
#

la j'ai deux fonction l'une qui recupere les données de l'api et l'autre qui est a ses débuts pour recup le nom en anglais et qui aura spour but de le changer en francais

bold sparrow
#

Je suis pas trop fan des then x)

burnt fractal
#

et est ce que pour récupérer la ligne " response.current.weather_descriptions[0] " ma ligne " var nom = document.getElementById("output").value[0] " marche ?

#

comme c'est des response je n'en suis pas sur du tout car il me semble qu'ils s'effectuent tous a la fin avec les promise

bold sparrow
#

Disons que ta promise est embêtante

#

Puisque c'est une fonction

#

avec response en paramètre

burnt fractal
#

mais du coup comment pourrais je récup " response.current.weather_descriptions[0] " et pouvoir la traité

bold sparrow
#

Au lieu d'utiliser un then Promise

#

Tu peux faire const response = await ( ton Fetch vers l'API )

#

Comme ça tu n'auras pas besoin de ton then ception

#

Si tu ne connais pas les fonctions qui renvoient un result Promise<any>

burnt fractal
#

nope je coco pas

bold sparrow
#

C'est ce qu'on appelle une fonction asynchrone

#

Tu vas utiliser le statement async/await

#

Ca sera bien plus lisible dans ton code

burnt fractal
#

ah mais oui await eet asynch me disais quelque chose c'est comme avec les threads

bold sparrow
#

Et bien ce statement c'est une fonction asynchrone

#

Et ça t'évite d'utiliser les then

#

Qui, selon mon point de vue, salissent le code

burnt fractal
#

mais du coup toutes les ligne que j'ai faitent pour récup les données et leur donné un nom ne marche plus ?

bold sparrow
#

Tu vas devoir légèrement modifier

#

Et encore

#

Même pas

burnt fractal
#

ca se transforme en cette ligne du coup ?

bold sparrow
#

await n'est pas une fonction

#

Tu n'as pas besoin de la première paranthèse

#

await fetch

burnt fractal
#

d'accord

bold sparrow
#

Parfait

#

Ce que tu peux faire pour voir si ça fonctionne console.log(response)

#

Et c'est censé te renvoyer la collection.

burnt fractal
#

Uncaught SyntaxError: await is only valid in async functions and the top level bodies of modules

bold sparrow
#

Et oui

#

C'est normal

#

Tu n'utilises pas une fonction de type function mais une fonction de type async

#

async est toujours de paire avec await

burnt fractal
#

ah mais oui 🤦‍♂️

#

déso je suis fatigué a faire que ca de la journée des fois je suis dans le brouillard

bold sparrow
burnt fractal
#

bwhahahaa

#

hmmm il disent que ma fonction getWeather n'est pas def

bold sparrow
#

Est-ce que tu peux me montrer la ligne ?

#

Voir comment tu as modifié

burnt fractal
#

ok non c'est bon j'ai trouve

#

XD

bold sparrow
#

Parfait !

burnt fractal
#

j'avais enlever le function va savoir pourquoi

bold sparrow
#

Parfait.

#

response te renvoie bien la collection ?

burnt fractal
#

ah mince ca bloque au niveau de l'icon

bold sparrow
#

Ah ?

burnt fractal
bold sparrow
#

la propriété wether_icons n'existe pas mmh ...

#

Tu ne vas pas console.log

#

Et tu vas exécuter comme prévu.

#

On va regarder ce que te donne la console du navigateur

burnt fractal
bold sparrow
#

Développe l'erreur

burnt fractal
#

mais en tous je te remercie énormément pour le temps que tu me consacre 🙂