#javascript-typescript

1 messages · Page 79 of 1

copper pagoda
#

Oui exact

#

dans quel select ?

full flare
full flare
copper pagoda
#

Ah bah ça marche pas

full flare
#

Quoi ça marche pas je viens de te le faire en vidéo

copper pagoda
#

Bah j'ai essayé et non

#

att je retest

full flare
#

Tu as juste à copier coller ce que j'ai fais et tu as comme sur la vidéo

copper pagoda
#

G copier la partie du script mais ça marche toujours pas

full flare
#

Alors ça vient de ton coté, je n'y peux rien, télécharge ce que je viens de faire et test

#

Tu dois avoir autre chose qui obstrue ce que je viens de te faire 😉

copper pagoda
#

Bah aprÚs comme je t'ai dit au moins 3 fois je modifie la page avec des sections et ça retourne sur la toutes premiÚre section et moi je voudrai que ça reste sur la section du questionnaire

full flare
#

J'ai peut ĂȘtre trouvĂ© une solution

#

Comment tu fais Ă  passer d'une section Ă  l'autre @copper pagoda ?

copper pagoda
#

Avec le JS je change juste le style du display

full flare
#

Tu peux voc @copper pagoda ?

copper pagoda
#

Ouais stv

desert riverBOT
queen ocean
#

Hop nouveau bot pour vous aidez KaPOP

oak turret
#

il y est plus ? kappa

desert riverBOT
spring dock
oak turret
#

je sais pas du tout ce que sont les slash commands et je le vois pas en serveur en commun

#

j'dois ĂȘtre fou

desert riverBOT
#

:djs: Message (extends Base)
Represents a message on Discord.

keen igloo
blazing wadi
#

je crois

jovial lion
#

Bonsoir ! Je me suis lancĂ© depuis peu dans l'apprentissage de la crĂ©ation d'un bot discord et en faisant le miens j'ai une petit erreur que je ne comprend pas si quelqu'un peut m'aider 😉

spring dock
#

Bonsoir, sans code on peux pas t'aider

peak cedar
#

||On et pas devin ? 🙂 ||

jovial lion
#

Pas de soucis le seul problùme c’est que ça dit pas dans quel fichier est le problùme je vous envoie tout le bot ?

slim anvil
#

Je dirais que c’est au niveau de la ou tu utilises prism-media

#

(Le package)

jovial lion
dark leaf
jovial lion
#

ça m'aide pas ^^'

peak cedar
#

@jovial lionEngros si j'ai comprit tu aurais du le mettre en zips pour facilité la download

jovial lion
#

C'est mieux ?

peak cedar
#

apres je peux dire de la merde mais je sais pas j'ai pas compris nn plus 😂

jovial lion
#

xD

#

@peak cedar Tu aurais une idĂ©e de pourquoi ça ne marche pas ? 🙂

peak cedar
#

ok alors je viens d'arrivé dans le channel

#

je vais voir

#

c quoi le prob

#

@jovial lion

#

alors si j'ai comprit ta pas d'event definit

#

il et definit ou ?

slim anvil
#

l'autre il screen son token..... harold

peak cedar
#

