#javascript-typescript

1 messages · Page 111 of 1

normal lichen
#

/home/container/node_modules/discord.js/src/structures/ClientPresence.js:51
if (typeof activity.name !== 'string') throw new TypeError('INVALID_TYPE', activities[${i}].name, 'string');
^
TypeError [INVALID_TYPE]: Supplied activities[0].name is not a string. sa me met cetter erreur 😅

neat lintel
#

Vérifies que il trouve bien le serveur il est sûrement undefined ici

normal lichen
#

C’est bon j’ai réussi mais cela n’update toujours pas mon statut toute les 5 minutes 😅

idle tide
neat lintel
#

déja message.user ca existe pas c'est message.author

viscid mica
#

bonjour

#

quelqu'un sais comment résoudre cette erreur

past nimbus
#

En ajoutant ',' à la fin de tes props

viscid mica
past nimbus
#

Comment ça "avant le type" ?
Chaque ligne de ton objet doit finir par un ","

viscid mica
#

j'ai trouvé

#

merci

honest maple
#

yo est-ce que quelqu'un s'y connait car j'ai un problème

#

merci :)

maiden silo
#

Bonjour, j'ai fait un bot discord en javascript et après maintes recherches, je n'ai pas trouvé le moyen de vérifier si un channel vocal est vide ou si'l y a encore des gens connectés dessus. Auriez-vous une solution pour moi ? merci d'avance.

queen ocean
maiden silo
queen ocean
maiden silo
# queen ocean Sans ton code on peux pas t'aider

oui pardon :

bot.on('voiceStateUpdate', async (oldState, newState) => {
    if(!oldState.channelId === null) return;
    if(oldState.channelId !== null) {
        if(oldState.channel.parentId === '1234') {
          console.log(VoiceChannel.members)
          oldState.channel.delete()
        }
    }
    if(newState.channelId !== '1234') return;
    const channelPrivateRoom = await newState.guild.channels.create(`Chambre de ${newState.member.user.username}`, {type:'GUILD_VOICE', parent : '5266', permissionOverwrites: [{id: newState.member.user.id, allow: ['VIEW_CHANNEL', 'CONNECT', 'SPEAK', 'STREAM', 'MANAGE_CHANNELS']}]});
    newState.setChannel(channelPrivateRoom);
});```

En fait, avant que le channel soit supprimé, je voudrais vérifier s'il reste des gens dans le channel vocal
queen ocean
#

Faut pas c/c sans comprendre .... Retire ton console.log(VoiceChannel.members) ... si tu veux tu peux faire un console.log(newState.channel.members.size) pour avoir le nombre de personne dans le channel

maiden silo
pulsar fiber
#

bonsoir ,j'ai besoin d'un coup de main je suis entrain de codé un bot qui a pour seul utilité de copier une phrase et ajouter "us" a la fin de chaque mot mais je nest aucune idée de comment faire donc jai suivie un tuto simple et jai cette base

#
client.on("messageCreate", message => {
    if(message.author.bot)return;

    message.reply(message);
});                                    
unborn knot
loud horizon
#

Bonjour, jai besoin d'aide pour mon ticket bot, mon bot fonctionne mais au moment de delete le ticket ça ne fonctionne pas

#

`
Client.on("ready", () => {
var row = new Discord.MessageActionRow()
.addComponents(new Discord.MessageButton()
.setCustomId("Open-ticket")
.setLabel("OPEN TICKET")
.setStyle("DANGER")
.setEmoji("🎟️")
);

    Client.channels.cache.get("992637319834239046").send({content: "React with the button to create a ticket!", components: [row]});
                
    console.log("bot opérationel");
});

Client.on("interactionCreate", interaction => {
    if(interaction.isButton()){
        if(interaction.customId === "Open-ticket"){
            nbTicket++;

            interaction.guild.channels.create("ticket-" + nbTicket, {
                parent: "992616187777257523"
            }).then(channel => {
                var row = new Discord.MessageActionRow()
                    .addComponents(new Discord.MessageButton()
                        .setCustomId("ferme")
                        .setLabel("CLOSE THE TICKET")
                        .setStyle("DANGER")
                        .setEmoji("🛑")
                    );

                channel.send({content: "<@" + interaction.user.id + "> is needing help!", components: [row]});

                interaction.reply({content: "The ticket has been sucsessfully open!", ephemeral: true});
            });
        }
        if(interaction.customId === "ferme"){
            interaction.channel.setParent("992616287412953139");

            var row = new Discord.MessageActionRow()
                    .addComponents(new Discord.MessageButton()
                        .customId("delete-ticket")
                        .setLabel("Delete the ticket")
                        .setstyle("DANGER")
                        .setEmoji("⛔")
                    );

            interaction.message.delete();

            interaction.channel.send({content: "React to delete the ticket:", components: [row]});

            interaction.reply({content: "Ticket deleted", ephemeral: true});
        }
    }
});`
pulsar fiber
keen narwhal
#

est ce que quelqu'un aurait un tuto / script d'un bot ticket svp

oak turret
#

un tuto? tu veux pas plutôt nous dire comment tu le vois et on t’explique puis tu le fais?

civic fractal
#

C'est tout à fait normal

#

Regarde bien la fin de ton code.

#

Indice : 3ème ligne en partant de la fin

#

Puis interaction.channel.send() n'existe pas il me semble

#

@loud horizon

honest maple
#

salut j'ai un problème en typesrcipt

#
import { animated, useSpring } from "react-spring";
import React, { ReactElement } from "react";

const calc = (x: number, y: number) => [-(y - window.innerHeight / 3) / 35, (x - window.innerWidth / 1.5) / 30, 1.05];
const trans = (x: number, y: number, s: number): string =>
    `perspective(600px) rotateX(${x}deg) rotateY(${y}deg) scale(${s})`;

const [props, set] = useSpring(() => ({
  xys: [0, 0, 1],
  config: { mass: 1, tension: 350, friction: 40 },
}));

export default function WhatIdo() {
  return (
    <>
      <h1 className="text-2xl font-bold leading-9 tracking-tight text-gray-900 dark:text-gray-100 sm:text-3xl sm:leading-10 md:text-4xl md:leading-14">
        What I Do
      </h1>
      <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
      <animated.a
               
                onMouseMove={({ clientX: x, clientY: y }: { clientX: number; clientY: number }) =>
                    set({ xys: calc(x, y) })
                }
                onMouseLeave={() => set({ xys: [0, 0, 1] })}
                style={{ transform: props.xys.to(trans) }}
              
            >
        <div className="w-full cursor-auto duration-200 hover:scale-[1.03] h-full p-[6px] bg-gradient-to-r  from-[#a5f3fc] to-[#3A41A4] rounded-lg space-y-2">
          <div className="py-4 px-6 bg-white dark:bg-black dark:bg-brand-black h-full rounded-lg">
            <h1 className="text-xl font-bold tracking-tight text-gray-900 dark:text-gray-100 sm:text-xl  md:text-2xl">
              <span className="pr-2" role="img" aria-label="wave">
                ⚙
              </span>
              Building Project
            </h1>
            <p className="text-gray-600 dark:text-gray-300">
              I'm very active on Github to create open-source projects or personal projects,
              sometimes I also contribute to open-source projects.
            </p>
          </div>
        </div>
        </animated.a>```
languid goblet
#

Bonjour,
je voudrait savoir si quelqu'un sait régler se problème en TypeScript svp?

languid goblet
#

non car le tableau resemble a sa en gros

#

et j'ai essayer de mettre le type en number mais sa change rien

pulsar fiber
#

salut tout le monde j'ai un problème tout bête que je ne comprend pas comment régler
Uncaught ReferenceError ReferenceError: phrase is not defined

Client.on("messageCreate",message=>{

    if(message.author.bot)return;

    let tableau = message.content.split(' ')

    for (const element of tableau) {

        let phrase = element + `us`
    }
    message.reply(phrase)
});
lone flax
#

Ta variable phrase n’existe que dans ta condition

#

Quand tu sors de ta condition (de ton bloc) elle n’existe plus

#

Soit tu utilises un var pour qu’elle sorte de la condition (je ne conseille pas), soit tu la déclares au dessus de ta condition puis tu la modifies dans ta boucle au moins elle existe quand même en dehors de ta condition

pulsar fiber
#

okay merci

#