@slim anvil:(

jovial lion
#

ça n'influe pas

peak cedar
#

client.on('error', (error) => console.error(error));


#

le error n'est pas deff

#

@jovial lionJe vais tester un truc si sa marche pas je t'aide demain

#

^^

#

sauf si qq'un viens

#

mais att je test un truc

jovial lion
#

Pas de soucis merci 😉

peak cedar
#

@jovial lionj'ai trouver en haut de ton code

#

en dessous de path

#

tu met sa

#

const error = console.log("y'a une erreur Zebi")


#

tente de faire sa

#

en attendant

#

je re demain stv

#

Mes dm sont ouvert pour de l'aide pas des trucs chelou genre ahah DM OUVERT

#

😂

#

Le bot ce start pour moi aucun soucis bon a demain des bizu !

#

et Bonne soirée

slim anvil
jovial lion
#

C'est pas ça xD

slim anvil
#

ah non c'est pas ça je te confirme il te raconte des cracks la

jovial lion
#

Bah ouais c'est ce que je me disais aussi j'ai testĂ© au cas oĂč mais bon xD

dire latch
#

Vous savez oĂč je pourrai stocker des vidĂ©os en grande quantitĂ© ? Et gratuitement ? Autre que mega qui met leur quota chaque jour

dark leaf
#

YouTube skype_think

dire latch
#

A part youtube

slim anvil
#

De maniĂšre gratuite sans rate limit journalier honnĂȘtement j'en connais aucun, t'as vraiment besoin d'upload "a l'infini" chaque jour ?

dark leaf
#

Vidéo en grande quantité et gratuit ça n'existe pas monsieur

#

Tu as toujours Dailymotion

#

Sinon tu peux créer un bucket AWS, tu as 75GO offerts, et ça coûte pas grand chose au To/mois.
TU les upload sur le bucket et tu les affiche dans un player tout simplement

dire latch
dire latch
dark leaf
#

Et moi je voudrais pouvoir stocker mes dizaine et dizaine de films que j'ai sur mon serveur chez moi gratuitement dans le cloud.... Si seulement. Réfléchis à ce que tu veux réellement sinon va sur youtube ou dailymotion ^^

#

C'est trop simple de tout vouloir gratuitement, les services et le stockage ont un prix

#

Si c'est gratuit c'est toi le produit sue

dire latch
#

Mega est gratuit đŸ€” Drive est gratuit đŸ€”

Mais ouais, je dois ĂȘtre aveugle pour voir que c'Ă©tait gratuit đŸ€·â€â™€ïž

#

Je veut juste contourner le systĂšme de quota de mega

slim anvil
#

Donc c’est bien ce qu’il dit ce qui est gratuit est rate limited

#

donc c’est du faux gratuit, c’est pour te laisser l’utiliser et te pousser Ă  payer quand c’est arrivĂ© au max

dim sage
#

👀

dark leaf
#

^^

slim anvil
#

Drive pareille c’est pas gratuit t’as une limite de taille

#

mais t’auras 0 service qui te laissera pomper leurs stockage sans payer ou sans retour en tout cas

#

(En dehors de la version free)

dire latch
#

Ah, c'est juste le quota de merde qui fais chier, dommage 😔

#

Merci quand mĂȘme @slim anvil

slim anvil
#

Tu peux sinon le faire sur 2 services avec ratelimit et quand t’es bloquĂ© sur 1 tu passes Ă  l’autre 200iq

dire latch
#

Ouais aussi

bold sparrow
#

Bonjour.

#

J'aimerais faire en sorte que lorsque je créer un array, les valeurs à l'intérieur doivent correspondre à un autre Array, je m'explique, j'aimerais que l'array soit de type d'un array ( Pour gérer les permissions d'un membre )

#

PS: j'utilise TS

slim anvil
#

pas compris ?? đŸ€”

bold sparrow
#

Mince ...

timid loom
#

tu veux copier les valeurs d'un array dans un autre?

bold sparrow
#

En fait, j'aimerais que dans mon command constructor, il y ait un array de permissions à mettre en option, pour le bot et le membre, j'aimerais que les valeurs mises à l'intérieur soit obligatoirement des valeurs disponibles dans un array déjà définie

#

A titre de comparaison, pour les intents, le type IntentsFlags

timid loom
#

un enum alors

slim anvil
#

ouais c'est le mieux

timid loom
slim anvil
#

et tu fais un validator dessus pour vérifier que ca existe

timid loom
#

dans leur cas c'est un bitfield c'est pour ça qu'ils mettent les 1 << devant chaque valeur

bold sparrow
#

D'accord, à vue d'oeil comme ça, ça me paraßt un peu "complexe"

#

Je me trompe sûrement !

timid loom
#

mais si tu es sur du ts l'idéal c'est les enums

bold sparrow
#

Donc les enums ok, déjà merci pour le lien

timid loom
#

les bitfields c'est pas nécessairement compliqué non, tu vérifies juste qu'un bit soit à 1 ou 0

bold sparrow
#

La validation avec les enums se fera en temps réel ?

#

Pas au moment de start ?

timid loom
#

nan mais tu peux valider comme l'a dit enzo

#

une solution moins complexe c'est justement les bitfields parce que tu vas juste vérifier les valeurs de chaque bit

#

aux positions que tu auras prédéfinies

bold sparrow
#

Donc faire comme ce qu'on fait Discordjs ?

timid loom
#

Oui, c'est une possibilité

bold sparrow
#

Pour les permissions ils font la mĂȘme chose en plus

#

Ils extendent les bf

timid loom
#

yep

bold sparrow
#

Bah écoute, je vais essayer avec les enums pour commencer, ça me fera découvrir ce constructeur

#

Btw, leur classe est super bien foutue

#

J'avoue

timid loom
#

yep c'est plus logique de faire ça dans un contexte oĂč tu utilise le typescript

bold sparrow
#

Ensuite pour le "validator" j'aurais plus qu'Ă  faire une comparaison des arrays en quelque sorte ?

#

Euh, c'est pas un array

#

xD

#

je vais me renseigner sur ce constructeur

timid loom
#

la page de la doc de typescript te sera plus utile que mes messages pour faire un validator

bold sparrow
timid loom
#

ils mentionnent comment ça fonctionne et tu pourras voir comment valider ça

#

globalement tu vérifies juste que la clé existe

bold sparrow
#

Et ce validator sera donc en temps réel ?

#

Si j'ai bien compris

#

Puisqu'il vérifie chaque clé

timid loom
#

bah vu que le but est de vérifier que c'est bien dedans à l'exécution oui c'est en "temps réel"

bold sparrow
#

Ah, tu m'as parlé d'execution

#

Donc il faut exécuter pour le savoir ?

timid loom
#

lĂ  tu m'as perdu

bold sparrow
#

Haha

#

Tu veux que je sois plus précis quand je parle de temps réel ?

timid loom
#

ouais

bold sparrow
#

Quand je crĂ©er l'array, il devra ĂȘtre du type de l'enum, donc les valeurs seront quelque part ( DĂ©finies )

#

Si je mets par exemple BAN_Mbmrs, ça me dise qu'il existe pas dans ce type là

#

Sans éxecuter, c'est mieux lol ? ^^

timid loom
#

du coup effectivement ça aura un type, et ce sera un objet utilisable à l'exécution

bold sparrow
#

Exactement comme pour les intents flags

timid loom
bold sparrow
#

Et pour ĂȘtre sur que tu comprennes ce que je veux, en voici l'exemple :

#

Une image vaut mieux que mille mots lol

timid loom
#

oui ça c'est bon normalement

#

@slim anvil tu m'arrĂȘtes si je me trompe

bold sparrow
#

Bon dans tous les cas, je vais faire ça et je te redis si ça fonctionne bien comme je le souhaite, parce que bon le but de TS c'est de savoir avant d'exécuter

#

J'attends juste la réponse d'Enzo puisque tu l'as mentionné

timid loom
#

ça c'est sûr que ça aura un type

bold sparrow
#

Tient bah j'en profite, j'ai une derniĂšre question

slim anvil
#

je dois lire quoi juste svp

#

j'aia rrĂȘtĂ© de suivre apres ma rĂ©ponse

bold sparrow
#

Haha, en gros je veux savoir si le constrcuteur enum à l'aide du validator me permettrait d'avoir une correction en temps réel comme sur le screen ici #javascript-typescript message

ancient sonnetBOT
#
Citation de KPS7607 posté dans javascript

Cliquez sur [📝](#javascript-typescript message) pour accĂ©der au message
Et pour ĂȘtre sur que tu comprennes ce que je veux, en voici l'exemple :

bold sparrow
#

Que si j'écrive BAN_Mbmr, ça me dise que ça n'existe pas avant d'éxecuter le programme

slim anvil
#

Je comprend pas trop ce que tu cherches Ă  faire enfaite du coup

#

tu peux m'expliquer le but du truc sans me parler de ce que tu fais au niveau code

bold sparrow
#

Je veux que dans mon constructeur de commandes, il y a 2 props, les perms du bot et les perms du membre

#

Je veux faire en sorte que les valeurs présentes dans ces 2 tableaux, soient des valeurs déjà définies

#

En gros que ces 2 props, soient typĂ©es de sorte Ă  ce que si je me trompe en Ă©crivant une permission FLAGS, ça me dise que ça n'existe pas avant mĂȘme d'Ă©xecuter le code

#

Comme pour les Intents, tu as vu sur le screen que si je me trompe dans la casse, ça me dit que ce n'est pas possible d'assigner un autre type.

#

Est-ce que c'est mieux ?

#

j'espĂšre que oui

slim anvil
#

ah oui okay, bah du coup je pense que le truc de taink ca devrait etre ok, enfin j'imagine que ca devrait l'ĂȘtre đŸ€” aprĂšs sans avoir tester avant je peux pas te l'assurer a 100%

keen narwhal
#

Bonjour

#

une personne peut m'aider s'il vous plaĂźt, cela fait depuis 6 jours que je suis sur ce problĂšme..

timid loom
#

tu devrais vérifier que channel est bien défini avant d'accéder à une de ses méthodes

bold sparrow
#

Je vais tester ça je vous redit, merci les gars

timid loom
#

if (channel)

dire latch
#

VĂ©rifie si ton salon existe ou n'existe pas 😉

keen narwhal
#

c'est une Catégorie, justement le bot crée le salon

dire latch
#

Dr Taink 😂

#

Il ne le crĂ©e pas lĂ  đŸ€”

keen narwhal
#

Nan tout t'est cassé

timid loom
#

avant de fetchWebhooks tu devrais juste vérifier que ça existe

#

que ce soit créé par le bot ou non tu devrais le faire

keen narwhal
#

et pour vérifier je met juste if(channel) ?

timid loom
#

ouais

keen narwhal
#

au dessu de code ?

#

de fetchWebhooks

timid loom
#

bah lĂ  oĂč c'est utile quoi

dire latch
#

-__- Relis mdr

keen narwhal
#

je test sa je vous redit sa

#

jvais cablé

timid loom
#

alors

#

tu ne veux exécuter ton code lié aux webhooks que si ton channel est défini

#

tu devrais juste faire une condition quoi c'est pas compliqué

#

pas seulement sur la premiÚre ligne liée

keen narwhal
#

if(!channel)
{
// fait quelque chose
}
un .send fonctionne ?

timid loom
#

un .send?

#

et pourquoi if(!channel)

keen narwhal
#

pour la conditions

timid loom
#

nan mais

#

tu veux vérifier que c'est là, pas le contraire

keen narwhal
#

Sa te dérangerait de venir vocal, car je comprend rien.. désoler

timid loom
#

je peux pas ĂȘtre plus clair que je le suis maintenant

#

fais un if quoi

#

t'en as fait un juste au-dessus manifestement vu qu'il y a un else donc tu sais ce que c'est

keen narwhal
#

oui

slim anvil
#

Sinon sur https://g-ca.fr/offres y a des offres de personne qui peuvent vous faire des bots fonctionnels kapp

GCA

Tu recherches ou tu es un développeur, graphiste, modélisateur, ou tout autre créateur de contenu ?
Tu es au bon endroit ! Tu peux dĂ©sormais poster une annonce ou mĂȘme proposer tes services trĂšs facilement !

Qu'attends-tu ? Rejoins-nous dĂšs maintenant !

keen narwhal
#

payant...

timid loom
#

ton if doit englober toute la partie webhooks

keen narwhal
keen narwhal
timid loom
#

ok donc tu sais pas ce que ça veut dire

#

dans ce cas rajoute juste if(!channel) return Ă  la ligne 216

keen narwhal
#

d'accord

#

il crash plus

#

tu peux m'expliquer ?

#

se que tu a fait la en gros please

timid loom
#

si le channel existe pas, tu arrĂȘtes la fonction

#

en gros voilĂ 

keen narwhal
#

Par contre x)
Mtn quand je lui envoi un mp, il m'en voi l'id mais dans la console x)

timid loom
#

je sais pas ce qu'il fait ton bot (et je vais pas le faire Ă  ta place) donc je peux pas t'aider davantage

#

informe toi sur le javascript avant de continuer

#

ce que tu fais c'est comme vouloir réparer une voiture sans comprendre le fonctionnement d'un moteur

#

apprends le fonctionnement du moteur et tu pourras réparer la voiture

#

ça sert à rien de sauter les étapes

bold sparrow
#

@timid loom ( désolé de la mention )

#

J'ai trouvé un module qui vérifie les enums

#

Mais je sais pas si ça correspond au validator dont tu me parlais

#

Sur leurs github, j'ai trouvé cette fonction js export function checkValidValues(object: { someProperty: any }, values: any[], done: Function, validatorOptions?: ValidatorOptions) { const validator = new Validator(); const promises = values.map(value => { object.someProperty = value; return validator .validate(object, validatorOptions) .then(errors => errors.length.should.be.equal(0)); }); Promise.all(promises).then(() => done(), err => done(err)); }

keen narwhal
#

Y'a pas une gentil personne qui peux allez look ma demande de dev x) #demande-de-dev skype_sad

dire latch
#

Il faut attendre

keen narwhal
#

Juste de l'aide pour mon code

ancient sonnetBOT
#
Citation de GCA-Web3198 posté dans demande-de-dev

Cliquez sur [📝](#demande-de-dev message) pour accĂ©der au message

bold sparrow
#

😋

#

(Rémunérer)

keen narwhal
#

Ha, je me suis sûrement trompé désolé

deep torrent
#

Hey wavey ,
Est-ce que quelqu'un sait comment extraire chaque frame d'un gif et que cette frame soit utilisable par canvas (NodeJs)?

slim anvil
#

tu veux le faire a la main ou avec une petite lib

deep torrent
#

Le plus simple xd

#

A la fin je pense rendre open source le mini projet que je fais

#

Donc v'la

slim anvil
deep torrent
#

Déjà utilisé...J'ai pas réussi

#

Fin...Aussi pas trop compris, comment il marche

fleet scaffold
#

đŸ„ł

#

Moi je sais faire

deep torrent
#

Bah....Ptet...Tu pourrais dire... PHP Man

fleet scaffold
#

Une seule fonction stonks

deep torrent
#

Je l'ai aussi déjà use...Mais j'avais r capté mdr

fleet scaffold
#

Et aprĂšs tu utilises fs.createReadStream

#

Pour utiliser le buffer

deep torrent
#

T'as pas un bou de code? Flemme de trop réflechir

fleet scaffold
#

Bah nan vu que j'utilise pas ce module et j'ai pas mon pc 😐

deep torrent
#

Bah...

#

Non

#

xd

#

Lui

#

Il return les pixels

#

Moi je veux l'image en mode canvas xd....

fleet scaffold
#

Mais mec 😐

#

Il te retourne le fichier

#

Et le fichier retournĂ© c'est Ă  partir de lĂ  oĂč est lancĂ© le code

#

Si c'est dans root

#

Il enregistrera dans root

#

đŸ„ł

deep torrent
#

Mais je veux pas save

#

Je veux directement l'injecter dans canvas pour le manipuler

fleet scaffold
#

Bah demande Ă  flav

#

Il le fait lui

deep torrent
#

Il m'a foutu un vent

fleet scaffold
#

Je vais lui demander

deep torrent
#

Tkt

#

Il vient de me rep

#

xdd

fleet scaffold
#

Bah il utilise gif frame

#

😐

#

Et tu as juste pas besoin de la fonction loadImage

#

Vu qu'il fait exactement createReadStream

#

@deep torrent

deep torrent
bold sparrow
#

Hello

#

Dites-moi, on peut faire un Array Constructor en spécifiant qu'il doit respecter un type ?

#

( Typescript )

#

j'aimerais faire quelque chose de ce genre :

timid loom
#

PermissionsHandler[]

bold sparrow
#

Sauf que PermissionsHandler est un type, si je l'utlise ça me mettra une erreur

timid loom
#

tu devrais jamais utiliser le constructeur Array

#

dans ce cas déclare un tableau vide

#

t'es pas obligé de passer par l'inférence

#

tu peux dire par exemple const botPermissions: PermissionsHandler[] = []

bold sparrow
#

Je suis dans un constructor

#

Ca passe de faire ça ?

timid loom
#

bah oui tu peux évidemment définir un type sur une variable

#

teste au pire tu verras bien

#

j'aurais mĂȘme tendance Ă  te dire qu'en typescript t'as pas besoin de dĂ©clarer tes variables dans un constructor en soi

#

mais un constructor ça reste une fonction comme une autre

bold sparrow
#

L'élément de liaison 'PermissionsHandler' possÚde implicitement un type 'any'.

timid loom
#

envoie le code complet

bold sparrow
#

je t'envoie le constructor

timid loom
#

ah t'es dans les paramĂštres d'une fonction

bold sparrow
#

Yep

timid loom
#

pour moi tu ferais déjà mieux de passer par un typedef sur les options du constructeur

#

pourquoi tu fais des new partout par contre?

bold sparrow
#

Je sais pas j'ai eu une folie

#

Je vias dégager tout ça

#

Tqt pas mdrr

timid loom
#

les array et les objets tu les définis via [] et {} respectivement

bold sparrow
#

Yep

bold sparrow
#

Avec les décorateurs ça passe tu penses ?

timid loom
#

att je vais essayer de te trouver un exemple

bold sparrow
#

Aussi oui pourquoi pas x)

timid loom
#

nan mais déjà un truc que tu peux faire

#

c'est déclarer le type plutÎt que faire de la déconstruction

#

genre

#
class MyClass {
  public name: string;
  public flags: string[];

  constructor(opts: {name: string, desc: string, guildOnly: boolean}) {
    opts.name; // string
    opts.desc; // string
    opts.guildOnly; // boolean
  }
bold sparrow
#

Je vois ce que tu veux dire.

timid loom
#

aprÚs pour rendre le truc plus lisible tu peux déclarer le type avant

#

et ça c'est un typedef

#

Genre typiquement t’appelleras ça "MyClassOptions"

bold sparrow
#

Hum là tu me dis de créer une autre classe en guise de typedef ?

#

Okay ça marche, je fais faire ça

timid loom
#

pas forcément une autre classe

#

tu peux juste déclarer un type

bold sparrow
#

Je vais faire en sorte d'avoir maClass { clientoptions, mes options }

#

Ouais j'vais déclarer un type, ça sera plus rapide

#

Que d'étendre tout le temps x)

timid loom
#

le plus simple c'est de faire une interface avant et d'utiliser ça comme type

bold sparrow
#

interface Options {}

#

?

timid loom
#

Ouais voilĂ  par exemple

#

pour t'y retrouver cela dit je te conseille de mettre TaClasseOptions plutĂŽt

bold sparrow
#

Oui oui t'inquiĂštes pour le nom

#

C'est du détail haha

#

J'te remercie

keen narwhal
#

Bonjour une personne peut vocal, pour m'expliquer un truc sur mon bot, s'il vous plait, sa fait 7 jour que je suis dessus, je comprend rien.. car il faut que je modif un fichier pour qu'il fonctionne mais je ne comprend pas comment fonctionne le fichier

#

mentionnez moi si vous voulez bien

sand quail
#

Donne plus d’info ?

#

C’est quoi comme fichier ?

#

L’index ?

supple cairn
#

Bonsoir est ce que quelqu'un aurait un code pour mettre du css a un margin-top choisi et quand on arrive en srcollant a ce moment tu margin ca nous rajoute le css choisi. Je ne connais casiment rien au js donc merci a ceux qui pourront m'aider 🙂

bold sparrow
#

@timid loom dans le super(), il demande un argument, lequel ?

supple cairn
#

je sais pas faire de javascript 🙂

bold sparrow
#

Renseignes-toi, tu peux le faire en js, ou plus simplement avec jQuery

supple cairn
#

ok, je m'en douter un peu

#

je vais faire ca

timid loom
bold sparrow
#

D'aprĂšs toi, il attends quoi ?

spring dock
#

Options

bold sparrow
#

Le plus évident, pourtant ça ne fontionne pas

spring dock
#

Code + erreur pls

bold sparrow
#

Yep

#

Et du coup tu as la classe étendue au dessus

spring dock
#

forcĂ©ment regarde oĂč tu met ton objet

#

et je pense pas que le this.name et this.dirname ce soit souhaité

#

si?

bold sparrow
#

Si

spring dock
#

bah du coup met juste ton objet entre les parenthĂšses de super();

bold sparrow
#

Il ne l'accepteras pas

#

Je peux tester mais je connais le résultat

sand quail
#

Pourquoi t’essaye de dĂ©finir plusieurs fois le nom ?

bold sparrow
#

C'était pour montrer que ça fonctionnerait pas dans super

#

Ce n'est pas prévu que je le déclare plusieurs fois

sand quail
#

T’essaies de faire quoi ?

bold sparrow
#

C'est dit plus haut

#

Je sais pas quel argument attends mon super()

sand quail
#

Si tu mets ta souris entre les parenthÚses ou sur le super ou un truc du genre, ça te le dis

#

Ça te marques un petit message

bold sparrow
#

Je sais

#

Mais l'argument qu'il attends par principe, il le refuse

#

C'est moi qui ait créé son argument

#

Donc je sais ce qu'il attends

peak cedar
#

c un .ts et pas js c normal ?

#

@bold sparrow

bold sparrow
#

Oui

spring dock
# bold sparrow Oui

Faut juste que tu mette les autres éléments que ta dans ton interface CommandsOptions

#

et t'aura plus l'erreur

#

et si ta des éléments pas obligatoire, tu peux mettre key**?**: type

#

dans ton interface

bold sparrow
#

Ca me paraßt cohérent !

#

C'est vrai que je n'y ai pas pensé ...

spring dock
#

et js bah javascript

peak cedar
#

okok Merci @spring dock

#

je suis maxi bg

lyric saddle
#

c'est de l'aide ici ?

spring dock
#

oui

lyric saddle
#

ok

#

j'ai programé mon bot pour qu'il fasse du reaction role

#

et ca ne marche pas et je ne trouve pas l'erreur ;-;

crimson fern
#

Sans le code, je pense qu'on va avoir du mal à t'aider 🙂

lyric saddle
#

oui 2sec

#

je suis débutant donc excuser moi si c'est des erreurs bidons

sand quail
#

Y’a une erreur ou pas avec ?

#

Parce que là c’est quoi le problùme ?

lyric saddle
#

oui y'en a une sur la ligne 46 mais j'arrive pas a la trouvé

crimson fern
#

C'est quoi l'erreur ? Et ca correspond Ă  quoi config.reactionRole ?

lyric saddle
#

pour l'instant je suis débutant dans le codage(genre y'as mm pas 1 semaine et dcp je suis des tutos en écoutant en refaisant pour ensuite apprendre ) :/

crimson fern
#

Tu sais comment trouver l'erreur ou pas ?

lyric saddle
#

en faisant ctrl+click nn ?

#

si c'est ca c'est la

#

mauvaise image

crimson fern
#

Si si justement c'était ca

#

Il y avait l'erreur dessus

lyric saddle
#

entre config.reactionRole et le premier [

crimson fern
#

tu peux me dire Ă  quoi correspond config.reactionRole ?

lyric saddle
#

alorss

crimson fern
#

Dans ton fichier config.js, il y a écrit reactionrole et non reactionRole, il faut donc que tu remplaces config.reactionRole par config.reactionrole dans ton fichier princiapl

lyric saddle
#

ok

#

je vais tester merci

#

a ben

#

mtn mon pote click mais ca enleve direct ;-;

#

ca enlĂšve la reaction direct

#

et cette fois pas de message d'erreur ;-;

crimson fern
#

ça enlÚve la réaction direct ?

lyric saddle
#

oui

crimson fern
#

reactionRoleElem te retourne quoi ?

lyric saddle
#

?

crimson fern
#

fait un console.log(reactionRoleElem) et dit moi ce que ca te met dans la console

lyric saddle
#

jpp ecrire dans la console ;-;

crimson fern
#

non mais écrit le pas dans la console

lyric saddle
#

c'est pas pour rien que j'ai prĂ©cisĂ© que je suis un dĂ©butant 😂

crimson fern
#

dans ton code, juste aprĂšs ton const reactionRoleElem = ..., tu mets console.log(reactionRoleElem)

lyric saddle
#

apres ou avant le egal ?

crimson fern
#

Je te conseille d'apprendre Ă  utiliser le langage avant de commencer Ă  faire des projets comme ceci, ça te permettra de comprendre comment ton code marche et d'ĂȘtre + autonome (sans regarder des tutos en gros)

crimson fern
#

tu sautes une ligne et tu mets ce que je t'ai dit

lyric saddle
#

j'ai mis

#

je vois rien de marqué

oak turret
#

ça te return rien dans ta console ?

#

console.log(reactionRoleElem)

crimson fern
#

Tu peux nous montrer ton code modifié

oak turret
lyric saddle
#

je suis perdu j'ai mal a la tete

crimson fern
#

ca te return rien dans la console lĂ  ?

lyric saddle
#

nop

crimson fern
#

Au pire, tu peux faire comme je fais, tu rajoutes des console.log Ă  chaque ligne en changeant le contenu comme ça tu vois oĂč ça bloque kappo

lyric saddle
#

okkkkk

spring dock
#

Ă  chaque ligne
?

lyric saddle
#

la ca ma mis ca

spring dock
#

avant chaque condition et aprĂšs lad erniĂšre plutĂŽt

lyric saddle
crimson fern
#

Mais j'avais eu un problĂšme oĂč postgres voulait pas marcher et me mettait pas d'erreur, du coup j'avais fait simple et j'avais fait ça

crimson fern
# lyric saddle

du coup oui le else marche plus mais le problĂšme vient d'avant donc pas besoin d'en mettre ici

lyric saddle
#

sinon ca me met rien ;-;

crimson fern
#

Tu peux me montrer ton code modifié en entier stp ?

lyric saddle
crimson fern
#

(seulement les deux évÚnements au final)

lyric saddle
#

pt2 (final)

crimson fern
lyric saddle
#

ok

crimson fern
#

Ensuite, pour ton problĂšme, je pense qu'il vient de la premiĂšre condition.
Essaye de rajouter ; aprĂšs le return, Ă  la ligne 45

#

(je viens de me rendre compte que le lien que je t'ai envoyé, malgré qu'il soit bien, va pas beaucoup t'aider je pense)

crimson fern
#

(J'étais pas sûr sur le moment)

#

AprĂšs le return Ă  la ligne 45, rajoute un console.log('test1')

lyric saddle
#

c'est fait

crimson fern
#

Essaye de rajouter une réaction et dit moi si dans ta console, tu as test1 qui s'affiche

lyric saddle
#

ok

#

je ne vois pas de test1

#

mais ca me met une erreur

crimson fern
#

Laquelle ?

lyric saddle
#

a la ligne 61

#

entre config.reactionrole et le premier [

crimson fern
#

toute à l'heure, tu m'as pas montré le fichier config.json, tu peux me le montrer en entier ?

lyric saddle
#

ok

#

je reenvoie la 2

crimson fern
#

d'acc

lyric saddle
#

j'avais oublier de cacher mon tocken ;-;

spring dock
#

et y a des gens qui utilisent betterdiscord pour voir les messages supprimés

lyric saddle
#

a

crimson fern
#

pour l'erreur, t'as fait une faute à la ligne 61, t'as écrit config.reactionole, tu as oublié une lettre

#

aprĂšs ton const emoji = reactionRoleElem.emojis..., Ă  la ligne en dessous, tu peux mettre un console.log(emoji) (et aussi, supprimer les console.log inutiles)

lyric saddle
#

bon moi j'y vais bye

crimson fern
#

c'est ce que te retourne console.log(emoji) ?

sand quail
# lyric saddle

T’es au courant, en tous cas avant, je sais pas maintenant, que pour les rĂ©actions faut mettre des emojis graphique et pas textuel

#

Windows + .

#

Ça t’ouvres une fenĂȘtre

sand quail
#

En tous cas avant tu pouvais pas

#

Utiliser les noms textuels

#

C’était obligatoirement graphique

bold sparrow
#

Je sais pas s'il y a des gens haha

#

Mais j'ai une erreur js UnhandledPromiseRejectionWarning: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'e:'

#

J'ai cherché un peu, apparement il faut ajouter file:/// ou quelque chose comme ça

#

Mais par exemple ici, js path.resolve( path.join( path.dirname( fileURLToPath( import.meta.url ) ), commandPath) ) )

#

Je le mets oĂč ? ^^

dire latch
#

@sand quail quand tu dis avant, c'Ă©tait quand ? đŸ€”

sand quail
#

Y’a quelque mois

dire latch
#

On pouvait le faire dans ce cas là 😅

sand quail
#

La derniĂšre fois que j’ai touchĂ© Ă  mes bots quoi

dire latch
#

T'es pas Ă  jour

sand quail
#

Bon j’ai pas trop cherchĂ©, il est tĂŽt, maintenant on peut, mais de ce que j’ai vu toujours pas naturellement

dire latch
#

Ba si đŸ€”

#

Vous désirez apprendre à coder un bot Discord sans aucune connaissance ? Dans cette vidéo, nous allons simplement voir comment ajouter des rÎles avec une reaction discordjs! Visionnez notre vidéo pour en savoir plus!

Discordjs: https://discord.js.org/#/


[23/??] Comment ajouter des rÎles avec une reaction discordjs | Développeme...

▶ Play video
#

Je te conseille ceci @sand quail

sand quail
#

Je sais dĂ©jĂ  comment faire, j’ai pas le temps

cyan iron
sand quail
#

Ça a aucun rapport avec la situation

bold sparrow
#

Yop, j'ai un sushis : js Uncaught SyntaxError: e:\Turty\dist\util\emojis.json: Unexpected end of JSON input

#

j'ai ajouté le parser car avec des recherches, j'ai vu que ça aidait

#

Mais bon ...

torn fog
#

Normal ce n'est pas du json lĂ  que t'a mis @bold sparrow

#

Il faut d'abord lire le contenu de ton fichier json

#
const fs = require('fs');

public fileemojis = fs.readFileSync('../util/emojis.json');
public customEmojis = require(JSON.parse(fileemojis));

#

PlutÎt comme ça @bold sparrow

bold sparrow
#

Merci pour ton message

#

Mais cette fois ci j'ai une erreur de typage {
"resource": "/e:/Turty/src/Base/turty.ts",
"owner": "typescript",
"code": "2345",
"severity": 8,
"message": "L'argument de type 'Buffer' n'est pas attribuable au paramĂštre de type 'string'.",
"source": "ts",
"startLineNumber": 14,
"startColumn": 46,
"endLineNumber": 14,
"endColumn": 62
}

torn fog
#

de typage ?

bold sparrow
#

Pourquoi j'ai écris ça

#

"message": "L'argument de type 'Buffer' n'est pas attribuable au paramĂštre de type 'string'.",

#

TypeError quoi ^^

torn fog
#

Bah normal il lui faut un int

#

donc quand tu lui attribue la valeur tu lui met direct les chiffres pas de " entre

bold sparrow
#

J'ai peur de pas comprendre

torn fog
#

AH

bold sparrow
torn fog
#

Ă  oui c'est psk customEmojisFile return deux valeurs

#

PremiĂšre valeur le string et la deuxiĂšme c'est le Buffer

#
const fs = require('fs');

public {fileemojis_string, fileemojis_buffer} = fs.readFileSync('../util/emojis.json');
public customEmojis = require(JSON.parse(fileemojis_string));
#

essaye ça @bold sparrow

bold sparrow
#

?

#

Ca n'a pas de sens ?

torn fog
#

T'a essayé ?

bold sparrow
#

la propriété string n'existe pas sur le type buffer

torn fog
#

mĂȘme avec le nouveau code ça te dit ça ?

bold sparrow
torn fog
#

c'est psk t'a pas fait ce que j'ai écris

bold sparrow
#

Typescript n'aime pas les constantes non utilisées

torn fog
#

essaye quand mĂȘme x)

bold sparrow
#

Ca ne fonctionne pas

torn fog
#

aaaaah

timid loom
#

tu veux faire quoi

bold sparrow
timid loom
#

Tu peux juste readFileSync() et JSON.parse
un require sur un fichier JSON le parse tout seul d'ailleurs

bold sparrow
#

Sans le parse, ça ne fonctionne pas

#

Avec import ça fonctionne pas

#

Avec une création de require pour l'ecma ça ne fonctionne pas

timid loom
#

sinon tu fais le readFileSync et json.parse

timid loom
#

Tu peux juste sort en faisant b.experience-a.experience

#

nan mais ta fonction de sort

#

plutĂŽt que de faire une ternaire

#

pourquoi le await sinon? vu que tu fais un .then

bold sparrow
#

Ca fonctionne trĂšs bien sans

#

J'aurais du y pensé avant lol

#

Merci pour le lien ! ^^

#

Ah non j'ai crié victoire pour rien

#

Au pire j'vais travailler avec autre chose

blazing wadi
#

Vous savez si c'est possible d'envoyer des fichiers sur un autre serveurs que celui de son bot ?

spring dock
#

oui

oak turret
blazing wadi
#

je serai intéressé xD

spring dock
#

bah on peux pas du coup

blazing wadi
#

ah merde

#

fausse joie

spring dock
#

enfin att

#

serveur

#

tu parles d'un serveur discord

blazing wadi
#

non

spring dock
#

ou d'un serveur genre un vps

blazing wadi
#

vpx

#

vps

spring dock
#

ah bah ou itu peux

blazing wadi
#

Ah

#

Comment je peux m'y prendre ?

spring dock
#

soit tu peux avoir une api sur l'autre serveur sur laquelle tu va faire une requĂȘte pour upload ton fichier sur l'autre serveur

blazing wadi
lapis onyx
#

Yop merci, je move le message

keen narwhal
#

Salut !
Un développeur Js peux m'aider ?
Je m'explique, j'ai crĂ©e un mod mail, donc quand un user envois un message Ă  mon bot, mon bot lui envois sa ( image 1 ), c'est un choix avec des rĂ©actions, quand on clique sur l'une des rĂ©actions, mon bot crĂ©e un salon avec un weebook dans mon serveur ( image 2 ), pour le moment c'est ok, mais le problĂšme c'est quand le ticket est ouvert, moi quand j’écris un truc dans le salon que le bot Ă  crĂ©e, il le transmet bien Ă  l'user, mais quand l'user envois un message au bot pour qu'il lui transmettent, bas le bot ne lui transmet pas. ( image 3-4 )

Je voudrais savoir si une personne serait disponible pour vocal, et que je stream mon écrans ( vous envoyez le code serait trop longs, et je voudrais aussi comprendre mon erreur. )
En vous remerciant d'avance.
Bonne soirée ( me mentionnez si vous voulez bien ) myman

#

image 2

#

image 3

#

image 4

oak turret
#

je comprends pas trop ton problĂšme

#

comment ça l'user envoie un message au bot ?

cyan iron
#

C'est un modmail

oak turret
#

connais pas

#

sorry

keen narwhal
oak turret
#

explique moi c'que c'est et je pourrais t'help j'ai jamais entendu ça

keen narwhal
#

Imaginons, tu Ă  un bot

#

tu lui envoi un message privé

#

et ( je prend exemple sur le mien ) il t'envoi un embed avec des réactions
quand tu clique sur une réaction, le bot crée un salon dans un serveur prédéfini

oak turret
#

ah oui ok je vois

keen narwhal
#

et nous somme en contact via le bot

oak turret
#

et pour répondre aux admins, le mec send un mp au bot et toi tu le reçois ?

keen narwhal
#

Tout Ă  fait

oak turret
#

ouais ok je vois

keen narwhal
#

mais la sa marche pas :/

oak turret
#

quand l'user envoie le mp, log ce qu'il return pour v oir

#

voir

keen narwhal
#

quand moi je veux send un message Ă  l'user, sa fonctionne, mais pas l'inverse

cyan iron
#

En gros c'est censé faire comme ça quand ça work

#

En MP :

keen narwhal
oak turret
#

ouais j'ai capté le truc

cyan iron
#

Donc @keen narwhal montre ton code

#

Je vais pouvoir t'aider

#

Par contre mon autre bot fait des trucs chelous faut mettre des cooldowns partout

keen narwhal
cyan iron
#

Non non ici

oak turret
#

l'id du channel c'est le dernier truc log ?

cyan iron
#

C'est fait pour tu sais ^^

keen narwhal
oak turret
#

non mais les lignes concernées

cyan iron
#

Bah à mon avis ce sont les lignes concernées

keen narwhal
#

Justement je sais pas qu'elle lignes x)

cyan iron
#

Nan mais montre je vais check

oak turret
#

bah lĂ  oĂč tu gĂšres le fait que l'user send le mp et qu'il est censĂ© l'envoyer dans le salon du coup

cyan iron
#

Oui déjà

#

ça prend pas 238 lignes j'espÚre sueur

oak turret
cyan iron
#

AprÚs t'as ça qui est pratique aussi :)

keen narwhal
cyan iron
#

Ok

keen narwhal
cyan iron
#

Envoie ici

keen narwhal
#

okay

#

Je le dellete aprs

#

aprĂšs

#

dit moi quand c'est good

cyan iron
#

good

keen narwhal
#

merci 😉

cyan iron
#

de rien

torn fog
torn fog
#

ah trkl alors x)

keen narwhal
cyan iron
#

Et puis bon je vais rien faire tkt 😉

keen narwhal
#

mais merci de l’avertissement

cyan iron
#

Je prends 0 risques

torn fog
#

Nan mais je parle si il y a des self bot qui récupÚre les tokens affiché dans les codes tu vois

keen narwhal
cyan iron
#

Alors attends déjà je relis ton problÚme kappo

keen narwhal
#

x)