mais je lui associe quoi ? car ```JS
var phrase =" "

#

il me dit quil ne peut pas envoyer d'objet vide

lone flax
#

Var c'est pareil que let sauf que la portée est au niveau de la fonction et non du bloc

#
function testVar() {
  if (1 + 1 == 2) {
    if (2 + 2 == 4) {
      var test = "Bonjour"
    }
  }
  console.log(test) // OUTPUT: Bonjour
}
#
function testLet() {
  if (1 + 1 == 2) {
    if (2 + 2 == 4) {
      let test = "Bonjour"
    }
  }
  console.log(test) // OUTPUT: Undefined
}
#

Mais dans ton cas je pense que ce n'est pas vraiment ce que tu veux faire parce que tu veux concatener chaque mot entre-eux, donc faut utiliser une seule variable (let) et lui concatener à chaque itération

#

Donc un truc comme ça :

Client.on("messageCreate",message=>{

    if(message.author.bot)return;

    let tableau = message.content.split(' ')
    let final = ""

    for (const element of tableau) {
        final = final + "us "
    }
    message.reply(final)
});
#

Mais tu peux faire beaucoup plus propre en faisant comme ceci :

client.on("messageCreate", message => {
  
  if (message.author.bot) return;

  const usMessage = message.content.split(" ").map(m => { return (m + "us") }).join(" ");
  message.reply(usMessage);

});
pulsar fiber
#

ok ok merci je vais essayer de comprendre comment ca marche et lest go merci beaucoup

neon lily
#

Jaibesoin d'aide de personne qui connaise le React

#

Je vous envoie les photos pour comprendre

#

alors, j'aimerai grace au Footer appuyer sur un boutton et que sa mettent en dark mode

#

pour cela dans le doss Footer (1er photos) je met le bouton changer de mode et que sa change de theme au click

#

sur la App (fichier 2) je met le ThemeProvider et le Footer

#

Puis j'ai fait un ficier juste pour le Context

#

mais le probleme cest que a l'ajout de tout ca sur le App plus r saffiche sur mon site

#

je pense que c suite a la nouvelle version de react mais je trouve pas la bonne syntax

neon lily
#

genre j'y est passer toute l'aprem et j'arrive pas a trouverharold

normal lichen
#

Bonjour j'ai un problème, je met un message et un autorole lorsque un membre rejoin, lorsque je reboot le bot, le premier membre qui rejoin na aucun soucis il a bien le role et le message, mais lorsque un second membre rejoin il n'ya pas de message et pas de role mais le bot ne crash pas 😅

glass cargo
normal lichen
#

oui 😅

#
module.exports = {
    name: 'guildMemberAdd',
    once: true,
    execute(member){
        member.guild.channels.cache.get('990281162754773062').send(`Bienvenue ${member} sur le serveur ${member.guild.name} Nous sommes désormais ${member.guild.memberCount}`)
        member.roles.add("945989311210323987");
        console.log('Un membre a rejoin le discord')
    }
}
glass cargo
#

Bizarre...

normal lichen
#

j'ai fait ceci et c'est comme si lorsque un membre rejoigner il bloquer l'event 😅

#

cela peut venir du once ?

glass cargo
#

Je sais pas à quoi ça sert😂

#

Mais maybe

normal lichen
#

je vais essayer de le retirer x)

#

bon bah sa va venait du once xd

#

desoler du dérangement 😅

raw birch
normal lichen
#

Oui je vous remercie j’avais un doute 😅

#

Par contre vous savez comment update le nombre de membre en activité du bot ? 😅

#

J’ai mit setInterval de 5 minutes mais sa fonctionne pas 😅

neon lily
#

Gostedvu cdrole

glass cargo
#

Je met à 12s perso

normal lichen
#

La j’ai mit 1000x60*5, je met 12000?

#

Parceque la sa update pas mon statut 😅

glass cargo
glass cargo
normal lichen
#

Je peut pas mettre en code je suis sur tel désolé 😅

#

module.exports = {
name: 'ready',
once: true,
async execute(bot){
console.log("Bot en ligne : ✔️");
activity =[
{
type : "WATCHING",
name : ${bot.guilds.cache.get("945989311210323978")?.memberCount} membres
}
]
setInterval(() => { bot.user.setActivity(${activity[0].name}, {type: ${activity[0].type}})}, 1000 * 60)
}

#

Il ya les ˋ qui ont été retirés 😅

honest maple
#

Personne n'est capable de m'aider svp ?

fading glacier
slender grove
#

Yo, j'ai cette erreur

near saddle
#

Lorsque tu node index.js, pense à vérifier que le chemin d’accès soit bien le bon 🙂

misty parcel
#

Salut les amis voici mon code

#

Ce que je veux c'est qu'au bout d'un certain temps le message qui ce trouve à la ligne 236 se supprime

glass cargo
#
await button.reply({ content: "TEXT" }).then((msg) => setTimeout(() => msg.delete(), 10000))
#

@misty parcel

#

J’ai mis 10 secondes, après à toi de voir ce que tu préfères ^^

misty parcel
#

@glass cargo J'ai essayer ça mais ça me met undefind

#

await button.reply({ content: "TEXT" }).then((msg) => setTimeout(() => msg.delete(), 10000))

#

euh

near saddle
#
await button.reply({ content: "TEXT" }).then((msg => setTimeout(() => msg.delete(), 10000)))```
#

@misty parcel

#

essaie ça

misty parcel
#

y'a pas de diff la

near saddle
#

si si

#

sait-on jamais x)

near saddle
# misty parcel

puisque ton erreur c'est qu'ici ton msg n'est visiblement comme, avec des grosses guillemets, "pas déclaré"

misty parcel
#

ah ok mereci

#

je vais test

slender grove
#

Bonjour, j'ai cette erreur svp

#

Et je suis sur pectrodactyl

raw birch
# slender grove

Dans le file manager de ton ptero il y a un index.js à la base ?

raw birch
# slender grove

va dans l'onglet settings de ptero et remplace le fichier de démarrage par ./CrowBot-Remade-main/index.js

slender grove
#

Faudrait pas que j'enlève le crowbot-remade-main ?

raw birch
#

le fichier index.js ne se trouve pas dans le dossier /home/container mais dans /bot/container/CrowBot-Remade-main

raw birch
slender grove
#

Okey

#

Je supprime pas le dossier crowbot-remade-main ?

raw birch
slender grove
#

Comment peut t'on les transférer, car j'ai énormément de fichier ?

raw birch
slender grove
#

J'ai sa perso

#

Il me propose sa

raw birch
#

le bouton move il propose quoi ?

slender grove
raw birch
#

mets ../ (../ correspond au dossier precedent)

slender grove
raw birch
# slender grove

supprimes les fichiers package.json et package-lock.json le dossier /home/container et déplace ceux là

slender grove
#

Voilà

raw birch
slender grove
raw birch
#

supprime le package-lock.json

slender grove
#

Okey

#

Voilà

raw birch
#

dans ton package.json il y a bien discord.js ?

slender grove
raw birch
#

essaie de relancer le bot

slender grove
raw birch
#

bizarre

#

là je bloque

slender grove
#

Moi aussi

#

C'est peut être la version de nodejs

fallen sun
#

Bonjour quelqu'un sait comment je peut faire quand quelqu'un met dans son status "discord.gg/" ça lui donne un rôle et si il l'enlève ça lui enlève svp ?

sullen kelp
sullen kelp
#

Tu as une erreur ?

fallen sun
#

TypeError: Cannot read properties of undefined (reading 'activities')
at Client.<anonymous> (C:\Users\viper\Desktop\Amenadielv2\events\ready.js:11:53)
at Client.emit (node:events:526:28)

sullen kelp
#

Je crois qu'il faut une intents pour voir les status des membres

fallen sun
#

ouaip je l'ai mis pourtant , d'ailleurs quand je met le status ça me met le rôle et puis l'inverse ça ne me l'enlève pas

sullen kelp
#

Tu as bien mis l'itent "GUILD_PRESENCES" ?

sullen kelp
#

Ah est que ça l'enlève pas c'est normal, y'as pas le code pour l'enlever

#

mais pour l'envler suffit juste de faire le contraire de ta condition est de remove le role

lapis onyx
#

msg => { useEffect … } @misty parcel

keen narwhal
#

Bonjour tlm !

#

dites moi, j’ai une question… j’ai une erreur qui s’affiche lorsque que j’utilise « npm deploy-command » (pour mon bot discord)

#

mais je ne comprend pas vraiment pq

sullen kelp
#

commands

#

C'est avec un s

fallen sun
sullen kelp
#

hmm, bizzare

fallen sun
#

ça me dit ça comme erreur mtn : TypeError: Cannot read properties of undefined (reading 'id')

glass cargo
#

Bonsoir, est-ce qu’il y aurait un moyen en JavaScript de compter le nombre de requêtes envoyées (à l’api de Discord notamment) ?

sharp grail
#

Bah

#

tes requêtes elles passent bien quelques part ~

glass cargo
lapis onyx
elder quartz
#

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });

client.on('ready', () => {
console.log(Logged in as ${client.user.tag}!);
});

client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;

if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
});