cyan iron
#

Ok donc c'est quand l'user envoie ça met pas

keen narwhal
#

oui

#

c'est sa

cyan iron
#

Tu as fait avec des webhooks ?

#

Bah je vais bien voir

keen narwhal
#

le bot les crĂ©e lui mĂȘme

#

( le nombre de test = sue )

#

9 jour que je suis dessus psycho

cyan iron
#

Tu peux m'envoyer stp le modmails.json

keen narwhal
#

Bien sur

#

c'est le bot qui l'édit sa

cyan iron
#

Et c'est quoi exactement ?

#

Ah ok j'ai compris

keen narwhal
#

c'est une genre de basse de donée

cyan iron
#

Alors tu peux faire beaucoup plus simple, mais si ça fonctionne tant mieux

keen narwhal
#

pas*

cyan iron
#

Alors est-ce que ça te console log ça ?

keen narwhal
#

Je pense que cette ligne m'envoi l'id du salon que le bot crée

#

comme sa

cyan iron
#

Oui effectivement

#

Mais c'est toi qui a fait tout le systĂšme ?

#

C'est bien l'ID du channel t'es sûr ?

keen narwhal
cyan iron
#

quand tu fais un return, ici et ici t'as essayé de faire un console log ?

keen narwhal
cyan iron
#

Pour voir

keen narwhal
#

Nan j'ai pas essayé

keen narwhal
cyan iron
#

Nan mais pas le serv tkt

keen narwhal
#

désoler je désactive pas les mentions

cyan iron
#

Ok tu utilises node-fetch
Pourquoi pas mais bon tu peux direct webhook.send quoi

cyan iron
#

Bah

#

Comme un message

#

webhook.send('ton message')

#

Je le vois ton problĂšme

keen narwhal
#

Et du coup on mettrai quoi ('ton message') j'apprend en mĂȘme temps c'est good

cyan iron
#

Tu créé un webhook qui a pour nom celui du bot

#

Et quand tu le get tu cherches pas du tout ça

#

Attends

keen narwhal
#

Oula, c'est tout con enfaĂźte -_-

cyan iron
#

Ouais voilĂ 

#

remplace la ligne 193

#

par ça

#
                const webhook = webhooks.find(webh => webh.name == client.user.username)
#

Et normalement ton problĂšme est fix

keen narwhal
#

d'accord, je te dit sa

cyan iron
#

Ok, et ça

fetch(webhook.url + "?wait=true", { "method": "POST", "headers": {"content-type": "application/json"}, "body": JSON.stringify(msg) })

tu peux direct le remplacer par

webhook.send(msg)
#