client.login('token'); 
Je ne comprends pas cela ne marche pas

flint gorge
#

ton token

sullen kelp
#

Et faut inviter le bot avec l'option application.commands sur le dev portal

misty parcel
#

Salut j'essaye de faire un petit programme qui genere sois "test", sois "test2", sois "test3", du coup j'ai fais ça :

const randomCode = [
        'test',
        'test2',
        'test3'
      ]
      const randomGen = Math.floor(Math.random() * randomCode[0].length);
      setInterval(async() => {
        interaction.channel.send({
          content: `${randomGen}`
        })
      }, 10000);
#

le problème c'est que le programme répond tout le temps 0

clever bane
fading glacier
#

Non, pas *3 parce que si il ajoute/retire des valeurs de son tableau ça ne marchera plus. Enlèves simplement ton [0] dans randomCode[0].length, et après récupères la valeur correspondant à ce que tu as reçu (randomCode[randomGen])

clever bane
lapis onyx
#

Hello, je démarre en react-native et je ne comprends pas pourquoi je peux faire (voir capture d'écran) mais lorsque je souhaite utiliser mon Composant "MovieComponent" j'ai l'erreur suivante :

#

le code de mon composant :

#

et je pense que les imports sont OK malgré l'erreur levée :

loud horizon
#

Qqun peut m'expliquer c'est quoi se message d'erreur:Cannot set properties of undefined (setting 'commands')

wind canyon
#

Salut

#

J'ai commencé JS tout à l'heure et je suis coincé sur quelque chose

#

J'ai regardé une vidéo pour faire un bot Discord

#

Et il a dis d'intégrer le Token dans Client.login("LeToken");

#

Mais dans le Tuto suivant elle est plus là et le bot est toujours online

#

Une explication?

misty parcel
#

le token à sans doute été mit dans un json ou un .env

wind canyon
misty parcel
#

tu crées un fichier token.json

wind canyon
#

J'utilise Visual

misty parcel
#

ensuite tu mets ton token dedans

wind canyon
#

Dans quel dossier?

misty parcel
#

et puis voila hein

#

fichier

wind canyon
#

Ok

#

je vais me démerder

#

Merci

#

🙂

misty parcel
#

crées un fichier token.json

#

dedans tu mets ça :

wind canyon
#

Wow c'est long 🙂

#

Joke

misty parcel
#
{
    token: "ton token",
}
wind canyon
#

Ok

#

Merci

misty parcel
#

ensuite dans ton index.js tu mets

#

const token = require('token.json')

wind canyon
#

Ok

misty parcel
#

ensuite au client login tu mets config.token entre les parenthèses

#

et voila

wind canyon
#

D'accord

#

Merci bien

#

Je t'ai envoyer une demande d'ami, si j'ai besoin je pourrais peut être te DM

#

Au lieu de pinger ici

#

Merci pour les explications 🙂

#

@misty parcel, 'xcuse pour le ping mais je vois pas https://www.youtube.com/watch?v=8CJfHbP4kFs&t=508s

Dans cette vidéo, nous verrons comment interagir par message avec notre bot et la créations de nos premières commandes personnalisé.
Avec la dernière version de discord.js (v13)

----- Serveur partenaire -----
Game Creators Area : https://discord.gg/K3qyS4jDwc

------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz

documentation dis...

▶ Play video
#

Il l'avait mis en bas dans le #0

misty parcel
#

est ce que tu peux voc demain ? @wind canyon

wind canyon
#

Non, DM peut être mais attend

#

C'est peut être moi qu ai fais une erreur

#

Je pense que j'ai foiré

misty parcel
#

mets ça :

#
Client.login(config.token)
wind canyon
#

Où?

#

Quelle ligne

#

à la 12?

misty parcel
#

a le toute dernière ligne de ton code

wind canyon
#

Ok

misty parcel
#

et puis ligne 21 ça va pas

#

apres prefix mets un +

wind canyon
#

Ah oui

#

J'avais oublié

#

XD

#

Attend

#

Le plus je savais mais j'ai dû écrire trop vite

misty parcel
#

oui

wind canyon
#

Next?

#

C'est bon?

misty parcel
#

je pense

wind canyon
#

Donc là mon bot devrais être online?

misty parcel
wind canyon
#

Je vais checl

#

*check

#

Non

#

c'est le bon token

#

En fais je fais une commande!

lone flax
#

Ton code est pas bon là

#

Tu mets un ; après ta condition

#

Donc la condition s'arrête immédiatement

wind canyon
#

Aaah Ok

lone flax
#

Une condition c'est :

if (message.content === prefix + "someCommand")
  message.reply("Hi!");
#

Et essaye de lancer ton bot après voir si tu as des erreurs

wind canyon
#

D'accord

#

Offline 😦

#

Roro m'a dis de créer un "token.json

#

De foutre le Token dedans avec:

{
  token: "MonToken";
}
#

Si il y a une erreur...

misty parcel
#

{}

#

pas }{

lone flax
#

Tu as lancé ton bot ?

#

Montre ta console

wind canyon
#

Ok attend

lone flax
#

Il n'y a pas de ; en json

wind canyon
#

Les screens c'est chiant à prendre

#

Attend 2sec

#

Regarde

#

Je te montre mon code?

lone flax
#

Il ne trouve pas le fichier token.json

wind canyon
#

bah attend

lone flax
#

Tu l'as placé où le fichier ?

wind canyon
#

Ici:

#

Attend

#

Avec l'index

lone flax
#

Et montre ton fichier

wind canyon
#

Je l'ai pas mis dans Structure ou dans Chronologie

lone flax
#

Tu peux utiliser Windows + Shift + S pour faire un screenshot facilement

wind canyon
#

je sais

#

C'est ce que je fais

#

Mais j'en ai pris 2

#

Yandu's Bot c'est moi ofc

lone flax
#

Bah donc te suffit de faire Windows + Shift + S puis de faire CTRL+V ici dans le salon, pas besoin de te faire chier à enregistrer le fichier à chaque fois

lone flax
#

Du coup tu m'as toujours pas montré ton fichier

#

Genre le contenu

wind canyon
#

Aaah le Token

#

Ok

#

Merde

#

le screen

lone flax
#

Le contenu de index.js

wind canyon
lone flax
#

Oui mais tu as changé des trucs depuis donc j'ai envie d'être sûr

wind canyon
#

Ok

#

Avec la console

#

Y a tout

lone flax
#

Essaye de remplacer 'token.json' par "./token.json"

#

Non mais non

#

Attends

wind canyon
#

La ligne 11?

#

Ok

lone flax
#

config c'est pas défini

#

Tu utilises config.token

#

Mais config tu le définis nulle part

wind canyon
#

Ok dis

lone flax
#

Toi tu require token pas config

wind canyon
#

Oui

#

Donc?

#

Je dois faire quoi?

#

@lone flax? Déso' pour le ping

#

HEY?

#

Ok

lone flax
#

Oh ça va on est pas tes chiens hein

#
const Discord = require("discord.js");
const Config = require("./token.json");

const Client = new Discord.Client({
    intents: [
        Discord.Intents.FLAGS.GUILDS,
        Discord.Intents.FLAGS.GUILD_MESSAGES
    ]
});

const prefix = "!";

Client.on("ready", () => {
    console.log(`${Client.user.tag} is online!`);
});

Client.on("messageCreate", message => {
    if (message.author.bot) return;

    if (message.content === prefix + "test")
        message.reply("hey");
});

Client.login(Config.token);
#

Essaye avec ça

wind canyon
#

Déso

#

Merci

#

à la place de TOUT?

lone flax
#

Montre le contenu de ton fichier token.json

wind canyon
#

Ok

#

C'est ce qu'on m'a dis de mettre

lone flax
wind canyon
#

Donc j'enlève le ;

#

I guess

lone flax
#
{
  "token": "ton token"
}
wind canyon
#

Ooooh

#

On m'avais pas dis que sur le premier Token en orange y avait des guillemets

#

:(:

#

Ok

#

ca marche

#

merci beaucoup

#

Salut ❤️

wind canyon
#

Re

#

Comment on fais en sorte que le Bot sois Online tout le temps

#

Même quand on ferme Visual?

#

Déso

#

@lone flax, excuse moi mais 👆

#

😦

lone flax
wind canyon
#

justement je trouve RIEN

lone flax
#

Les 5 premiers résultats donnent la réponse pourtant

wind canyon
#

Ca m'aide pas, ils parlent d'hébergeur 😦

#

Bon Ok salut

lone flax
#

C'est parce qu'il te faut un hébergeur

wind canyon
#

Mmmh.... Heroku c'est gratuit?

lone flax
misty parcel
elder quartz
#

Bonjour je suis en train de faire une commande pour dire a mon bote de reconnaître les insultes et de kik le joueur et au bout de trois fois il le ban sauf qu'il n'y avait aucun tutoriel donc je ne savais pas comment faire

misty parcel
#

Salut les gars est ce qie vous savez c'est quoi l'event qui permet de realiser une action quand un bot est ajouter à un serveur

#

guildMemberAdd ?

dire latch
#

guildCreate @misty parcel

#

Ou guildMemberAdd

#

Sa depends si c'est ton bot ou tout les bot

misty parcel
#

euh

#

mon bot @dire latch

dire latch
normal lichen
#

Bonjour, comment on peut ajouter une reaction sur un message svp ? 😅

past nimbus
#

as tu fais une recherche avant ? ^^'

normal lichen
#

bah je sais le faire en mode normal, avec juste un index.js, mais la j'essaye de faire du handler et je comprend pas comment mettre sur ma commande 😅

desert riverBOT
glass cargo
#

@normal lichen

normal lichen
#

Je vais y regarder merci !

glass cargo
#

Faut lire la documentation avant 😉

normal lichen
#

bah j'ai regarder a la doc mais sa me met l'erreur "message inconnu" 😅

sullen kelp
#

Envoie le code

#

Au passage si la docs est trop dur le guide existe

finite token
#

Salut je pense poser une question toute bête mais je débute dans le dev ! Et j'ai créer un bot discord et j'aimerais qu'il envoie des messages annonces avec des liens par exemple qlq'un pourrai m'aider ?

neon lily
#

Dans cette vidéo, nous verrons comment interagir par message avec notre bot et la créations de nos premières commandes personnalisé.
Avec la dernière version de discord.js (v13)

----- Serveur partenaire -----
Game Creators Area : https://discord.gg/K3qyS4jDwc

------- Mon serveur discord ------
https://discord.gg/4GxNn7MWmz

documentation dis...

▶ Play video
#

Suit sa formation sa pourrait peut être t'aider

finite token
#

Oui je l'ai suivi sauf que il explique comme creer une reponse

#

Pas un message du bot en lui meme

#

Comme ca par exemple

neon lily
#

le mec a fait une commande mais le bot la autoremove

#

J'ai une question aussi pour les amateur de React, voila je voudrai mettre une video sur mon app mais en background en autoPlay et loop mais le probleme cest que ma video ne saffiche pas jai essayer a peut pres tout est sa marche pas

#

Jai essayer react-video-js-(je sais plsu quoi) sa a pas marcher non plus

#

Je ne trouve pas de solution a ce probleme vous etes ma seul solution

#

je veux pas qu'il y ai d'HUD juste la video en boucle et autoplay

neon lily
gleaming verge
#

hey! qui as besoin d'aide ?

neon lily
#

Me plz

neon lily
gleaming verge
torn fog
#

Et pas un import

neon lily
#

Ok jvais test

pallid plume
# torn fog Il te faut utiliser un require

Mais c'est la même chose ? La différence sera juste la norme genre ES6 actuellement dans son code ? ( je connais pas trop react mais dans tout les exemple que j'ai vu c'est du ES6

torn fog
#

un require met en cache

pallid plume
#

Mais c'est la même chose enfaite

pallid plume
bold sparrow
#

Renseignes toi sur l’affichage des vidéos, ça fonctionne différemment.

torn fog
#

C'est pour le bundle

bold sparrow
#

Dans tous les cas c’est pas la norme le problème

#

Que ça mette en cache ou non

torn fog
#

Moi en tout cas j'ai le réflexe de faire des requires si c'est des fichiers static genre image, vidéo etc et des imports si c'est des modules

pallid plume
#

J'ai confirmation tu peux bien faire un import de vidéo avec la norme ES6 donc : import blabla from '../assets/test.mp4' est censé marché

torn fog
#

Ah d'accord

pallid plume
#

La vrai diff entre les deux en dehors des normes c'est la manière d'import

#

genre un import c'est forcément en haut de ton code tu peux pas faire des imports dynamique

#

mais tu peux le faire avec un require

torn fog
#

ouké

burnt perch
#

Hellooooo, quelqu'un aurait une bonne lib à conseiller pour faire des diagrams ? De préférence qui permet de crée des groupes d'entité et qui peut accueillir de la data en ajax et gratos svp 😅

past nimbus
#

chartjs ?

burnt perch
#

cette lib est cool mais la license est à 6000 balles.......

past nimbus
#

Ah ce genre de diagrams ^^'

burnt perch
#

yes mais je trouve pas de lib aussi bien mais gratos.....

#

ou sinon y'a toujours un truc manquant ça me rend ouuuff

past nimbus
#

Bah après faut qu'il ait de la valeur ajouté mdr

burnt perch
#

bah là je sèche perso

#

et pas question de dev ça moi même

past nimbus
#

C'est pour faire quoi ?

burnt perch
#

c'est pour choper des phases de test d'un workflow engros :upload -> traitement
et à partir du diagrams voir si des fichier ont foirés l'upload ou ont foirés le traitement par exemple

timid loom
cyan kernel
#

yop tlm j'aimerais comprendre un truc sur firebase, j'essaye de recupere les contract ayant pour sellerRef l'id de mon user actuelle mais la requete me renvoie null alors que je suis sur qu'il a des contract le bougre

#
const contract = await firestore()
      .collection('contract')
      .where('sellerRef', '==', authenticatedUser?.uid)
      .get();
#

voila la fameuse requête

idle ice
#

Si tu fait console.log(authenticatedUser), ça fait quoi ?

cyan kernel
# idle ice Si tu fait `console.log(authenticatedUser)`, ça fait quoi ?
{"displayName": null, "email": null, "emailVerified": false, "isAnonymous": false, "metadata": {"creationTime": 1649339712234, "lastSignInTime": 1657193190072}, "phoneNumber": "+33619102161", "photoURL": null, "providerData": [[Object]], "providerId": "firebase", "refreshToken": "AOEOulYQItd2O2JtuYgS7pvy6BGLOmZm2IDh32kMBNjGULcI6vGqRXpn0ciwdqVjQsAnYDQRmYK5v5T3tYp_AUOknnkhaRJiNVy1h3fsUOFJy6U-42OH3un-B7KE6_gwFb-yHKDTyfmslwoQ-sfrQGxpfYB2Aycz817gOvOaOnyB9g0SezHh3zw5kRxLWBf0wMS6xENwqmnc", "tenantId": null, "uid": "clrJbfScaGZmVapHJ616G47d7sj1"}
idle ice
#

Retente en faisant console.log(authenticatedUser?.uid)

#

Voir s'il le retourne BIEN 🙂

#

Evitons des problèmes bêtes et se casser la tête pour rien

cyan kernel
#

oui jai bien l'uid

idle ice
#

Vérifie le nom de ta collection et de ton champ "sellerRef"

#

Si tu retires le .get(), que tu t'arrête au where et que tu console.log(contract)

#

Ca dit quoi ?

cyan kernel
#
{"_changes": [], "_docs": [], "_excludesMetadataChanges": 1, "_metadata": {"_metadata": [false, false]}, "_query": {"_collectionPath": {"_parts": [Array]}, "_firestore": {"_app": [FirebaseApp], "_config": [Object], "_customUrlOrRegion": undefined, "_nativeModule": [Object], "_referencePath": [FirestorePath], "_settings": [Object], "_transactionHandler": [FirestoreTransactionHandler]}, "_modifiers": {"_endAt": undefined, "_endBefore": undefined, "_filters": [Array], "_limit": undefined, "_limitToLast": undefined, "_orders": [Array], "_startAfter": undefined, "_startAt": undefined, "_type": "collection"}, "_queryName": undefined}, "_source": "get"}
cyan kernel
cyan kernel
pallid plume
burnt perch
jovial lion
#

Bonsoir !
J'ai besoin de votre aide sur une ligne, je tente de faire en sorte de rajouter un role quand un membre change son pseudo et met "DEK-" devant mais il y a une erreur quelqu'un saurait pourquoi ?

glass cargo
opal mantle
#

J'ai essayé de faire un message de bienvenue mais il ne fait rien, voici le code utilisé :

    // Message de Bienvenue
client.on('guildMemberAdd', (member) => {
    let welcomeChannel = client.channels.cache.get('975455323550789782')
    welcomeChannel.send('Bienvenue, ' + member.user.tag + ' !')
});

Je pense avoir utilisé une mauvaise version

#

Mais je suis pas sure

gentle zinc
#

Bonjour à tous,
J'essai d'intégrer mon canvas dans un embed, mais je pense m'y prendre mal :/.. besoin de vous les amis ! (je vous met l'erreur en bas)
Je pensé pouvoir mettre l'attachment dans le .setImage(attachment) mais pas moyen, il demande un URL obligatoirement :/

Client.on("guildMemberAdd", async member => {
    console.log("un membre est arrivé !");
    Client.channels.cache.get("994905115507052545").send("<@" + member.id + "> est arrivé !");

    const canvas = Canvas.createCanvas(1024, 500);
    const context = canvas.getContext('2d');

    const backgroundFile = await readFile('./canvas.jpg');
    const background = new Canvas.Image();
    background.src = backgroundFile;

    // Cette opération utilise les dimensions du canevas pour étirer l'image sur l'ensemble du canevas.
    context.drawImage(background, 0, 0, 1024, 500);

    context.font = "42px Impact";
    context.fillStyle = "#ffffff";
    context.textAlign = "center";
    context.fillText(member.user.tag.toUpperCase(), 512, 410);

    context.beginPath();
    context.arc(512, 166, 119, 0, Math.PI * 2);
    context.closePath();
    context.clip();

    const avatar = await Canvas.loadImage(member.user.displayAvatarURL({
        format: "jpg",
        size: 1024
    }));

    context.drawImage(avatar, 393, 47, 238, 238);

    // Use the helpful Attachment class structure to process the file for you
    const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'canvas.jpg');

    const embed1 = new Discord.MessageEmbed()
    .setAuthor({ name: 'Notika', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' })
    .setDescription("Test Notika.")
    .setColor("#ffffff")
    .setImage("attachment")
    .addField("Serveur", 'test')
    .addField("ID", "test")
    .addField("Infos", "test");

    Client.channels.cache.get("994905115507052545").send({ embeds: [embed1] });
});

Erreur :
Uncaught DiscordAPIError DiscordAPIError: Invalid Form Body
embeds[0].image.url: Scheme "attachment" is not supported. Scheme must be one of ('http', 'https').

gentle zinc
#

Ok j'ai trouvé l'erreur !! merci quand même 😛

glass cargo
bitter belfry
#

bonjour j'ai un un petit soucis j'aurai besoin d'un pro vue js pour m'aider a reparer le probleme

worn garnet
bitter belfry
worn garnet
bitter belfry
#

Je ne vois pas Le probleme du coup

worn garnet
bitter belfry
#

Nope

worn garnet
#

tu viens de setup un project ?

bitter belfry
#

J’ai juste le message qui me dit que tout a été compilé et que je peux retrouver le projet sur le localhost 8081

#

Il est setup depuis 2 jours

bitter belfry
#

Installer quoi ?

worn garnet
#

vuejs

#

fin, comment a tu setup ton project *

bitter belfry
#

Le framework avec la commande dans le guide d’installation

#

Create vue back

#

Enfin front

#

J’ai pris les 3 trucs recommandés dans la video de Bertrand ( si je me trompe pas de nom )

worn garnet
#

tu as pris le routeur ?

#

perso je te conseille ce setup pour apprendre vuejs

#

mais sinon, tu as des component de cree ?

bitter belfry
#

Babel router vuex

worn garnet
bitter belfry
#

Non

#

Je suis toujours entrain d’apprendre le framework

worn garnet
#

je ne te le conseille pas alors, regarde sa plus tard quand tu auras bien compris Vuejs

bitter belfry
#

Je peux le laisser et ne pas l’utiliser ?

worn garnet
#

car Babel n'a pas grand chose a voir avec vuejs, c'est pas un outils natif

bitter belfry
#

Ah

worn garnet
bitter belfry
#

Je peu te stream mon problème

#

Si tu veux

worn garnet
#

yup

bitter belfry
#

Je fais ca dans 5min

#

Le temps que je termine la maj

worn garnet
bitter belfry
#

😄

#

La maj est toujours pas terminer

#

Je suis la dans 2min max

worn garnet
#

[probleme fixe ducoup]

keen narwhal
#

bonjour ^^

#
            let prefix = args[0] || args._hoistedOptions[0].value
                                                        ^

TypeError: Cannot read properties of undefined (reading '0')
#

j'ai un probleme quand je lance mon code

keen narwhal
#

Bonjour,

J’ai un petit problème avec mon code. Je voudrais faire un compteur de clics (à chaque fois que l’utilisateur clique sur le bouton le compteur augmente de 1). Cependant, j’aimerais récupérer la valeur de ma variable en dehors de cette fonction afin de l’utiliser dans d’autres fonctions. Est-ce qu’il existe un moyen pour récupérer cette valeur (lorsque je console log ma variable en dehors de la fonction, elle reste à 0) ?

Voici une image pour mieux illustrer mes propos.

timid loom
#

le problème c'est que tu la console.log qu'à un seul moment, donc quand elle change ça va pas tout redéclencher
en faisant un console.log dans le addEventListener tu affiche sa valeur à chaque fois qu'elle est modifiée
actuellement tu peux déjà réutiliser cette valeur en dehors de ton event listener :

setTimeout(() => {
  console.log(score)
}, 10000)

le code que j'ai mis juste au-dessus va s'exécuter 10 secondes après le chargement de la page ; essaie de cliquer sur ton bouton quelques fois avant et normalement dans la console ça devrait afficher le score que tu as pu atteindre en 10 secondes

#

après la façon dont tu vas accéder à ta valeur dépend de ce que tu veux faire

keen narwhal
#

Merci beaucoup pour ta réponse !
C'est pour faire un petit jeu ou il faut cliquer et suivant les boutons, le score augmente, est multiplié suivant les boutons cliqués etc.

#

Je viens de tester, ça ne fonctionne toujours pas. Même en ajoutant le setTimeout, le résultat reste à 0. J'ai beau cliquer 100 fois sur le bouton, le score reste à 0 en dehors de la fonction 😥 .

lapis onyx
#

montre ton code

bitter belfry
#

Bonjour , question un peut bete mais comment on peut ecouter un formulaire avec vue js

bitter belfry
# worn garnet c'est a dire ?

Genre une page de creation de compte / connexion et quand j’appuis sur se connecter / s’inscrire il va d’abord vérifier les champs etc et si c’est pour se connecter il va vérifier la bdd

#

Mais vu que c’est vu js je suppose que c’est plus un addeventlistener

#

j'ai fait quelque recherche et j'ai vu un v-for et un @click

#

mais je suis completement perdu

dark tartan
#

Yo

#

On peux voir sa ensemble même si j'ai aucune xp en vu je pense pouvoir t'aider

bitter belfry
#

je sais pas si y'a un grande diff entre react et vue

dark tartan
#

Pas vraiment assez légère pour sa que je pense pouvoir t'aider

bitter belfry
#

ok

#

on go en voc ?

dark tartan
#

yes$

bold sparrow
#

Hello, j'arrive pas trop à cerner l'utilité des classes abstraites, de ce que j'ai compris c'est une sorte d'implémentation ?

neat lintel
#

Ca te permet d'obliger à extends de la classe plutot que de créer une instance, si tu veux redéfinir des propriétés ou méthodes par exemple

#

mais ca existe que en typescript

bold sparrow
#

Merci bggg

glass cargo
#

Bonsoir, comment puis-je créer des subcommands avec DiscordJS sans passer par leurs builders ?

dire latch
#

Passer par leur builder ? 🤔

sharp grail
#

Nan si tu veux pas passer par les builder de discordjs tu peux créer un système custom

#

faut dans tous les cas suivre la doc de discord pour connaitre les données à rentrer, leurs noms etc. les précisions, que t'utilises REST (attention au formatage en JSON) ou direct discord.js via l'ApplicationCommandManager

glass cargo
#

J’ai rien trouvé qui correspond 🤔

sharp grail
#

bah l'AppCmdManager c'est juste pour set/get/delete les commands via discord.js

glass cargo
#

Oui

#

Mais dans les options du .set() j’ai rien vu qui concerne les subcommands

sharp grail
#

parce que les subcommands sont contenu dans la cmd

desert riverBOT
#

:discord: Application Commands: Application Command Object
read more

sharp grail
#

bah

glass cargo
#

Je look ça demain 😅

sharp grail
#

en gros

#

les subcommand c'est juste une "option" dans la commande, c'est wrap dans la commande principale

sharp grail
mellow parrot
#

Bonsoir !
pour vous qu'elle est le meilleur hébergeur discord JS ?

past nimbus
#

Alors je suis pas le meilleur mais si jamais je suis free

stable lark
#

const { Client } = require("discord.js");
const client = new Client({intents: 1});
const{ Token } = require("./config.json");

client.once("ready" , () => {
console.log("le bot est connecté sur le discord.");
client.user.setActivity("regarde des bg" , (type: "PLAYING"})
});

client.login(Token)

#

apparemment il y a 4 erreurs et ducoup le node . pour mettre en ligne le bot ne marche pas

torn fog
mellow parrot
mellow parrot
torn fog
#

Il a dit un hébergeur

ocean bluff
#

Ça sert d'hébergeur

torn fog
#

Ton VPS n'est pas un hébergeur il est sur un hébergeur

ocean bluff
#

Mais ça peut servir pour héberger un bot djs

torn fog
#

Oui

ocean bluff
#

Après c'est plus pour faire de multiples choses

bitter belfry
#

parce que quand je cree un compte il n'apparait pas dans la db

bitter belfry
#

(enfaite c'est juste le login le probleme )

timid aurora
#

Bonjour, j'essaye des crée un bot discord mais j'ai un problème avec Visual Studio Code qui n'affiche pas tous les solutions possibles à message.author.hasPermission('') entre les parenthèses je n'ai pas les différentes permissions. Est ce que quelqu'un peut m'aider ?

glass cargo
#

Fin moi en tout cas, ça m’a jamais tout mis.

#

C’est pour ça que j’utilise plus VSC

timid aurora
#

Ah d'accord mais dans un vidéo sur laquel je m'appuie on vois les différentes options

timid aurora
#

euh non .member

#

je me suis trompé

sharp grail
#

message.author n'implémente pas cette méthodex)

#

pas de soucis

sharp grail
glass cargo
sharp grail
#

ah et ça marche bien?

glass cargo
#

C’est un peu lent au démarrage parce que ça index tout les modules, mais sinon c’est hyper bien !

#

En plus je l’ai gratos avec gh student

sharp grail
#

aaah ouais

#

c'est 1 an github student ?

mellow parrot
#

bonsoir, alors j'ai une petite demande à effectuer assez particulière

#

mais une personne aurais un selfbot pour tester mon anti seflbot ?

glass cargo
#

Faudrait demander à wailrone, il me semble qu’il l’a depuis longtemps

glass cargo
bitter belfry
#

y'a t'il une personne qui connais bien vue ? j'aimerai savoir comment utiliser des icons , je galere meme avec la doc

#

c'est bon j'ai trouver ^^

worn garnet
worn garnet
bitter belfry
#

tkt j'ai reussi

topaz oar
#

Hello, peut-on afficher le résultat d'une slash command sans afficher ceci ?

sharp grail
#

Malheureusement

#

fin

#

deux autres possibilités que je vois
Defer l'interaction puis supprimer la réponse

et soit

  • envoyer la réponse de ta commande simplement en envoyant un message
  • follow up (il y aura un reply au message original mais qui affichera un 'message could not be loaded')
pearl shoal
#

Bonjour tout le monde, j'ai un petit problème : j'aimerai masquer les boutons rose lorsque j'ouvre mon menu nav sauf que je n'y arrive pas, pouvez vous m'aider ? J'obtiens une erreur dans la console lorsque j'essaie d'ouvrir mon menu nav et masquer les boutons rose :

const hamburger = document.querySelector(".hamburger");
const navLinks = document.querySelector(".nav-links");
const links = document.querySelectorAll(".nav-links li");
const d1 = document.querySelectorAll('.material-icons')

hamburger.addEventListener('click', ()=>{
    if(getComputedStyle(d1).display != "none"){
    d1.style.display = "none";
  } else {
    d1.style.display = "block";
  }
   //Animate Links
    navLinks.classList.toggle("open");
    links.forEach(link => {
        link.classList.toggle("fade");
    });

    //Hamburger Animation
    hamburger.classList.toggle("toggle");
});
graceful spruce
#

Bonjour, je suis en train de creer un bot discord et je recherche comment faire pour que lorsque l'on clique sur un bouton, cela affiche un formulaire, on le rempli et en fonction de cela un embed s'affiche mais je n'y arrive pas et ne trouve pas de ressources en ligne compréhensible.

graceful spruce
#

merci beaucoup

#

@inland ocean

inland ocean
#

Dr

bitter belfry
#

bonjour , j'aimerai savoir comment je peu faire pour recuperer l'image avec le v-model je peu recuperer le text mais avec l'image je ne sais pas ce qu'il faut mettre

timid loom
# bitter belfry bonjour , j'aimerai savoir comment je peu faire pour recuperer l'image avec le v...

pour l'image tu veux le File ou une url ?

en principe si tu pars en html de base ça va ressembler à ça : https://codepen.io/taink/pen/vYRXqjy
(là je me sers du file pour récupérer l'url et l'afficher directement)
en vue t'utilise pas de document.querySelector mais en gros ça passera par une ref et tu peux récupérer le contenu
alternativement tu peux passer par onchange="myMethod(this.files)" et je crois que ça passe

#

t'es en vue2 ou 3 ?

bitter belfry
#

normalement c'est un file qu'on va devoir envoyer

#

vue 3

bitter belfry
#

je pense que j'ai pas tres bien compris pour le onchange

worn garnet
bitter belfry
#

je ne sais pas comment le mettre en place

#

mettre le onchange devant ne fonctionne pas

#

vu que si ca fonctionne comme le v model bah normalement ca le fait tout seul

worn garnet
#

pas compris

#

mais il faut l'utiliser comme le @click et tu renseigne juste ta function ...

#

le v-model c'est autre chose

bitter belfry
#

J’ai encore du mal avec vue

#

Ca fait presque une semaine que chui dessus

timid loom
#

Je vais t'envoyer un exemple après si tu veux @bitter belfry
Par contre je te préviens tu fais pas les choses sur vue 3 de la manière la plus récente

graceful spruce
#

J'ai reussi à creer un modal pour mon bot discord mais j'aimerai que cela affiche à embed différent suivant ma reponse, peut-etre connecter à une base de données

bitter belfry
#

Mais j’ai fait mon site avec plusieurs tuto que j’ai trouver sur internet

#

Sinon je pense que j’ai un peu compris le système de composants et de vue

#

Avec le routeur

#

Apres le reste c’est du code

pallid plume
bitter belfry
#

Je suis désolé j’ai 0 idée de ce que c’est

pallid plume
#

Pour la recuperation de l'image du devra faire en sorte de la dl sur ton front ? Ou alors tu fais une api qui récupère l'image tu ne pourra pas rendre une image qui est pas présente soit sur ton front soit sur un back ( je dis peut être une connerie mais je ferais ça)

bitter belfry
#

Je ne connais pas encore tout les termes sur vue

pallid plume
#

Vue 3 = Composition API
Vue 2 = OptionAPI

#

Ducoup la tu fais du vue2 sur 3

bitter belfry
#

Au moment ou j’appuis sur envoyer je vais envoyer le formulaire au back

#

Du coup je pense pas qu’il dl l’image

pallid plume
#

D'ailleurs ton sendPost ça sert à rien de faire e.preventDefault

bitter belfry
#

Mais l’image sera stocker dans un dossier image dans le back

pallid plume
#

Tu peux le mettre direct dans le @click.prevent

pallid plume
bitter belfry
#

J’ai essayé de faire un truc du genre axios.post ("")

#

Mais ca ne l’envoyer pas

#

Apres si jamais ta du temps j’aimerais bien que tu m’explique tout ca

#

Je connais encore rien a vue

pallid plume
#

@bitter belfry avec plaisir mais samedi / dimanche je suis pas chez moi

bitter belfry
#

Aujourd’hui ou demain si tu veux

pallid plume
#

Bah nan ducoup relis mon message

bitter belfry
#

T’es pas la samedi et dimanche

pallid plume
#

Pour axios faut faire un axios.post("url",{data:{}})

#

Ah merde j'ai mal écris mais je suis pas là avant samedi / dimanche

bitter belfry
#

J’ai le token dans le localstorage donc je dois aussi mettre la clé ?

#

Vu que j’ai besoin du token pour pouvoir poster

pallid plume
#

Bah ouais tu le passe

bitter belfry
#

Jvais essayer tout ca

pallid plume
#

Tu le passe dans header

bitter belfry
#

Quelle header

pallid plume
#

Ton token

#

Tu le passe par où ?

#

En back comment tu le gère ?

bitter belfry
#

Bah je cree un token a la création de compte

pallid plume
#

Tu stock le token en db ?

bitter belfry
#

J’ai besoin du token pour pouvoir accéder a la page pour pouvoir faire des poste

pallid plume
#

C'est quoi comme type de token ?

#

Jwt?

bitter belfry
#

Stocker je ne sais pas mais le cree oui

#

Ouais avec jwt

pallid plume
#

Mais tu comprends ce que tu fais ou pas ?

#

Parce que ton système me paraît un peu bizarre je t'avoue

bitter belfry
#

Je t’expliquerai ce weekend si t’es la

pallid plume
#

Après je suis pas un expert en back

bitter belfry
#

Bah je genere un token a la creation de compte qui expirera dans les 24h puis pour pouvoir poster un post ou faire un get j’ai besoin d’un token sinon j’aurai pas l’autorisation

#

Sur postman tout les routes fonctionne

pallid plume
#

Oui bah ça c'est bon alors mais ducoup oui passe le token dans header comme le lien que je t'ai passé au dessus

#

Une fois que t'as fais ça pour récupérer l'image sur ton back t'aura juste à faire en sorte que le href de ton front colle au lien back qui correspond à l'image upload

bitter belfry
#

Je vais essayer

#

Apres je sais pas de quelle href tu parle

pallid plume
#

Bah tu voulais pas afficher ton image ?

bitter belfry
#

Je veux juste envoyer les informations remplis dans le formulaire au back pour apres pouvoir l’afficher sur la page

#

Genre comme Twitter

pallid plume
#

Mais ton problème a la base c'est quoi ?

#

C'est le vmodel de l'image ?

#

Ou le fait que t'arrive pas à afficher ?

bitter belfry
#

J’arrive pas à récupérer l’image

pallid plume
#

T'as mis un V-model sur l'input type file ?

bitter belfry
#

Quand je fait un console.log j’arrive seulement à récupérer le txt

pallid plume
#

Bah c'est normal

#

Tu peux pas récupérer l'image complète

#

Ça sera toujours le nom

bitter belfry
#

Le champ de l’image est vide

pallid plume
#

T'as pas de V-model sur ton champ

#

Mais un V-model sur input type file avec post.image

bitter belfry
#

Oui mais le vmodel fontionne pas sur les files si ?

pallid plume
#

T'aurra normalement le nom du fichier

#

Essaye

bitter belfry
#

Ok je vais try

#

il faut que j'utilise un v-on change

pallid plume
#

Essaye de print ça

bitter belfry
pallid plume
#

Ah mais oui d'accord

#

@change met à la place de v-model

#

Et appelle la methods la

#

onFileChange(e) { let files = e.target.files || e.dataTransfer.files; 
if (!files.length) return; this.createImage(files[0]); },

bitter belfry
pallid plume
#

Je suis sur tel désolé

bitter belfry
#

j'ai un truc

#

j'ai utiliser le files

pallid plume
#

Au lieu de v-on tu peux mettre @

#

Petit tips

#

Prend la fonction au dessus comme ça tu vérifie si c'est vide ou pas

bitter belfry
#

avec ta fonction y'a rien

#

j'ai aps fait de console.log

pallid plume
#

Je peux pas test je suis sur tel désolé bah prend ta methods alors

bitter belfry
#

y'a peut etre un truc de mal ecrit

#

j'ai repris le mien du coup

#

on est d'accord que pour le header auth il faut que je fasse un fichier dans le dossier services

pallid plume
#

Non tu le passe dans la requête ?

bitter belfry
#

pour le token si je veux prendre le 1er element dans le tableau c'est bien comme ca ?

#

vu qu'il y a un bearer

pallid plume
#

Pq [1]

#

Si token est un tableau tu dois le mettre dans la moustache le [1]

#

La c'est considéré comme un string

bitter belfry
#

ouais

#

j'ai plein d'erreur

#

il veut toujours pas l'envoyer dans le back

#

pourtant j'ai fait comme c'est demander

hazy mirage
#

Non c’est pas bon la, tu es rendu au 4 eme argument de ta fonction. Supprime le {} rose d’avant

bitter belfry
#

je pense quand meme que j'ai mal fait un truc

#

sa n'envoie rien

lapis onyx
#

axios ne bloque pas automatiquement l’envoie si tu attends pas la réponse de ta requête http ?

bitter belfry
#

j'ai mis data : contents a l'interieur

graceful spruce
#

J'ai cette erreur mais je n'arrive pas à trouver comment la règler

pallid plume
pallid plume
#

@graceful spruce conseil régional t'es dans quelle ville du grand Est ?

misty parcel
#

Salut

#

J'ai un petit problème, j'essaye de communiquer avec une api mais elle me répond des messages de ce style :

#

Et donc de ce que je vois je pense que c'est sensé me retourner value mais non 🤷‍♂️

misty parcel
#

finnhub @queen ocean

queen ocean
misty parcel
#

euh ouais

queen ocean
misty parcel
#

le code... Quel code ?

misty parcel
#

Ah d'ailleurs je viens de remarquer que c'est un mauvais screen, voici le bon

misty parcel
#

Moi j'ai fais ça

const finnhub = require('finnhub')

interaction.reply(`${finnhub.CovidInfo}`)
misty parcel
queen ocean
#

Donc ton code dois pas être bon

misty parcel
#

ah

#

woah ça marche

#

@queen ocean

queen ocean
misty parcel
#

Ah ouais mais du coup je suis face à un impasse la @queen ocean Owo

#

Comment je fais pour ressortir une seule valeur du tableau json ? Pcq la ça me renvoie un paquet incroyablement long de data

queen ocean
misty parcel
#

@queen ocean parse.JSON ?

queen ocean
#

Test et tu verras 😉

misty parcel
#

ok chef

#

Alors il semblerait que ce ne soit pas ça

misty parcel
#

ça me renvoie ça

#

j'ai fais ça

#
const json = data
        const obj = JSON.parse(json);

        console.log(obj.count);
graceful spruce
#

c'est là qu'il me dise qu'il y a l'erreur mais je ne vois pas le problème

graceful spruce
#

quelqun pourrai m'aider svp

bitter belfry
#

j'aimerai savoir pourquoi quand je met un composant dans ma vue ca fait tout crash

broken walrus
# misty parcel ça me renvoie ça

Généralement cette erreur survient quand tu essaies de parse en JSON un objet déjà existant, c'est-à-dire que dans ton JSON.parse(json), tu essaies de transformer un objet en objet, alors que JSON.parse sert à créer un objet à partir d'un JSON stringifié (JSON.stringify)

Plus précisément, ce que tu mets à l'intérieur de ton JSON.parse sera cast en string automatiquement si c'en est pas déjà un
Ce qui me fait dire ça, c'est que si tu essaies de print un objet quelconque dans ta console, ça te retourne "[object Object]".
JSON.parse essaierait alors de créer un objet à partir du string "[object Object]" qui n'est pas une syntaxe valide en JSON, d'où le "Unexpected token".

Donc la solution : pas besoin de JSON.parse, tu as déjà ton objet dans ta variable data 🙂

misty parcel
#

okok

#

bon en tout cas j'ai essayer d'autres api et la j'ai un acces denied

#

j'ai mis mon ip mais 🤷‍♂️

broken walrus
#

La plupart des API demandent un token d'authentification, sois parce que l'API est privée / payante, sois par soucis de gestion
C'est comme le cas des bot Discord qui disposent d'un token, ce token sert à s'authentifier/s'identifier et communiquer avec l'API Discord pour gérer toutes les interactions 😉

misty parcel
#

comment on sait si l'API est privé ou payante ?

broken walrus
#

C'est mentionné sur le site de l'API que t'essaies d'utiliser

misty parcel
#

ok

#

Alors la pour le coup aucune trace @broken walrus

#

Ou alors je cherche mal

broken walrus
#

Je vais te dire

misty parcel
broken walrus
#

Tu t'es créé un compte et tout ?

misty parcel
#

oui

broken walrus
#

sus

misty parcel
#

very sus

#

est ce que le token doit obligatoirement etre API_TOKEN ?

#

sous cette variable en tout cas

broken walrus
#

Ah attends j'ai capté

#

T'utilises quoi pour appeler l'API ?

#

axios / fetch... ?

misty parcel
#

euf

#

alors

#
const cocApi = require('clash-of-clans-api');
const coc = require('clashofclans.js');
broken walrus
#

c'est un peu overkill, et la dernière fois que la library a été publiée c'était il y a deux ans... x)

misty parcel
#

ah

broken walrus
#

Ça doit être un peu vieux

misty parcel
#

comment ça overkill

broken walrus
#

Installer une library pour appeler une API spécifique

#

Tu peux faire ça à la main et c'est pas bien compliqué

#

Par exemple avec fetch :

broken walrus
#

Attends je vais te montrer x)

#

T'es nouveau en js ?

misty parcel
#

okok pcq bon je t'avoue que mon cerveau chauffe un peu la

#

non mais j'ai jamais appeler d'APIs

#

et ça m'a l'air cool

broken walrus
#

Bah c'est pas bien compliqué

misty parcel
#

👀

broken walrus
#

Même en vanilla JS t'as déjà la library fetch de configuré

#
fetch("https://api.clashofclans.com/v1/leagues", {
        "headers": {
            "Authorization": "Bearer TON_TOKEN_D_API"
        }
    })
.then((res) => res.json())
.then((leagues) => {
    console.log(leagues);
});
#

C'est un exemple bien évidemment

#

Tu modifies avec ton token et ton endpoint

misty parcel
#

t'imagines pas comment j'me suis jeter dessus

broken walrus
#

xD

misty parcel
#

bon en vrai je vais essayer de comprendre le truc

pallid plume
#

Y'a rien de très dur 👌

misty parcel
#

Alors apparemment fetch n'est pas défini

broken walrus
#

Ah

#

Alors t'es sous nodejs

misty parcel
#

ouais

broken walrus
#

npm i node-fetch

#

et tu mets ça quelque part

#
const fetch = (...args) => import("node-fetch").then(({ default: fetch }) => fetch(...args));
misty parcel
#

Alors

#
{
  reason: 'accessDenied.invalidIp',
  message: 'Invalid authorization: API key does not allow access from IP ...'
}
#

Qu'est ce que j'ai fais comme connerie encore

#

@broken walrus : (

broken walrus
#

La clé d'API que t'as spécifié accepte pas ton IP

misty parcel
#

ouais mais du coup comment je palie à ça

#

et pourquoi ça accepte pas mon ip ? kappaangry

broken walrus
#

T'as mal du config

misty parcel
#

config quoi ?

#

al clé ?

#

la

broken walrus
#

Vérifie que dans "Allowed IP addresses" c'est bien l'IP qu'il te donne dans le message "message: 'Invalid authorization: API key does not allow access from IP ...'"

misty parcel
#

ben j'ai fais ça hein 🤷‍♂️

#

Ok j'ai mal mit l'adresse IP ptdr je suis con

#

enfermez moi

#

Cerise su le gateau : Je peux pas modifier la clé PepeClown

broken walrus
#

Faut la supprimer et en faire une autre

misty parcel
#

yep

#

Juste @broken walrus

#

tu as trouver ou ça https://api.clashofclans.com/v1/leagues

broken walrus
#

misty parcel
#

ah

#

ok merci

#

euh... comment on get un lien ?

#

ah ouais ok nan c bon

broken walrus
#

x)

misty parcel
#

C'est terrible, toutes mes excuses

#

alors bon

#

j'ai encore une p'tite interrogation

#

j'ai ça en temps

#

Comment je converti ça en date normal ? du genre : X\X\X

broken walrus
#

Alors

#

Euh

#

Tu peux split le string

#

on peut constater que ça se forme de la façon suivante "AAAAMMDD" au début, avec A l'année, M le mois et D le jour

misty parcel
#

ouais

broken walrus
#

Du coup tu peux get les 4 premières lettres du string, ce sera l'année, les 2 prochains le mois et les 2 d'après le jour

misty parcel
#

oh mon dieu comment je fais ça moi

#

avec split et trim ?

broken walrus
#

slice

#

ça prend deux paramètres en entrée, l'index de début et l'index de fin du string

#

par exemple

#
startTime.slice(0,4);
#

ça te retournera 2022

#

.slice(4,6) ça te retournera 07

#

.slice (6,8) ça te retournera 01

#

etc...

misty parcel
#

okok je vois

#

et aussi

#

décidément

broken walrus
misty parcel
#

Comment on ajoute un paramètre obligatoire quand on communique avec une api ?

#

cette api la en loccurence

pallid plume
#

Tu peux utiliser Date() aussi pour convertir le temps

broken walrus
pallid plume
#

T'es sur de toi ?

broken walrus
#

Je viens d'essayer

misty parcel
#

Comment je rajoute un paramètre obligatoire svp : o

broken walrus
#

Ah j'ai rien dit

pallid plume
#

Essaye un Date.parse() et montre PLS

misty parcel
#

Je redécouvre la vie c'est fou

broken walrus
misty parcel
#

bah en gros j'aimerais avoir des infos sur un joueur donc faut bien entrer à un moment le nom du joueur

#

et je veux mettre ça en option required: true

pallid plume
misty parcel
#

oui

pallid plume
#

Merde j'ai cité le mauvais

misty parcel
#

oh tkt

pallid plume
#

Bah voilà dans ton if tu fais la requête ou non

broken walrus
misty parcel
#

genre si je fais /info joueur: Lucky

broken walrus
#

(Cas fonctionnel en dernier)

pallid plume
misty parcel
#

oui mais moi j'ai ça

pallid plume
#

Bah avant de fetch tu regardes si t'as bien le paramètre

broken walrus
#

Ah ok donc c'est via une commande ?

misty parcel
#

oui

#

ue slash command

broken walrus
#

Ah ok

misty parcel
#

ok je viens de me rappeler que j'utilise sheweny

broken walrus
#

Bah t'as pas besoin de vérifier, discord submit pas la commande tant que c'est pas rentré si t'as spécifié que le paramètre était requis

misty parcel
#

non attendez je me suis mal exprimé

#

j'suis un peu ballonné en ce moment

broken walrus
#

x)