je te rassure ça revient au mĂȘme mais voilĂ  t'as un outil simple Ă  disposition autant en profiter

keen narwhal
#

qu'elle ligne ?

cyan iron
#

Trouve par toi mĂȘme

keen narwhal
#

x)

cyan iron
#

attends je viens de voir un truc lĂ  mdrrr

#

c'est pas ça que tu dois send

#

C'est pas msg mais message.content

keen narwhal
#

donc c'est webhook.send(message.content)

cyan iron
#

le username est déjà sur le webhook

cyan iron
keen narwhal
#

okay

cyan iron
#

Et lĂ  normalement tout fonctionne

#

Dit moi

#

Je vais manger je reviens plus tard, si ça work pas et que t'es vraiment pressĂ© bah quelqu'un d'autre te rĂ©pondra ( peut ĂȘtre )

keen narwhal
#

d'accord, merci beaucoup en tout cas

dire latch
#

Hey, quel est le soucis ? @keen narwhal

keen narwhal
#

AU PTNN

dire latch
#

?

keen narwhal
#

@cyan ironJE T'AIME

#

merci

#

sa fonctionne

#

@dire latch désoler, le problÚme est réglé

#

mais merci 🙂

dire latch
#

Np

keen narwhal
#

j'ai mis 9 fucking jour à trouvé le problÚme est la en 5 minutes il la résolu