misty parcel
#

En gros j'ai une slash command qui comporte une option et moi je veux que le bot réponde des informations sur la personne se trouvant dans l'option

broken walrus
#

Ok j'vois

#

Ah donc

#

Ok

#

oui

#

Bah euh...

#

C'est à rajouter dans l'endpoint de ton url normalement ?

#

Enfin j'ai pas bien saisi
Tu veux faire une commande pour récupérer les infos d'un joueur CoC, c'est ça ?

misty parcel
#

https://api.clashofclans.com/v1/goldpass/seasons/current + /nomDuJoueur ?

broken walrus
#

Ok

misty parcel
#

ouais bon j'ai mis goldpass mais tkt

broken walrus
#

Faut que tu récupères le tag du joueur dans ta slash command apparemment

#

et du coup oui tu ferais

#
fetch(`https://api.clashofclans.com/v1/players/${le_tag_du_joueur}`, {blablalba})
misty parcel
#

Ok

#

🙏

#

Je test

broken walrus
#

Je connais pas sheweny, je suppose que c'est une fork de discordjs ? kapp

queen ocean
broken walrus
#

Ah ok

misty parcel
#

Alors alors

#

Me revoila

#

Comment on remplace un # par un % ? iwi

broken walrus
#

Dans un string ?

copper pagoda
misty parcel
#