#

Juste merci

blazing wadi
cyan iron
#

De rien kappo

cyan iron
#

Yo ! Je suis en train de faire une API et niveau sécurité voilà quoi kappo
Enzo m'a dit qu'il fallait que je sécurise, et en fait j'ai un problÚme, j'ai des formulaires, et il faudrait que je protÚge mon API de potentielles attaques XSS
Donc j'ai lu un truc lĂ  dessus qui me conseille d'installer et d'utiliser le module xss-clean ( https://www.npmjs.com/package/xss-clean?activeTab=readme )

Est-ce que vous pensez que ça suffit ? Si quelqu'un pourrait m'éclairer ce serait cool merci :)

peak cedar
#

bot.on("message", message => {
    if (message.content === "!start") {
        const user = message.author;

        bot.channels.cache.get('860693969095753728').send("Ton channel et créer");
        const channelname = message.author.username;

        message.guild.channels.create(channelname)


        

    }
});

#

comment je

#

send un message

#

dans le channel creer

#

?

#

svp

slim anvil
#

tu le crée ou

peak cedar
#

en haut du dsicord

#

vue que y'a pas de cate

#

:

slim anvil
#

Non mais dans ton code

#

si tu veux envoyer un message a la création faut mettre l'envoie au moment de la création ??

dapper coral
#

.then(M => M. Message. Send("your"))

#

C'est degeu je suis sur tel mais c'est sa le délire

peak cedar
peak cedar
#

en gros

slim anvil
#

ah oui j'avais pas vu le code create

summer tiger
#

Hey, depuis le début de la semaine je suis bloquer avec vue-i18n... et j'ai besoin qu'on m'éclaire sérieusement svp

J'ai crĂ©er mon projet avec la commande **vue create myProject ** ensuite j'ai ajoutĂ© les modules suivant router et i18n avec la commande vue add moduleName jusque lĂ  tous va bien, lorsque j'ai fais vue add i18n le CLI pose des questions, j'ai rĂ©pondu aux questions, une fois rĂ©pondu le CLI crĂ©er un fichier i18n.js dans le dossier src dans ce fichier il y a le code qui charge les messages de traduction le problĂšme arrive Ă  la vue, lorsque j'essai de rĂ©cupĂ©rer un message avec {{ $t("hello") }} le compiler se relance et je recharge ma page, une fois la page charger bah elle ci devient complĂštement blanche, j'ai plus rien mĂȘme pas le message traduis et dans la console aucune erreur... je suis perdu, j'ai regardĂ© la doc en long et en travers le code est identique Ă  la doc que dalle et je Ă©galement regardĂ© sur internet mais la plus part des aides sont foireuses...

Pinger moi, si besoin on peut faire un appel + partage pour que ça soir plus simple. Merci d'avance

slim anvil
#

vue 2 ou vue 3 aussi ?

summer tiger
#

VueJS 3

dire latch
#

Tu as l'erreur dans ta console đŸ€”

slim anvil
#

Ok show me ton fichier main.js

dire latch
#

Ou sa n'as rien Ă  voir ?

slim anvil
#

ou app.js

#

@summer tiger

summer tiger
#

Tu as le main.js et le i18n.js

slim anvil
#

Yes ok c'est pas bon

#

Dans ton i18n.js

#

fais juste

summer tiger
slim anvil
#

ton loadLocaleMessages sert Ă  quoi

#

Ă  aller chercher tes traductions ?

summer tiger
#

Le fichier i18n.js a été générer par le CLI aprÚs l'installation c'est pas à moi

#

Il récupÚre toutes les traductions effectivement

slim anvil
#

Yes ok pour l'ajouter dynamiquement

#

mais soit ca vient pas d'ici dans tous les cas

#

tu peux juste par acquis de conscience dans ton i18n faire

#
export default createI18n({
  legacy: false,
  locale: process.env.VUE_APP_I18N_LOCALE || 'en',
  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
  messages: loadLocaleMessages()
})

en

const i18n = createI18n({
  legacy: false,
  locale: process.env.VUE_APP_I18N_LOCALE || 'en',
  fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en',
  messages: loadLocaleMessages()
})
export default i18n

ĂȘtre sur qu'il te return bien par la crĂ©ation mais bien le created

#

si tu vois ce que je veux dire

summer tiger
#

J'ai pas de problĂšme ici, j'ai tous console.log() j'ai pas un pĂšte d'erreur lĂ  dessus

slim anvil
#

yes yes

#

C'est juste que si t'as que du fr / en autant les importer Ă  la main, sauf si t'as masse de traduction possible

summer tiger
#

Si tu veux on se met dans un canaux je te fais un partage Ă©cran ou on s'appel en mp ça sera peut-ĂȘtre plus simple

slim anvil
#

Essaye déjà ce que je t'ai envoyé pour voir :D

summer tiger
#

L'un et l'autre fonctionne, ça me retourne " i18n [object Object] --- main.js?56d7:11 "

slim anvil
#

et t'as tjrs l'erreur sur ta page c'est ça ,

summer tiger
#

Yes, page complĂštement blanche

slim anvil
#

dans ton createi18n rajoute

#
globalInjection: true,
summer tiger
#

La page n'est plus blanche et maintenant j'ai juste " hello " d'écris et dans mon fr.json j'ai bien l'appel "hello" mais elle doit retourner "Bonjour"

slim anvil
#

screen moi juste ton fichier json please

#

et console log le retour de loadLocaleMessages() aussi please :-)

summer tiger
#

Dans la console j'ai un " [intlify] Not found 'hello' key in 'fr' locale messages. " aussi

#

Le console.log() de loadLocaleMessages()

slim anvil
#

yes quand il affiche la clé c'est qu"il la trouve pas, du coup je veux bien voir ton loadLocaleMessages

#

Ouais car du coup c'est fr.default.hello

#

essaye juste pour voir de mettre default.hello

#

(dans $t)

summer tiger
#

default.hello fonctionne..

#

Je suis perdu... pourquoi dans la doc de vue i18n il en parle pas ....

slim anvil
#

C'est la maniĂšre donc tu load les langues, mais c'est rien, dans ta fonction load
la ligne
messages[locale] = locales(key)
remplace par
messages[locale] = locales(key).default
pour voir

#

et remplace le default.hello avec juste hello

summer tiger
#

ça marche

slim anvil
#

top

summer tiger
#

L'argument "globalInjection: true" que tu m'a fais ajouter elle sert juste pour le dev ou le dev et la prod ?

slim anvil
#

les 2 je crois

spring dock
#

les 2

summer tiger
#

Franchement merci, dans toutes les aides et docs jamais ils ont évoquer cela...

slim anvil
#

Mais je te conseille de virer la boucle et d'importer tes 2 fichiers directement, c'est pas comme si tu risques d'en rajouter tout les jours, du coup c'est plus de faire ta boucle que juste d'importer tes 2/3 traductions

#

et tu aurais jamais eu ce soucis
mais sinon avec plaisir et bon courage :-)

summer tiger
#

Okay, je me note ça et je ferai cela plus tard

#

Je vais enfin pouvoir avancer

analog remnant
#

bonjour j'ai besoin d'aide avec l'hebergeur heroku ?

cyan iron
#

Pourquoi tu met un point d'interrogation kappo

analog remnant
#

pour voir si quelqu'un peut m'aider 😂

cyan iron
#

Mais je ne te conseilles vraiment pas heroku pour ĂȘtre honnĂȘte

cyan iron
analog remnant
#

je sais pas mon bot sert juste a dire les nouveau arrivant

cyan iron
#

Attends laisse moi me renseigner 5min

#

Je connais quelqu'un qui a un hébergeur gratuit si tu peux vraiment pas investir @analog remnant

#

Le problÚme c'est que je n'ai jamais testé ses services donc je ne peux pas vraiment dire si c'est fiable ou pas

#

En tout cas, ça va l'ĂȘtre plus qu'Heroku kappo

analog remnant
#

d'accord tu peut m'envoyer le lien

#

en a tu tester un toi ?

cyan iron
analog remnant
#

ah ok

#

tu a un bot discord toi ?

cyan iron
#

Mais moi je suis chez sapinet

#

Je paye par contre

#

Je reviens

timid loom
#

go glitch au pire @analog remnant

analog remnant
#

oe je vais essayer merci

uneven kayak
dire latch
#

Quelqu'un s'y connais en rethinkdb svp 😩

keen narwhal
#

Salut, j'essaye de compter le nombre total de membres du Bot sans compter les membres bots mais je n'y parviens pas, j'ai essayé ça mais bot n'est pas défini

const membres = client.guilds.cache.map(guilds => guilds.memberCount) - client.guilds.cache.map(guilds => guilds.member.user.bot)```
Si quelqu'un a la réponse, je prends
dire latch
#
const membres = message.guild.members.cache.filter(member => !member.user.bot).size;
#

@keen narwhal

keen narwhal
dire latch
#
client.members.cache.forEarch
#

Il me semble

keen narwhal
#

"Cannot read property cache" :/

dire latch
#
bot.users.cache
hazy mirage
#
client.guilds.cache.map(guilds => guilds.memberCount) - client.guilds.cache.map(guild => {
        return {
            members: guild.members.cache.filter(m => !m.user.bot),
        }
}).map(g => g.members.size)```
keen narwhal
hazy mirage
#

je me demande si y'a pas moyen de faire plus simple, mais voilĂ  ! bonne continuation :)

timid loom
# keen narwhal Merci, c'était bien plus compliqué que ce que je pensais..

On peut juste le faire via ```js
const amnt = client.users.cache.filter((user) => !user.bot).size;

Cela dit ça implique d'avoir mis en cache *tous* les utilisateurs donc ça peut poser problÚme (j'y reviens aprÚs).
La solution passant par les guilds fonctionne techniquement aussi (elle a le mĂȘme problĂšme du point de vue cache), mais ça implique de calculer plusieurs fois un mĂȘme utilisateur si il est sur plusieurs serveurs. Si ce n'est pas grave on peut juste accumuler les compteurs de membres non-bots de chaque serveur : ```js
const amnt = client.guilds.cache.reduce((acc, guild) => acc + guild.members.cache.filter((member) => !member.user.bot).size, 0);

Si il est important d'avoir de l'unicité, il faudrait récupérer tous membres uniques en mappant chaque guild à une collection d'users non bots et en les unifiant dans une seule collection, et enfin en récupérer la taille. C'est un peu plus difficile à faire mais toujours faisable. Cela dit à ce niveau-là autant juste passer par la propriété users du client, qui le fait en quelque sorte à notre place.
Le plus dur est cependant de tout rĂ©cupĂ©rer dans le cache (surtout si on a beaucoup de serveurs sur le bot). Le principe derriĂšre est un peu trop compliquĂ© Ă  expliquer pour moi et j'ai vraiment pas envie de faire le code. La base du principe c'est de reprendre la mĂȘme base que ce que j'expliquais pour s'assurer de l'unicitĂ© sur chaque guild, mais en rĂ©cupĂ©rant tous les membres de chaque guild Ă  chaque fois avant. Il faut Ă©viter de tout garder dans le cache cela dit parce que ça peut faire un peu lourd.