ouais mais c'est dans une variable

broken walrus
#

Bah

copper pagoda
#

Je l'ai fait perso pour une API.

misty parcel
#

j'ai ça https://api.clashofclans.com/v1/players/${pingOPtion} et ce que je veux modifier c'est ce qui se trouve dans ${pingOption}

broken walrus
#
let courge = "qsdqsdqsd#qsdqsd"
courge = courge.replace('#', '%');
#

ça change rien

misty parcel
#

enh

copper pagoda
#

pingOption est sensé être un string donc ça change rien que ton string soit appelé par une variable.

misty parcel
#

SyntaxError: Unexpected token < in JSON at position 0 🤔

copper pagoda
#

Tu as un fichier json ?

misty parcel
#

euh

#

non

copper pagoda
#

Fait voir ton code.

broken walrus
misty parcel
#
const cocApiToken = api.API_TOKEN;
    const pingOPtion = interaction.options.getString("test");
    const target = `https://api.clashofclans.com/v1/players/${pingOPtion}`.replace('#', '%');
    const fetch = (...args) => import("node-fetch").then(({ default: fetch }) => fetch(...args));

    fetch(`${target}`, {
        "headers": {
            "Authorization": `Bearer ${cocApiToken}`
        }
    })
    .then((res) => res.json())
    .then((leagues) => {
        console.log(leagues);
    });