hazy mirage
cyan iron
#

Yo ! Je suis en train de faire une API et niveau sécurité voilà quoi...
Enzo m'a dit qu'il fallait que je sécurise, et en fait j'ai un problÚme, j'ai des formulaires, et il faudrait que je protÚge mon API de potentielles attaques XSS
Donc j'ai lu un truc lĂ  dessus qui me conseille d'installer et d'utiliser le module xss-clean ( https://www.npmjs.com/package/xss-clean?activeTab=readme )

Est-ce que vous pensez que ça suffit ? Si quelqu'un pourrait m'éclairer ce serait cool merci :)

cyan iron
#

Bah nan

#

C'est du php

#

Je veux simplement que quelqu'un d'expérimenté me conseille

timid loom
# cyan iron Yo ! Je suis en train de faire une API et niveau sécurité voilà quoi... Enzo m'a...

du coup j'ai pas vraiment de connaissances précises sur ce module précis mais en l'absence d'une réponse claire et précise je vais t'en donner une plus floue :
c'est une premiÚre étape et tu peux la compléter en t'informant sur les problématiques de sécurité de chaque élément que tu utilise
les xss c'est la base mais si par exemple tu utilise des sessions ou des tokens tu vas avoir certaines problématiques de sécurité auxquelles tu peux essayer de trouver des solutions
pour le sujet des xss c'est certainement suffisant (d'autant que la plupart des xss peuvent ĂȘtre Ă©vitĂ©es via les frameworks ui modernes et une bonne configuration du site) donc voilĂ 
une bonne idée si la sécurité ça t'intéresse vraiment c'est d'essayer des ctf permanents du type tryhackme ou rootme, ça te permet de voir comment la plupart des failles sur les sites fonctionnent et ça te donnera des idées sur comment les contrer

cyan iron
# timid loom du coup j'ai pas vraiment de connaissances précises sur ce module précis mais en...

D'accord merci, aprĂšs tu vois j'aimerais ne pas non plus avoir de grosses failles sĂ»r mon site Ă©tant donnĂ© qu'il va ĂȘtre rendu public et avoir beaucoup de visite sous peu, donc s'il y a des failles potentielles, je t'avoue que c'est assez emmerdant.

AprĂšs concrĂštement mon formulaire ne fait qu'envoyer sur une database un texte, et ensuite ça l'envoie sur Discord. Donc je ne comprends pas trop oĂč serait la faille Ă©tant donnĂ© que la fonction rĂ©cupĂšres juste la value et elle la stocke. Est-ce que c'est vraiment dangereux ?

timid loom
#

le plus susceptible c'est des injections sql mais globalement en prĂ©parant tes requĂȘtes ça devrait aller

cyan iron
#

Mais comment est-ce qu'ils pourraient faire ?

#

Et qu'appelles-tu prĂ©parer les requĂȘtes ?

timid loom
#

un truc classique c'est de mettre '; DELETE * FROM table;

#

tu peux faire plein de requĂȘtes

timid loom
#

je sais pas quelle db tu utilise mais en fonction le driver te permettra forcĂ©ment de faire des requĂȘtes prĂ©parĂ©es

cyan iron
timid loom
#

voilĂ  par exemple

timid loom
#

on peut faire pire

timid loom
cyan iron
timid loom
#

je te laisse t'informer sur les injections sql de maniÚre générale

cyan iron
#

oui je vais m'informer car je ne sais pas ce que t'appelles préparées

#

sinon je peux faire une fonction qui enlĂšve tous les SELECT DELETE etc

timid loom
#

nan ça c'est de la débrouille et t'en as pas besoin

#

d'autant que tu penseras pas Ă  tout

#

fais des requĂȘtes prĂ©parĂ©es

cyan iron
#

oh merci

keen igloo
timid loom
cyan iron
#

Perso j'ai eu beaucoup de problĂšmes

timid loom
#

le souci c'est qu'il y a une limite de temps mais ça si ton bot est pas actif y a jamais de souci

cyan iron
#

Downs, crash, lenteur Ă  en crever

keen igloo
#

oui mais il se met hors-ligne dÚs que rien ne se passe donc des fois il répond pas

timid loom
#

bah ça c'est normal

#

il faut juste le remettre en route

#

aprĂšs tu peux avoir d'autres services, glitch notamment

keen igloo
#

perso je host avec GCP

#

gratuitement

cyan iron
#

roh sinon y'a sapinet

timid loom
#

généralement tu peux passer par des plus petites structures mais dans la majorité des cas le truc dure pas plus de 1 an parce que tu peux pas maintenir un hébergement stable sur une telle période si tu fais pas payer quelques personnes

cyan iron
#

3 balles par mois

#

ça ruine pas

timid loom
#

ouais franchement go payer un truc

keen igloo
timid loom
#

sapinet je connais pas mais t'as plein de services horaires trĂšs bons comme aws

cyan iron
#

y'a quasi 0 downs

keen igloo
cyan iron
#

Avec un VPS à 6€ par mois j'host 5 bots

#

Dont 1 qui est sur 400 serveurs

keen igloo
#

ah oui cool

cyan iron
#

Et tous les bots de BTL, donc qui gÚre énormément de messages

keen igloo
cyan iron
#

Oui

keen igloo
#

et la db tu la fais avec MongoDB ?

cyan iron
#

Le VPS Ă  3€ a explosĂ© par contre

keen igloo
#

xD

cyan iron
#

Et merci @timid loom je crois que j'ai compris le principe des requĂȘtes prĂ©parĂ©es myman

keen igloo
#

Grafikart a fait un tuto sur ça je crois

keen igloo
slim anvil
#

il a dit mysql

timid loom
#

@slim anvil c'est quoi le service déjà sur lequel on héberge le site?

slim anvil
#

netlify

#

mais ca prend pas ce genre de site

timid loom
#

yes c'est ça

slim anvil
#

car faut avoir un build

timid loom
#

nan je cherchais juste

#

mais techniquement on est d'accord que un site qui est build c'est considéré comme un site statique une fois build nan?

cyan iron
#

Donc si je fais par exemple

db.prepare('SELECT * FROM users WHERE ID = ? AND jsp = ?')
db.execute('277518283576705034', 'moinonplus') 

ça va faire comme si j'avais fait

db.query(`SELECT * FROM users WHERE ID = '277518283576705034' AND jsp = 'moinonplus'`)

c'est ça ?

timid loom
cyan iron
#

ouais attends mauvais exemple

timid loom
#

sers t'en seulement sur les données

#

le reste tu peux avoir des requĂȘtes prĂ©dĂ©finies dans un controller

cyan iron
#

voilà comme ça du coup

#

Ah ça marche comme ça apparement

connection.query('SELECT * FROM `books` WHERE `author` = ?', ['David'], function (error, results, fields) {
  // error will be an Error if one occurred during the query
  // results will contain the results of the query
  // fields will contain information about the returned results fields (if any)
});
spring dock
#

surement

analog remnant
#

bonjour je viens de créer mon bot musique mais quand je fait la commande sur le salon discord je n'ai aucune réponse de ça part, quelqu'un pourrait m'aider svp ?

spring dock
#

bonjour, il faudrait que tu montres ton code pour que les gens puissent voir oĂč tu bloques (et potentiellement une erreur)

cyan iron
#

Roh trop rapide

analog remnant
#

oui désoler j'avais oublier

#

quand je mes ma commande j'ai trouve une erreur dans le terminal et le bot se deconnecte

timid loom
#

c'est quoi l'erreur dans le terminal?

analog remnant
spring dock
#

ligne 12 ta mis une virgule au lieu d'un point

timid loom
#

trop rapide pour moi bob

spring dock
#

oui 😎

analog remnant
#

ok merci beaucoup je vais reesayer

#

ça ne marche toujours pas😭

timid loom
#

toujours la mĂȘme erreur?

analog remnant
#

oui

#

je suis dĂ©butant ++ dans le dĂ©veloppement donc voila quoi 😂

spring dock
#

envoie ton nouveau code?

#

et ta bien restart le bot aussi?

analog remnant
#

oui

#

enfaite a chaque fois qu'il y a l'erreur le bot crash

cyan iron