broken walrus
#

Et elle survient où ton erreur ?

copper pagoda
#

Essaye de mettre return avant res.json()

broken walrus
#

Pas besoin

copper pagoda
#

Tu penses ?

broken walrus
#

y a pas de { }

misty parcel
#

y'a qu'un chemin d'acces vers un fichier node-fetch de node module

#

pour l'erreur

broken walrus
#

Si tu prends une arrow function, si tu mets pas de { } ça return directement le résultat de l'instruction qui suit

copper pagoda
#

oki.

broken walrus
#

Par contre si tu fais .then((res) => { return res.json() }) alors là il en faut un

copper pagoda
#

Ah oui j'avais pas vu y a pas les {}

misty parcel
#

.then((res) => res.json()) ça sert à quoi ?

copper pagoda
#

ça sert à récupérer les infos de ton API sous le format json il me semble.

misty parcel
#

okok

broken walrus
#

Récupérer les infos du body de ton fetch sous format json, oui

misty parcel
#
undefined:1
<html>
^

J'avais pas vu mais ça m'a renvoyer ça avant de mettre l'erreur

copper pagoda
#

Ah bah y a rien c'est pour ça.

broken walrus
#

T'as du rater ta requête

copper pagoda
#

Ouais c'est sur.

misty parcel
#

a