#javascript-typescript
1 messages · Page 19 of 1
C EST CA QUE JE VEUX
CA M AIDERAIS
Alors en JS je ferais comme ça si ça peut te donner une piste :
const wav = require('node-wav');
const fs = require('fs');
const audioData = {
sampleRate: 44100,
channelData: [ new Float32Array(44100) ]
};
const buffer = wav.encode(audioData);
fs.writeFileSync('audio_vide.wav', buffer);
node-wav, j'aime pas du tout
Fin, c'est pourris
C'est la seule solution que je connais malheureusement comme je n'ai jamais manipulé l'audio via NodeJS :/
J'ai seulement manipulé l'audio sur FLStudio et AuditionCC XD
je t'explique pourquoi j'aime pas vite fait mdr
En gros, j'ai tenté de sortir de l'audio avec
et c'était pas génial
Qualité de merde ?
AU PIRE, il y aurait pas un bot en OpenSource sur Gtihub qui ferait du Record audio ?
Comme ça tu peux jeter un coup d'œil sur comment ils sont fait (C'est ce que je ferais si je trouvais pas de réponses)
j'aime pas volé 😦
Alors je n'ai pas dis copier coller xD
Je suis contre aussi
Mais voir ce qu'ils ont utilisé par exemple
D'ailleurs à moins que ma mémoire me joue des tours, mais c'est pas ici qu'il y a un gars qui bosse pour Mee6 ?
Car peut-être que lui il pourrait t'aiguiller si c'est bien ici que j'avais vu ça
c'est en python le record mee6
Ah je comprend mieux xD
Du coup la question bête, est-ce que NodeJS peut réellement gérer l'audio correctement ?
Oui, car ça passe pas par nodejs
Car il y a très longtemps en reprenant une de tes phrases, pendant la vague de bot musiques que tu avais loupé, j'avais essayé un bot nodeJS pour du streaming audio, et je n'avais pas une qualité de ouf
(Il téléchargeait l'audio puis le retransmettait) et j'avais constaté une différence avec python, après peut être que c'était moi qui avait merdé quelque part
Oulah attend
Mais du coup je suis à court d'idées pour t'aider sorry x)
je t'envoie un exemple
tiens un exemple du coup
ça à été record depuis un salon vocal ça
Bon j'avais merdé quelque part alors xD
Mais du coup, ça ce n'est pas ton bot, mais ce que tu veux essayer de faire
si ça c'est mon bot
Ah mais du coup, ton problème c'est le fait que ton bot ne record pas le vide ??
Nan, mais, j'ai besoin de créer du vide
pour compiler les .wav que je créer XD
et créer un LONGGG .wav
comme un record du coup
C'est bon je crois que j'ai réussi à saisir ton problème xD
Le bot s'arrête de record quand personne ne parle du coup c'est bien ça ?
Car si c'est ça le soucis, il y a peut être moyen de remplacer la détection de voix par le fonctionnement d'un bouton ON/OFF via une commande
c'est le fonctionnement basique 😦
Uhm ... Et si ton bot émet du silence juste pour trigger le Speaking.on ça ne fonctionnerait pas ?
Genre, il emet du silence en continu, juste pour que son micro soit constamment trigger, comme ça, c'est du "Speaking" Constant
le speaking.on dépend de l'utilisateur
pas du bot
chaque audios est isolé
Arf du coup pas possible qu'il se record lui même
Tu as moyen de lui mettre des offset en paramêtre ? par exemple créer le wav seulement après 10 secondes d'inactivité du trigger Speaking ?
Nan
C'est la merde à gérer du coup
Enifn, je suppose que si ta lib serait compatible TS tu serais déjà tranquille
Ouais mdrr
Ah nan même pas
la lib compatible ts c'est pour autre chose encore mdrrr
AH xD
Du coup c'est pire x)
T'as essayer la manière brute avec un setTimeout ?
Et juste avec connection.on('speaking', (user, speaking) si ça se fait toujours
Comme ça, si speaking est à true, tu commence l'enregistrement, sinon, tu lui met un setTimeout, et à la fin de celui-ci seulement, tu enregistre le .wav
connection.receiver.on("speak", (userid) => {
});
maintenant
Mais ça marche pas vraiment
Donc il n'y a plus le paramêtre qui permet de savoir l'état de speaking ?
Ouais
Quel bande de Chenapans* (Le bot m'a strike mon message précédent)
J'ai regardé comme tu as déjà du le faire mais comme toi j'ai aucunes idées de comment faire x)
Mais du coup, ce n'est plus possible de vérifier l'état de speaking, donc soit les bots qui record encore fonctionne avec les anciennes version de discordJS soit, il y a une nouvelle méthode
Pouah et là en plus j'ai le cerveau qui fume à cause de Strapi là ><
Mais du coup j'ai régler mon problème de manière assez brutale, mais je pense que c'était la seule solution
bon le module pas typé
j'ai réussi
Ah nice 👍
Bien le bonjour
Vous allez bien ?
Pouvez-vous m'aider sur ce code ?
const Discord = require("discord.js")
module.exports = async (bot, oldGuild, newGuild) => {
const nameChanged = oldGuild.name !== newGuild.name;
// Vérifier si le fondateur a changé
const founderChanged = oldGuild.ownerID !== newGuild.ownerID;
// Vérifier si l'icône de la guilde a changé
const iconChanged = oldGuild.iconURL() !== newGuild.iconURL();
// Créer un embed pour afficher les informations de la mise à jour
const embed = new Discord.EmbedBuilder()
.setTitle('Guild mise à jour')
.setDescription(`La guilde ${newGuild.name} a été mise à jour.`)
.addFields(
{ name: 'Changements', value: `${nameChanged ? 'Nom modifié\n' : ''}${founderChanged ? 'Fondateur modifié\n' : ''}${iconChanged ? 'Icône modifiée\n' : ''}` },
{ name: 'Ancien nom', value: oldGuild.name },
{ name: 'Nouveau nom', value: newGuild.name },
{name: 'Ancien fondateur', value: `${bot.users.cache.get()(oldGuild.ownerID)}`},
{name: 'Nouveau fondateur', value: `${bot.users.cache.get()(newGuild.ownerID)}`},
)
.setTimestamp();```
J'ai cette erreur :
En vous remerciant
PS : c'est un évent guildUpdate.js
commande clear
Bonjour, j'ai fais un globe avec threejs et lorsque je souhaite placer un point sur celui-ci, les coordonnées ne sont pas vraiment précises. Par exemple lorsque je mets les coordonnées de Paris, le point apparait au niveau de la Normandie.
Voici le code qui gère la création du marqueur
function createMarker() {
const latitude = 48.856613; // Paris
const longitude = 1.352222;
const markerGeometry = new THREE.SphereGeometry(0.001, 32, 32);
const markerMaterial = new THREE.MeshBasicMaterial({ color: 0xffffff });
const marker = new THREE.Mesh(markerGeometry, markerMaterial);
const phi = (90 - latitude) * Math.PI / 180;
const theta = (180 - longitude) * Math.PI / 180;
marker.position.set(
-radius * Math.sin(phi) * Math.cos(theta),
radius * Math.cos(phi),
radius * Math.sin(phi) * Math.sin(theta)
);
sphere.add(marker);
}```
hello, c'est moi ou ta carte est pas dans le bon sens ?
Salut ! Oui en effet, c'est juste que lorsque je tourne autour du globe, la caméra peut commencer un peu à faire rotation
pupetter
pas de l'aide, mais, magnifique
Merci
Bonjour j'ai un problème j'ai fais une slash commande sous discord js v13 voilà le fichier de ma commande(screen1), bref c'est une commande de test mais rien ne se passe quand je l'exécute elle est bien créer sur mon discord mais ne marche pas. D'après moi le problème viens certainement de mon handler le voici pour déclarer les commandes(screen2). Auriez vous une solution Merci d'avance
hello quel est l'erreur ?
mais le soucis c'est qu'il n'y a pas d'erreur console juste quand je fais la commande voilà ce que le bot dis sachant qu'il à bien évidemment les perms
Fais voir dans le terminal ta version
tiens c'est dans mon package json
tu voulais bien la version de mon discord js ou juste de mon coté ce qu'il ce passe ci c'est ça bah rien tout se lance normalement
Tu fais quoi pour lancer node . node main node index.js ou tapuille sur exécuter ?
node index
@frosty sand
Tu l’appels ou ton handler
C’est à dire
Bonjour je voudrais savoir pour le coté css j utilise taillwind css je voudrais savoir es que je peut aussi rajouter bruma ?
oui tu peux
ah ok merci
après pour garder un truc plus "rapide"
essaye de voir si déjà avec https://headlessui.com/ tu peux pas trouver ton bonheur
tu as pas mal de composants, mais qui utilise tailwind aussi
ça évite de charger un max de CSS en +
bruma est taillin il son suprebe les deux
bonjour à tous, j'ai un soucis ici
db.query(`SELECT type, raison, date FROM sanctions WHERE utilisateur='${membre.id}'`, async (error, donnees, fields) => {
let raisons = "";
donnees.forEach((donnee) => {
raisons += `**${donnee.type}**\n${donnee.raison}\nLe: <t:${parseInt(donnee.date / 1000)}:f>\n\n`
});
});
l'argument de type number n'est pas attribuable au paramètre de type string
et c'est quel argument ?
ah pardon donnee.date
la date est stocké en db elle etait en varchar et j'ai modifié en bigInt
Ouch les injections SQL
voici mon code complet
Voici un extrait de code en typescript partagé sur ShareMyCode.io
SELECT type, raison, date FROM sanctions WHERE utilisateur='${membre.id}' Peu importe qu'il s'agisse d'un SELECT, INSERT etc... si member contient le bon code, il peut drop ta database
Tes deux requêtes sont pas équivalentes au niveau de la clause WHERE
le soucis n'est pas là toute façon la première requete est inutile, une seul suffirais
je récupère bien mes données aussi, je coince juste sur le typage
pour ce faire faut déjà avoir les droits de tapper la command 😉
et la commande accepte un user ni plus ni moins
ça fonctionne pas comme ça les injections hein ^^'
pour éviter les injections ont ne fait pas confiance au client...
a quel moment je fait mon select avec une donnée fourni par le client ?
Pas client, mais tous services externes
Je me doute que member c'est l'entité member de discordjs
Et même avec tes data, jamais on insert des variables dans une requête SQL comme ça
ont tourne en ronds mais ça résout pas mon problème
Donne le message d'erreur stp
Retire juste ton parseint
bah non pas le but recherché
Bah parseint te créer un number et ça attend une string
mais ma date stocké en db n'est pas une string main un bigInt => 1683693943092
Le problème c’est que t’as pas de typage sur tes données et ts aime pas, tu le vois donnees est considéré comme any
c'est là ou je coince aussi pour moi donnée est un object
mais si je type j'ai une autre erreur
donnee.type n'existe pas par exemple
Après dans les autres erreurs ils disent que ce que tu as dans le parseint est déjà au format number, du coup t’as pas besoin du parseint
rajoute as unknown as number
si t'es sure que c'est bon
parseInt(donnee.date / (1000 as unknown as string))
c'est même pas parseInt qui pose problème c'est le => / 1000
ah oui bah oui logique
mais là ma date seras pas bonne
tin abuse ts quand même
datetime /1000 => number
c'est pas ts mdr
c'est juste ton code
sinon tu parse d'abord ta date et après tu divise...
Tu peux pas parseInt un number

utilise Math.trunc a la place de parseInt
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
C'est pas parseInt le soucis
la c'est juste une erreur de typage
tu peux parser un int sans soucis
mais parseInt attend une string
?
The Playground lets you write TypeScript or JavaScript online in a safe and sharable way.
tu as juste a rajouter as unknown as string
Il a pas besoin de caster si il type son retour
db.query(`SELECT type, raison, date FROM sanctions WHERE utilisateur=${membre.id}`, async (error, donnees, fields) => {
//let raisons = "";
donnees.forEach((donnee: any) => {
const date = (donnee.date/1000);
console.log(date.toString());
raisons += `**${donnee.type}**\n${donnee.raison}\nLe: <t:${parseInt(date.toString())}:f>\n\n`
});
});
là ts ne rale plus
et ça fonctionne en plus 😅
Voici un extrait de code en typescript partagé sur ShareMyCode.io
merci à vous en tout cas
reste juste le typage de => donnee et del la première requete sql qui sert à rien
fait surtout gaffe aux SQLI
Les conventions de nommage
Passe en async/await plutôt en callback
Au diable les forEach, tu peux map into join
Tu traites pas jamais tes retours d'erreurs
Ton async est pas du coup bien géré, là si t'as une erreur tu vas très mal l'handle
Tu vérifies jamais que les props existent avant d'y accéder
Sérieux utiliser TS pour faire des requêtes SQL à la main je ne vois pas l’intérêt
Test ça tu vas revivre
@crude bramble
Quel est le rapport avec ts et SQL ?
Je ne vois pas l'intéret d'utiliser un langage typée si c'est pour avoir une db non typée
Surtout que le plus important dans le typage c'est vraiment les modèles de db
typeorm on m'as dit que c'était + simple 
Y'a rien de dur sur prisma
Et pour avoir tester TypeOrm j'aime pas
au niveau des relations
putain
bah prisma c'est pareil
Je me suis trompé tu m'enerve

j'ai fait 4 heure de dev sur papier okay ? Donc si je me goure c'est normal

bref, donc je disais, typeorm y a pas d'étape de compilation, y a pas de commande cli, c'est FULL typescript, et ça permet de lancer le projet super vite
Et ducoup pourquoi t'aime pas prisma ?
npx prisma init
mais c'est pas que j'aime pas prisma ???
c'était pas si long
x)
Nan en vrai utilise ce que tu veux
Perso prisma c'est dans mon coeur
tu joue sur les mots la c'est pas la seule commande à faire 
en plus ils ont une interface de DB prisma Client c'est magnifique ca me fais bander
Okay pardon
Et du fait que c'est pas du TS, c'est du temps à prendre en compte aussi
pour un projet c'est important mine de rien
Fin bref le sujet c'était faire du TS avec du SQL natif quelle horreur
Hein ?
Prisma pas du ts ?
non
Tu transpile prisma dans du TS, mais à la base c'est pas du TS ce que tu écrit
Je comprend pas ce que tu veux dire, prisma te génère des milliers de lignes de typage pour ta DB
donc c'est hyper bien typée
C'est même incroyablement bien typée
Y a encore un débat sur les ORM? 😐
prisma génère, donc prisma à la base c'est pas du TS
tu viens de le dire toi même
Il génère le typage de ta db
Moi aussi j'aime beaucoup prisma, mais faut pas ce voiler la face sur le process de création du schéma au départ mdr 😂
que tu as préalablement modélisé sur Looping ou Jmmerise
au départ tu fais pas du TS pour définir ta bdd
inh ??
ont utilise pas le même prisma là du coup
perso je fais pas mes modèles avec prisma
Je les fais avec un modélisateur de base de donnée
🤔
putain
je pensais pas que des humains utilisait ce truc
et je dis a prisma de récupérer mes tables db et générer le typage
C'est genre super pratique
Et en entreprise c'est juste obligatoire
ouais t'utilise pas la méthode de base de prisma du coup
bof, je l'utilise pas vraiment à mon entreprise inh
les model.schema ont été rajouter plus tard c'est la récupération de la db qui avait été penser a la base ahah
j'etait pas au courant du coup
my bad
Yep
et franchement les modélisateurs de base de donnée c'est incroyable pour gérer les relations
ou au moin avoir une représentation graphique de ta db
j'utilise phpmyadmin
Oui
Après y’a code planner qui est sympa
Mais il ne te sors pas de code, enfin pour l’instant
Ça reste du reactflow donc y’a toujours quelques bug ..
y'a que moi ou l'api discordjs bug ??
DiscordJS n'est pas une API 👀
bonjour je rencontre un soucis avec ma command help voici l'erreur
et voici mon code
et pourtant j'ai bien des fichiers dans le repertoir
Voici un extrait de code en typescript partagé sur ShareMyCode.io
je vous laisse aussi la structure du projet au cas ou
Ton path est pas bon lorsque tu utilises readdirsync
j'ai pourtant tout essayé et toujours la même erreur
oui également
Au secours le franglais
Hello, comment allez vous, I hope your fine.

C'est vraiment annoying

hello, au lieu de passer par un readdir, je crois que tu as tout dans ton client, car tu load déjà tes commandes pour le créer, tu pourrais pas passer par celui ci directement ?
car j'ai l'impression que tu essayes de faire ce qui ai déjà surement fait par le ShewenyClient
J'ai bien tenté avant ce que j'avais sur un autre projet mais semble pas possible avec sheweny ou je m'y prends mal j'enverrai le code plus tard la je suis sur tel
j’ai testé et tu y as bien accès 🙌
est ce que c’est la meilleure manière je sais pas, mais ça t’évitera de venir relire tes fichiers à chaque fois que c’est appelé
sur un autre projet hors sheweny j'avais ça
const commandHelp = client.commands.filter(v => v.category === 'utilitaires').map((v) => `/**${v.name}** ${v.description}`).join("\n")
console.log(commandHelp);
j'avais donc testé this.client mais pas accès à commands ce qui aurais été simple
tu peux faire quasi quelque chose d'identique sur sheweny
C’est toi qui définie les réponses 
bonjour à tous du coup pour ma commande help j'en suis arrivé là
Voici un extrait de code en typescript partagé sur ShareMyCode.io
du coup me reste l'erreur suivante
voici une de mes command si jamais
Voici un extrait de code en typescript partagé sur ShareMyCode.io
Bonjour, je suis à la recherche d'aide concernant un projet THREEJS. Plus précisément, j'ai fais un globe terrestre jusqu'ici tout va bien, sauf que ça se complique lorsque je tente d'y ajouter les tracés des frontières. J'ai d'abord essayé avec des frontières en png, qui ne marchait pas mais soit, je me suis vite rendu compte qu'en réalité utiliser cette technique sera bien trop compliquée car à terme, je souhaiterais faire en sorte que ces frontières soient modifiables par l'utilisateur et doivent donc être dynamiques. Auriez vous des solutions s'il vous plait, merci.
Je suis pas un expert threejs mais pas sur que ça soit possible pour tracé t'es frontière sinon moi je l'aurai directement fait sur la texture que t'as sur le globe
Pis edits aussi sur ta normal map
Ouais après on m'a aussi parlé des geojson
Ah oui aussi
Je comprends très bien le système etc mais franchement j'y arrive pas x)
Moi quand je le fais c'est ça
bref la seule chose qui va à la limite c'est le fait qu'on puisse distinguer certains continents
Ça va rendre trop bien quand tu aura reussi !
Ça à l'air vraiment style ThreeJs
Effectivement avec Threejs y'a moyen de faire des trucs fous
bonjour j'aurais besoin d'interroger des serveurs pour savoir s'ils sont en ligne ou pas, j'ai donc un début de code mais je teste sur un domaine qui n'existe pas pourtant j'ai pas d'erreur j'ai même le ping lol
Voici un extrait de code en typescript partagé sur ShareMyCode.io
C'est pas un ping ça
🤔
J'imagine que tu as copié/collé du code vu que tu mélanges des vieilles pratiques à de nouvelles
je cherchais une solution car il faut que je teste le host et le port
la fonction est en partie copier/coller oui mais c'est pas finalisé
bon regarde pas le embed il n'as rien à voir aussi
quand je parle de ping on c'est compris, là mon soucis c'est que je rentre pas dans le catch
Utilise ça plutôt : https://www.npmjs.com/package/node-fetch
et tu fonctionnes avec un .then() et .catch(), ça sera plus simple
await async plus simple
moi je fais comme ça et ça fonctionne très bien
J'ai pas dis que ça fonctionnait pas
Tiens t'as un exemple de la doc :
import fetch from 'node-fetch';
try {
await fetch('https://domain.invalid/');
} catch (error) {
console.log(error);
}
j'ai pas vérifié mais fetch('xx.xx.xx.xx:xx')
ne fonctionneras probablement pas non plus
Je vois pas pourquoi toi ça fonctionnerait pas, test et tu verras bien
parce-qu'il faut un protocole pour utiliser fetch
D'après la doc fetch demande une URL
Tu peux regarder comment marche uptimekuma
J'ai besoin de vérifier le statut de divers services pas seulement http
Salut, quels types de service ?
Ssh FTP dns
Normalement ça peut transiter dans la barre d’adresse par exemple pour le ftp://
Reste à savoir si tu peux obtenir avec fetch une réponse de status
Si tu veux vérifier que des ports sont ouvert avant de les requêter, vérifie avec NMAP
Euh oui effectivement tout comme tu peux faire ssh://
Ça peut le faire
Yes, ça marche pas avec fetch pour avoir son status genre 200 etc ?
Je sais pas si tu cherches ça
J’ai lu que tu cherchais à avoir aussi leur uptime
Non je sais que les port sont ouverts faut vérifier que le service fonctionne et retourner la latence
Le statut code 200 est un code http
Non mais suffit d'avoir une réponse
Ouais, j’espère que tu trouveras, je serai bien curieux 🙂
Des solutions doit y en avoir vu que cela a déjà été fait
Faut juste trouver la bonne
pour http ssh ftp je pense qu'il est possible de passer par fetch enfin à tester
après pour les serveurs dns je vois perso pas l'utilité de retourner la latence
je dirais que simplement retourner le statut suffirais
bon j'ai trouvé mais le retour reste sur undefined 🤔
Voici un extrait de code en typescript partagé sur ShareMyCode.io
pour ton return en undefined regarde bien ton code tu devrais comprendre assez vite 😬
assez obvious
If status.online === true Il connaît pas juste status.online ?
oui tu peux le faire en ternaire mais c’est pas pour ça que ça marche pas 😬
j'ai modifié logiquement pas besoin du let un simple return devrais le faire mais même résultat lol
function ping(host: string, port: number) {
const started = new Date().getTime();
tcpPingPort(host, port).then((statut: any) => {
const ended = new Date().getTime();
const milliseconds = ended - started;
if (statut.online === true) {
console.log(statut, milliseconds);
return `🟢 Online (${milliseconds} ms)`;
}
else {
console.log(statut, milliseconds);
return `🔴 Offline`;
//console.log('injoignable');
}
});
}
Le problème est toujours au même endroit
Yop ✌️
Dites j'aurais une question :
Actuellement je développe une application web (juste pour le fun), avec un back-end NodeJS avec le CMS Strapi.io, j'ai un front-end en VueJS, et une partie authentification géré par le provider Discord, jusque là tout est fonctionnel, il me reste plus qu'à faire persister la connection au refresh de la page et conserver le JWT permettant de faire les requêtes API, du coup ma question est :
J'ai le choix entre utiliser le localstorage ou les cookies, étant donné que je n'ai jamais eu à gérer ça auparavant (Car ce n'a jamais était mon rôle de le faire), je ne sais pas lequel des deux est le mieux / + sécurisé pour ce cas d'utilisation
Juste VueJS ?
Pas de Nuxt ou quoi par dessus ?
Tu peux le mettre en localstorage si c'est le cas et que tu fais pas du SSR
C'est ça, juste VueJS et Pinia pour le store front
Pas de SSR oui
Je cherche à perfectionner mes connaissances sur VueJS avant d'attaquer Nuxt
Bah localstorage je dirais 🤷♂️
Toujours pas trouvé ? Je peux te donner un indice si tu veux
Ça roule 👍
non toujours pas lol
Bah je sais pas t'as une promise ?
Si tu veux attendre la réponse de ta promise ?
tiens c'est un exemple
Je peux le traduire si tu veux
La je peux pas faire plus normalement t'as la réponse
j'ai du mal ce matin 😅
async function ping(host: string, port: number) {
const started = new Date().getTime();
try {
const statut = await tcpPingPort(host, port);
const ended = new Date().getTime();
const milliseconds = ended - started;
if (statut.online === true) {
return `🟢 Online (${milliseconds} ms)`;
}
return `🔴 Offline`;
} catch (error: any) {
return `⚠️ Error: ${error.message}`;
}
}
const test = ping("google.com", 80);
tu as rien changés
tu as juste utiliser async/await au lieu de .then/.. sur l'appel de tcpPingPort
en effet
prend le temps de te réveiller du coup, et relis ton code
je pense ca peut etre bien pour toi de trouver le soucis, il t'a déjà donné un bon indice, good luck!
J'ai mis le système du LocalStorage en Place, il est fonctionnel, et du coup j'aurais une autre question :
En terme de sécurité, je voudrais qu'au bout de 24h, mon utilisateur soit obligé de ce reconnecter, du coup je prévois de faire ça :
- à la connexion je compte stocker dans le localStorage le Date.now() dans la key "Last Connexion"
- à chaque fois que l'utilisateur reviens sur le site je check que la variable "Last Connexion" n'excède pas les 24h, si c'est le cas, je supprime le localStorage pour que la personne doit ce reconnecter.
Tu pense que c'est une bonne solution ?
En sachant qu'une déconnexion manuelle est possible :
Ah oui bien vu 🤦♂️
Quand il revient sur le site soit tu fais un middleware qui check avant d'être sur la page si l'expiration de son token est passé et tu l'envoie sur login sinon tu le refresh
D'accord ça roule, merci 👍
nous y voilà presque
Voici un extrait de code en typescript partagé sur ShareMyCode.io
ça fonctionne en partie mais là pour l'exemple le domaine n'existe pas ni même le port
et j'ai donc une erreur venant de discord
Sur ça je pourrais pas t'aider j'ai jamais touché à l'api Discord
log ton test
ah c'est ton interaction
faudrait pas deferReply le temps de faire ta requête? je sais pas si c'est lié mais surement
testons
Dans ton reply tu dois lui passer un truc qui plait pas, soit ton embed soit le content vide qui est pas obligé d'ailleurs pour envoyer un embed tu peux juste lui passer l'embed seul
Ou soit ton délai de traitement avant le reply est trop long comme l'a dit enzo, essaie avec un defer
bien vu
bon il y a des choses à corriger mais voilà
Voici un extrait de code en typescript partagé sur ShareMyCode.io
bon j'ai enlevé le wait aussi
Ouai j'étais en train de me demander la pertinence du wait haha
bah il aurais balancé le embed avait que tout soit exectué peut être lol
Comme tu "await" partout où t'as des délais c'était pas censé arriver 🙂
Par contre je veux bien le lien où t'as eu tcpPingPort, j'en ai pas l'utilité mais dans le futur sait on jamais 🙂
sur npmjs 😅
Ah le site est cassé chez moi, pour ça que je trouvais pas 🥲
ah
bon pas de fichier de def ts malheureusement et plus de maj depuis 2 ans
mais bon, ça fait le taf
si le fichier n'existe pas, l'objectif c'est d'en créer un toi même
j'ai pas dit le contraire mais dans le cas présent je trouve ça inutile la commande étant pas pour moi mais pour un client qui ne vas pas use TS sur son projet 😉
surtout pas t'amuser à faire sa pour une lib externe mdr
après c'est un module qui ne semble plus maintenu, fonctionel pour le moment mais à voir dans le temps aussi
Le miens datait de y a 4 ans, et flemme de chercher à refaire ce qu'il fait avec ffmpeg 😭
parfois faut reprendre un truc pour que le créateur se remette au taf 😅
j'ai eu le coup avec un bundle SF lol
ou parfois fau( arrêter de vivre et respirer...
sa veux tjr pas
Tu utilises que une seul fonction ?
Je vois pas le soucis à prendre même pas quelque minute pour le typé
En plus c'est une fonction c'est pas long à faire
Et tu peux toujours faire des exceptions en TS si ta la flemme à ce point
Après si il a plus de maj c'est que c'est inutile et que le package doit suffire au créateur aussi
Pourquoi tu reprends un code qui n’est pas à toi ?
t'es obligé de typer le module là
???
Bah, ça retournera toujours void en typescript
mais je répond à snow

dequoi tu me parles
En plus il a du jsdoc mdrr
Limite juste a faire un CTRL C + CTRL V pour typer le module
Nan vrm si ta la flemme de typer une fonction qui a déjà du jsdoc c'est chaud
Et encore juste passer la souris sur la fonction pour voir ce que ça donne c'est trop dur pour lui
note à moi qui a du typer 5 modules differents pour mon bot discord 
En vrai ça va
C'est amusant a faire je trouve
vous à chaque fois
Jsp je suis bizzare
c'est chiant un peu mdr
Toujours bien sûr
la branlette c'est cool 😎
Trop
je sais pas si on peut dire que c'est de la branlette
ou pas juste de l'auto fellation
C’est pas ce que je veux dire
J'ai le droit de menculer nan ?
J'aime souffrir
C’est pourquoi il reprend un code qu’il ne comprend pas
Ouais franchement, qui a dit que c'était interdit de s'auto sucer
ont ce trouve bon... 
à ce niveau faut juste doser
oui c'est bien de se trouver bon tant mieux
mais je vous jure que c'est constant dans ce channel et tjrs les mêmes
regarde je parle à quelqu'un d'autre, direct tu viens pour me corriger sur un sujet alors que c'était HS
En vrai si tu considères que avoir l'effort de typer un module c'est de l'auto suçage je connais des personnes sur ce serveur qui font pire alors mdrr
Attend tu parles a ki mdr
Je crois je suis pas concerné enft
je dis juste que vous savoir doser
nann je te répondais même pas de base, juste j'ai miss click sur ta réponse
Ah tu parles a garder ?
je sais doser, mon biberon fait toujours 50 CL
C’est trop
Fait gaffe 250ml max
c'est vraiment pas méchant mais vraiment parfois faut doser
8 cuillères de lait
Ah ok tu parles vrm pas a moi enft
Sad je me sens seul
de manière générale pas forcément garder, je le cible pas
Sinon vous pouvez me donner le nom de votre fournisseur ça a l’air super bon ce que vous prenez
mais vous voyez quand vous êtes là à vouloir lui dire de typer, typer, typer
alors qu'il savait pas utiliser une promise
Je répondais à Freddy de base
Message pour fredy
c'est pas méchant les gars, juste imaginez vous êtes pas encore à ce niv, et on vient vous dire "go typer, go typer"
mais tes fou mec
attend ? c'était pas freddy qu'on aidait ?
Fredy utilise le ts x)
Si
Il utilise le TS
Si si
Je le précise juste que il a du jsdoc
Mais après il y a un gars qui a poster un screen avec le code de freddy
je sais pas ce qu'il utilise
Et que faire un fichier de déclaration est juste simple
Du coup je comprend pas pourquoi un mec est venu après, à copier coller le code, et à lâcher un "ça marche pas"
donc bon
Il le dit vraiment dans son aide
D’où ma question
c'était ironique
La cest toi qui fait 0 effort enzo
Sachant que même si il type ça ne changera rien car la fonction pingmachin ne renvois rien
Ok Hecone remonte un peu dans le channel d'aide, tu comprendras 🤷
Tcppingport?
Mais il a dit que il s'en foutait de utiliser le TS ou non vu que le module est pas typé
elle renvoie une promise pour le coup
avec plusieurs donnée dedans
Je lai répondu avec 0 agression en lui disant que le module a déjà du jsdoc et pour utiliser le module en TS il faudrait juste typer une fonction
host, ping, online...
je dis pas que tu l'as agressé bro
En plus typer typer typer c'est un peu le but du ts..
on se comprend pas
Pas la
yep le typage c'est pour le module tcppingport
Au moment où je l'ai répondu c'était pour son message que il pouvait pas utiliser le module en TS
Et pas un problème de promise ou autre
Mais c’est pas la même personne
on s'est pas compris
passons à autre chose
c'est le même module non ?
Je comprends pas tu veux en venir ou alors
Il a essayé de refaire la fonction au lieu d’import le module
Cest mieux tu m'as perdu
AH OUI MDRR
a bit too much
il a cliquer sur la fonction n'existe pas, la créer pour moi 😭😭😭
Oui
ts c'est cool c'est clair, mais pas au point d'en parler tous le temps, etc, vraiment regarde le channel c'est quasi constant :p
bah si tu fais du typescript pour ne pas typer, autant rester en JS 🤔
Ptdr tu te trompes sur moi alors x)
J'ai vraiment juste abordé le ts parce que il en a parlé ou quand c'est le sujet de conversation
Sinon j'en parle jamais
mais je te cible pas forcément toi en particulier, juste dans le canal c'est vraiment souvent
Okok t'inquiète
bref
Je répondais juste à la demande de fredy pour utiliser le module en TS si tu l'as mal perçu excuse moi alors
de toute manière, ont à même pas bien regardé le screen
Et il avait juste pas importer le module
Je traîne ici quand j'ai du temps a perdre alors je remarque pas souvent
le mec du screen c'est encore un autre niveau lui
y a le niveau crack
il a réussi a le dépasser
j'avais pas vu non plus ce qu'il avait fait, c'est mignon
Vous êtes partis super loin en vrai
il a compris comment ont devient un dev expirimenter, en refaisait la roue 
Trop
Sinon il a pas typer hein 
"je n'ai pas de voiture, plutôt que d'utiliser la voiture qui existe je vais refaire une voiture maison"
si il a fait ça freddy :
declare module "tcp-ping-port";
voilà, j'ai typer mon module 
Je parle de l’autre type
l'autre c'est un autre niveau
tu vois Hecone
tu comprends mieux now
pas fallu attendre longtemps
pas vraiment
Ici c'est pas gênant
Non mais c’est du second degré là
Je vais retourner sur War selection même si c'est pour troll voir ça me fait mal au coeur
Je vais peut être devoir dev en PHP, ça me fera du bien
On peu plus mettre le mot qui commence par « c » et fini par « on » ?
caon
Ah si !
Je vais avoir l’impression de parler avec mon fils, « c’est pas bien ça il y a que coq qui font ça »
Pour radoucir cette discussion voilà des oiseaux
jejej
Bonjour, je suis actuellement en train de développer une extension pour chrome. Mon extension injecte des "thèmes" (fichiers css) dans certaines pages. Je voudrais faire en sorte que l'utilisateur puisse télécharger les thèmes depuis un site et non que les thèmes soient présents de base dans l'extension mais je ne sais pas comment m'y prendre. En gros comment faire pour les télécharger dans un dossier situé dans l'extension même ?
Voila, merci.
il faut utiliser l'api storage, tu pourras pas utiliser le dossier de ton extension pour stocker des donnée
Oui mais pour executer un script il me faut un fichier
chrome.scripting.executeScript({target: {tabId: tabs[0].id}, files: ["scripts/test.js"]})
tu n'as qu'à faire un script qui evalue un contenu
script.js =
eval(script du storage)
Bah pour le coup j'ai déjà exxayé et si :'(
alors, t'as aucun moyen
Ah
tu dois faire un script global qui permet d'injecter du css
Oui mais dans la page le theme injecte aussi du js
en gros un thème c'est un fichier "script.js" et "style.css"
ça va être compliqué ça d'injecter du JS
bah le sites bloquent pas si je fais ça
script = document.createElement('script');
script.setAttribute("src", chrome.runtime.getURL("scripts/extension.js"));
document.head.appendChild(script)
mais le fichier doit être dans l'extension
et si tu met l'URL depuis ton serveur ?
ça marcherais pas ?
Pour certains mais d'autres bloquement les scripts externes
Bonjour ! J'ai un problème assez problématique sur mon bot. Il crash sans faire d'erreurs lorsqu'il essaye d'envoyer un fichier, ce qui est assez ironique, c'est qu'il m'envoie une erreur quand mon fichier ne peut pas être envoyé et quand je me base sur les autres tutos et que tout à l'air bon. PAF, ça marche plus. Donc je ne sais même pas si c'est discord où une histoire d’autorisation sur mon ordinateur (c'est un mac si ça peut aider).
L'objectif de base de la commande est de générer une image via @napis/canvas et de l'envoyer via un embed. La génération de l'image n'a aucun problème car j'arrive à générer l'image dans mes fichiers avec le même code et quand je log l'attachment builder, il a une tête correcte.
Ça fait bien une heure que je cherche et ça m'a permis d'essayer pleins de choses mais rien à faire. Je pense que c'est lié à l'envoi de fichiers lui même. Ce qui serait top, c'est de régler ça puis après regarder pour mettre l'image dans un embed. Pour faire simple, j'ai pris l'embed par défaut du guide discordJS. *Et non je n'ai pas mi le code entier car il est énorme et peu facile à comprendre si on a pas la tête dedans. *
const image = await canvas.encode('png')
const attachment = await new AttachmentBuilder(await image, { name: 'inventaire.png' });
console.log(image)
console.log(attachment)
const exampleEmbed = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle('Some title')
.setURL('https://discord.js.org/')
.setAuthor({ name: 'Some name', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' })
.setDescription('Some description here')
.setThumbnail('https://i.imgur.com/AfFp7pu.png')
.setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' });
await interaction.reply({embeds: [exampleEmbed], files: [{attachment: attachment.attachment, name: attachment.name}]})
Je **vous remercie énormément **par avance de votre aide et j’espère que je me suis plutôt bien expliqué. (N'hésitez pas à me ping pour quoi que ce soit)
Encore merci !
Essaye voir ça
const image = await canvas.encode('png');
const attachment = new AttachmentBuilder(image, 'inventaire.png');
const exampleEmbed = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle('Some title')
.setURL('https://discord.js.org/')
.setAuthor({ name: 'Some name', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' })
.setDescription('Some description here')
.setThumbnail('https://i.imgur.com/AfFp7pu.png')
.setFooter({ text: 'Some footer text here', iconURL: 'https://i.imgur.com/AfFp7pu.png' });
return interaction.reply({ embeds: [exampleEmbed], files: [attachment] });
Virer le await ?
Ou ?
(La modif)
J'en ai enlevé pleins, car tu sais pas vraiment les utiliser visiblement 👀
J'étais surtout en depression vu que rien ne marchait x)
Du coup, ça fonctionne ?
Je viens d'essayer et ça n'a pas changé, c'est vraiment comme si dès que le fichier est envoyer que le bot plante sans erreur.
Ah mais il envoie le message ?
@olive lake
?
Nan, il log toutes mes vérifs avant et plante en envoyant le fichier (Je n'ai rien côté discord)
Hein mais quelles vérifications déjà 
Montre moi tout ton fichier
@olive lake !
sourcebin alors
Faudrait ce réveiller un jour aussi mdr
Genre pas dormir avant de répondre par exemple
@olive lake
Ça va aller détends toi je suis juste venu demander de l'aide
Bah j'essaye de t'aider là, mais tu dors
Bon, t'as toujours pas compris, bonne chance alors p: 💀
ligne 238
Nan, on a pas le temps ici
Peut être toi non, mais moi oui
Bon bah perds pas ton temps avec moi alors ^^
Bah t'as pas modifié avec le code que j'ai envoyé là 💀
Je viens de voir
Bah si !
et le interaction.reply ??
Et bien ça ne change rien si je le modif ^^
Tu as essayé ?
Tu as quoi console.log image et atta..
Pour image, j'ai un Uint8Array(101057)
Et pour l'autre j'ai AttachmentBuilder {attachment: Uint8Array(101057), name: 'inventaire.png', description: undefined}
.
Attends je reviens
Okok
Je pourrais pas te répondre de suite pour tes prochaines réponses désolé. Si tu veux tu pourras passer en mp au pire, je répondrais dès que possible
Bonjour qui pourrais m'aider sur cette erreur ?
Bonsoir, typeof(this.giveaways) te renvoie quoi ?
il m'envoie "boolean"
c'est là le problème alors 😉
forEach n'est pas exécutable sur un booléen
--> https://www.w3schools.com/jsref/jsref_foreach.asp
comment je fais pour enlever blooéen ?
Pour ton info, j'ai aussi essayé avec ça: ```js
await interaction.reply({embeds: [exampleEmbed], files: [{attachment: 'https://i.imgur.com/AfFp7pu.png', name: 'inventory.png'}]})
Et ça marche pas non plus (et pas d'erreurs) et quand je mets derrière un `.then(console.log('test'))` il est loggé
Y’a le message sans l’image, ou avec, ou aucun message ?
Aucun message
Essaye de poster avec 2 messages pour voir on sait jamais
Un avec et un sans ?
Un juste avec l’embed, et un juste avec l’image
Je test ça
Et mets juste [attachement] par pitié tes trucs ça sert à rien là
C'était un test pas besoin de m'en faire un drame x)
L'embed est là mais pas le deuxième comme prévu
Console.log attachement
Ce serait pas un problème interne car la fonction s'exécute et se finit si je ne me trompes pas (avec le then)
AttachmentBuilder {attachment: Uint8Array(101057), name: 'inventaire.png', description: undefined}
Pas forcément…
Bref, je regarde demain, je suis pas dispo ce soir désolé
Je préfère aussi que ce soit chez moi que chez discord
Pas de soucis, merci quand même !
Mon dieu cet emote
Bonjour ! est-ce que vous savez si c'est possible de trouver l'id d'une commande via son nom en discord.js ?
oui c'est possible
je suis trop un helpeur enfaite 
#python
Me suis tromper sorry
Bonjour, je dois mettre en place une application type "tchat", avec page d'inscription (on choisit son pseudo, son mot de passe et son avatar), une page de connexion ainsi que la page de l'application elle-même ;
_un utilisateur doit pouvoir envoyer des messages publics (tous le monde les reçoit) et des messages privés (à destination d'un seul utilisateur) ;*
_les messages s'affichent sous la forme de blocs : on peut voir le pseudo et l'avatar de l'expéditeur, la date et l'heure de l'émission du message, et bien sûr son contenu ;
_**un client peut voir la liste des utilisateurs connectés **;
_vous devez utiliser NodeJS, socket.io et express côté serveur, et HTML, CSS/Flexbox (ou Grid), et JS côté client ;
_pas de bases de données SQL : si vous devez enregistrer quelque chose, utilisez du JSON.
(j'ai mis les points que je n'ai pas encore fait en gras)
Je bloque actuellement sur l'affichage du nom du users lorsque celui-ci tente d'envoyer un message, à la place j'ai undefined.
const user = socket.username;
console.log('De:', user);
console.log('Message reçu:', message);
io.emit('message', user);
io.emit('message', message);
});```
Si vous avez une solution, je suis preneur.
Merci par avance !
Salut, c’est pas ça que tu cherches plutôt :
Server
Je vais check ça
Je pense pas que tu peux avoir l'user directement dans le socket au pire tu fais une boucle for sur socket pour voir toutes ces classes
Ouais l'user tu dois l'envoyer dans les datas en conséquent dans message pour ton code actuel
Tu as bien configuré ton serveur web ?
Ton app (qui je suppose est faite avec express) écoute sur quel port ?
ou du moins est censé écouter sur quel port ?
Si tu fais la commande netstat -tulpn | grep 80, est-ce que tu as un résultat ?
Ah je vois
Ton app écoute sur l'ip v6
attends, j'te donne la solution dans 1min
server.listen({ port: 80, host:"0.0.0.0"});
Au moment de faire écouter ton app, il faut que tu lui indique l'ip sur laquelle il doit écouter. En l'occurence, 0.0.0.0 indique obligatoirement l'ipv4 de ta machine. Il faut bien sûr qu'elle en dispose ^^
tu vas bien sur <tonip>:80 ?
avec un reverse proxy ?
oui mais comment tu fais pour que ton app utilise ton ndd ?
Okay
Faudrait que tu fasse un reverse proxy avec un serveur web comme nginx ou Apache 👀
Pour rediriger les requêtes de ton nom de domaine vers ton app express
Pense à changer le port de ton app pour éviter les problèmes x)
Passe l’étape 3 et génère un certificat ssl :
sudo apt install certbot python-certbot-nginx -y
certbot --nginx -d tondomaine.fr
En l’occurrence ça diffère pas ^^
passe, c'est que t'as pas de firewall ^^
Tu as bien désactivé le proxy de cloudflare ?
Yep
Juste pour le domaine que tu veux utiliser
Yop ! ✌️
En se moment je me forme à la transition Javascript => Typecript, via des petits exercices du site Exercism que j'aime bien, m'enfin c'est pas la question, ma question est :
**J'ai créé un objet qui ressemble à celà : **
export const COLORS: Object = {
"black": 0,
"brown": 1,
"red": 2,
"orange": 3,
"yellow": 4,
"green": 5,
"blue": 6,
"violet": 7,
"grey": 8,
"white": 9,
}
Le but de l'exercices est de faire une simple fonction qui prend en paramètre une string, et qui retourne un nombre, jusque là je comprend bien, mon soucis, étant que avec la fonction que j'ai réalisé : ```ts
export const colorCode = (color: string): number => {
return COLORS[color];
}
le linter me dit que "string" ne peut pas être utilisé comme index d'un objet, le soucis c'est que je reçoit une string en paramètre OBLIGATOIREMENT 😓
Du coup, comment je suis sensé typé `color` pour que ça passe ?
(EDIT : Je continus de chercher de mon côté mais pour le moment je ne trouve pas)
Hello, ton params color doit être une des key de ton objet sinon si le mec passe "abcd", ça va pas le faire
Je te laisse comment faire pour typer ça ;), dis moi si c'est pas clair
Du coup si je traduit en code, faudrait que j'utilise le type "keyOf" quelque chose ?
C'est ça
🤦♂️ Merci
Apparemment ça ne passe pas mais je pense que je suis sur la bonne voie xD
avec color: keyof COLORS il me dit "Non tu devrais utiliser typeof" puis quand j'utilise color: typeof COLORS il me dit "Type '{ black: number; brown: number; red: number; orange: number; yellow: number; green: number; blue: number; violet: number; grey: number; white: number; }' cannot be used as an index type." du coup il faut que je cherche une solution 
(Oui le typage c'est un peu ma bête noir du coup je me fais quand même violence pour passer sur TS 🤣 )
Bon, j'ai fais ma brute, je sais pas si c'est bien, mais j'ai repensé au fait qu'il me disait qu'une string ne peut pas être un index de mon Objet, du coup je lui ai dis que ça le sera avec :
export const COLORS:{[index:string]:number} = {
"black": 0,
... //mes valeurs
}
export const colorCode= (color: string): number => {
return COLORS[color];
}
(Il a pas voulu que j'utilise keyof du coup ....)
Non c'est pas bon ce que tu as fais, t'as cassé le typage
il suffit de combiner typeof et keyof
sur ton COLORS
Ou bien directement keyof sur ton Object
Salut qui peut m'aider svp
Re !
Quand tu déclares le client en utilisant discord.Client tu dois spécifier les intents (https://discordjs.guide/popular-topics/intents.html#enabling-intents)
const { Client, Events, GatewayIntentBits } = require('discord.js');
const { token } = require('./config.json');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
Les intents sont paramétrables selon les besoins de ton bot, via le portal dev
Oui effectivement, j'ai vu cette solution aussi, je ne savais pas que j'avais cassé le typage 🤣 (là je m'imagine toi dans la scène "Bah Bravo Nills ! le typage il est cassé !" )
😂
Le typage va finir par rentrer à force de pratiquer, mais ça va je commence à mieux comprendre là 🤣
Par contre j'ai vraiment un gros problème de compréhension en faite, le site où je fais les exercices, tu peux regarder les solutions communautaire, mais tout les mecs qui ont validés les exercices où j'ai besoin d'appliquer keyof/typeof, ont tous casser le typage comme moi
Et quand je regarde ma source de documentation (https://www.typescriptlang.org/docs/handbook/2/keyof-types.html) je n'arrive pas à voir comment faire à l'interne d'une fonction, car de ce que je comprend c'est comme ça que je devrais faire : ```ts
type OrbitalPeriods = {
'earth' : 1.0,
'mercury' : 0.2408467,
'venus' : 0.61519726,
'mars' : 1.8808158,
'jupiter' : 11.862615,
'saturn' : 29.447498,
'uranus' : 84.016846,
'neptune' : 164.79132
}
export function age(planet: keyof OrbitalPeriods, seconds: number): number {
let secondsInYear = 31557600;
let howManyYears = (seconds / (secondsInYear * OrbitalPeriods[planet])).toFixed(2);
return howManyYears;
}
Le soucis c'est que `OrbitalPeriods` a était instancié comme un type, et je l'utilise comme une valeur 
Using the keyof operator in type contexts.
Pour l'instant je me dis que c'est une torture Typescript, car sans le typage, en JS j'ai le résultat attendu 🤣
Mais bon je comprend l'utilité du typage, c'est juste que je suis pas habitué à penser de cette façon du coup ça me brainfuck complètement
Hello,
Est-ce qu'il y a un moyen générique de pouvoir accéder à des fichiers envoyés via discord même après leur suppression ?
Parce que dès qu'un utilisateur supprime une image d'un salon par exemple, lorsque les autres essayent d'y accéder, l'image devient inaccessible. Pareil pour les fichiers compressés, etc...
Quelqu'un aurait une idée pratique qui peut m'éviter de faire du cas par cas et sans devoir faire mon propre cdn ?
SI l'utilisateur supprime son attachment il est aussi supprimé côté serveur non ?
Tout stocker au moment de l'envoie et comme ça, ça permet de garder en stock de ton côté même si c'est supprimé
Après une image même si elle est supprimé le lien de l'image fonctionne encore
C'est ce que je fais justement mais ça marche pas visiblement
Donc au pire le bot garde juste en stock le lien de l'image
Si l'auteur de l'image supprime l'image, même si tu as envoyé le lien dans un autre salon et que tu le laisses, l'image devient invalide
C'est ce que je faisais en pensant que ça réglait quoi que ce soit mais en fait non
Stock l'image en base64
Pareil pour les fichiers compressés, etc...
Quelqu'un aurait une idée pratique qui peut m'éviter de faire du cas
J'ai eu l'idée de download l'image et de la réupload
Mais en plus d'être chiant
Ca marche pas pour tous les fichiers
j’avais eu ce souci la, ce que je faisais c’est qu’à la réception du message et du fichier, je le renvoyais dans un autre channel
ça permettait de le garder
Il a déjà essayé
Ouais il faut gérer au cas par cas toutes les extensions d'images
les fichiers sont delete au bout de 6 heures après leur suppresion des serveurs
De la base tu veux dire
me concernant ça marche
Bonjours, je suis en train d'essayer e récupérer le status d'un membre mais cela ne fonctionne pas pouvez vous m'aider svp
const user = interaction.options.getUser("user") || interaction.user;
const member = ssinteraction.guild.members.cache.get(user.id);```
```js
console.log(member.presence.status);```
Je le fais et cela ne change absolument rien
je vais regarder comment j'avais fait précisément
j'ai ça qui marche supposément
mais ça fait qlq temps que j'avais fait ça
donc c'est pas impossible que ce ne soit plus fonctionnel
Tu as bien le presence intent ?
et est-ce que member n'est pas undefined ?
nn quand je log member j'ai bien un truc
sse ou websocket 👀 ?
ça venait de quoi?
Hello j'ai un petit problème avec ma fonction javascript. Celle-ci m'affiche undefined
function ajouterOption(selectElement, value, text) {
var option = document.createElement("option");
option.value = value;
option.text = text;
selectElement.appendChild(option);
}
https://developer.mozilla.org/fr/docs/Glossary/Callback_function tu auras tout là dessus 🙌 exemple + explication
tu peux log ton selectElement, value et text please ?
j'ai pas compris le terme log?
faire un console.log
Yo j'aimerais savoir comment récupérer le contenue d'un modals pour le mettre dans un embed par exemple je met 'test' dans mon modals et le titre de mon embed est 'test'
Discord.js is a powerful node.js module that allows you to interact with the Discord API very easily. It takes a much more object-oriented approach than most other JS Discord libraries, making your bot's code significantly tidier and easier to comprehend.
Le vent

Bonjour j'ai un petit problème je créé actuellement un petit jeu en javascript mais j'ai un problème j'ai créé un input en html qui renvoie à ma fonction enter mais quand je tape des lettres ou chiffre dans l'input j'ai un message d'erreur me disant :
allumette.html:11 Uncaught ReferenceError: enter is not defined at HTMLInputElement.onkeydown (allumette.html:11:97)
Je présume que cela vient de mon code en js mais je ne trouve pas l'erreur :
function enter(event){
if (event.key === "Enter") {
start();
document.getElementById("input").value = "";
}
});```
Voici mon input :
```<input type="text" placeholder="ecrire ici" size=10 maxlength=10 id="input" onkeydown='enter()'></input>```
J'ai bien fait appel avec le src à mon fichier js dans lequel se trouve mon code. Merci à ceux qui pourrons m'aider (en cas de besoin de d'autres morceaux de code ou autre n'hésitez pas à me mentionner)
(je ne suis encore que débutant en js donc si il y a quelques erreur faut pas trop m'en vouloir 😅 )
Peux-tu donner le code HTML complet stp ?
Déjà, ce n'est pas cohérent de mettre dans ta balise onkeydown et en JS un event Listener, le mieux serait de faire soit l'un, soit l'autre
l'erreur = function enter est enregistré comme un callback dans ton javascript ce qui fait qu'il n'existe pas "globalement" comment la corrigé ?
function enter(event){
if (event.key === "Enter") {
start();
document.getElementById("input").value = "";
}
}
document.getElementById('input').addEventListener("keypress", enter)
Bonne journée ^^
Ok merci je vais essayer
Le key down c'est pour lancer ma fonction l'eventlistener c'est pour vérifier si on utilise bien la touche entré
Tu peux mettre le keydown en évent listener
Ce que je te conseil d'ailleurs de faire
Et dans ton listener keydown, tu peux directement écrire ta fonction enter
Appeler* pas écrire
Et tu n'auras plus besoin de keypress
En fait ce sont deux choses différentes, keydown se déclanche quand tu appuie sur ta touche, keyup quand tu la relâche et keypress sert quand tu appuie sur une touche caractère (donc pas enter)
Donc dans ton cas de figure, tu n'as pas besoin du keypress, tu peux le remplacer par keydown dans ton eventListener et l'enlever de ta balise html
Bonjour, je regardais un tuto sur le scrollspy en JS (Grafikart), malheureusement je bloque vers le 9ème minute. Ma balise <a> garde la classe 'active' indéfiniment une fois qu'elle l'a "appliqué" (donc la classe qui permet de styliser mon texte pour faire ressortit une des sections du scrollspy) malgré les lignes suivante prévues pour régler ceci. Quelqu'un pourrait il me venir en aide?
.querySelectorAll('.active')
.forEach(node => node.classList.remove('active')) ```
Aurais-tu le html stp ?
Et la fonction comlplète
As-tu pensé à regarder la console pour voir si il y a des erreurs ? @fierce kelp
Yes j'ai regardé la console n'affiche aucune erreur, tu veux que je t'envoie quelle partie du html?
En vrai le HTML je pense pas, si tu as fais exactement celui que grafikart je l'ai vu hier
Je pense que ça viens de ton JS tu pourrais envoyer la fonction complète stp
Hey je rencontre quelque problèmes avec Postgresql et Prisma, j'aimerais connecter ma bdd a mon site avec Prisma, mais l'uri (postgresql://postgres:monMotDePasse@localhost:5432/postgres) ne marche pas (Environment variable not found)
Tu dois faire un fichier .env avec l'url dedans
Aah, ça marche, mais du coup pourquoi mettre l'url dans le schema.prisma ?
faut mettre la variable d'environnement normalement
okok
tu peux pas ! ca attend un env
c'est d'ailleur pour ca que le schéma c'est écrit
env("DATABASE_URI")
il te faut un .env avec comme valeur DATABASE_URI
et que tu es dotenv
clé du coup
Oui roh c'est pareil mdr
Salut, y’a pas un mec pour m’aider en JS pour faire un bot discord? Je suis nouveau dans le domaine
Expose ton problème ^^
J’ai fait une commande pour une réponse automatique et impossible qu’elle fonctionne

Une erreur ?
Je t’envoie le message d’erreur après j’suis pas sur mon pc la
ok
Documentation suggestion for @jovial ocean:
:property: (static) IntentsBitField.Flags
Numeric WebSocket intents
Documentation suggestion for @jovial ocean:
:property: (static) IntentsBitField.Flags
Numeric WebSocket intents
et jsuis sencé faire quoi dcp ?
C’est pas Discord.Intents.FLAGS.X mais Discord.IntentsBitField.Flags.X
Remplace X par l’intent 
jmet pas Discord.IntentsBitField.Flags.GUILDS, ? et ainsi de suite ? avec GUILD_MESSAGES et DIRECT_MESSAGES
Si
sa me met exactement le même message derreur que celui la
les virgules c'est pas optionels
tu vois bien que ton éditeur te souligne le mot discord en plus
Comme je t'ai dis apprend le js avant de vouloir faire un bot
eu... normal que mon bot me mette "l'aplication de rep plus" et j'ais pas d'érreur
meme ma commande ping ne fonctionne plus
l'api de discord est down
ou du moin elle ram ca mère
j'ai passé l'aprem dans ta situation tkt @empty mauve
Même si logiquement la y'a plus de souci
J'ai appris que discordJs n'etait plus dev par discord
maintenant c'est @discordJS c'est vrai ?
"normalement"
jsp
bon ah ça veux toujours pas
alort que pourtant les autre bot de mon serv fonctionne
mais seulement MON F*KING BOT ne fonctionne pas
discordJS n'a jamais été reconnu par discord comme fruit de leur création
ca a toujours été un projet communautaire même si il est vrai que pas mal des contributeurs sont employés de discord
bon bah c'est repartie l'api est de nouveau en majeur outage
a part ça qui peut m'aider car je comprend pas le Rich Presence sur discord devlopper portal
discord soutient à hauteur de 1000€/Mois discord.js
ouais bah ça va attendre en fait Discord décède
rich presence
attend
elle work
elle aussi
C'est plus un don que autre chose
yep
Github aussi les soutiens
my bad c'est github sponsor
👍
j'aime pas la flèche
Hey
Jai un soucis concernant mon bot discord pour pterodactyl je m'explique je peux faire /create-user pour me créer un compte sur le panel cependant j'ai un soucis lorsque je tape cette commande il me renvoie "Erreur lors de la création du compte." Voici la commande :
Merci d'avance
c'est quoi l'erreur ?
Alors, pas ouf de montré ton IP pterodactyl
mal formed email
Erreur lors de la création de l'utilisateur
Donc je modifie quoi ?
ouais mais tu fais un console.log de err
met pas l'ip en email
Met genre "hebergeur.com"
par exemple
Ok je vais essayer merci
ici aussi ça peut posé problème
y a des règles concernant le pseudo
check les regex
ca met une erreur sur ton api ?
Tu veux que je te passe l'accès au ptero ?
non, c'est a toi de trouver ce que disent les logs
Le problème c'est que je n'ai pas grand chose à part " erreur lors de la création du compte " et ça :
ouais mais la ta rien envoyer enfaite
genre tien la ya une ereur :
petite question pour les bot discord, peut on faire des sous commande aux sous commande comme dans ce code ?
data: new SlashCommandBuilder()
.setName('verify')
.setDescription('Verify your steam account from your discord passport')
.addSubcommand(subcommand =>
subcommand
.setName('channel')
.setDescription('Set the channel where the user will be verified')
.addChannelOption(option =>
option.setName('channel')
.setDescription('The channel where the user will be verified')
.setRequired(true)
)
)
.addSubcommand(subcommand =>
subcommand
.setName('role')
.setDescription('Manage the roles given to the user when he is verified')
.addSubcommand(subcommand =>
subcommand
.setName('add')
.setDescription('Give the role to the user when he is verified')
.addRoleOption(option =>
option.setName('role')
.setDescription('The role given to the user when he is verified')
.setRequired(true)
)
)
.addSubcommand(subcommand =>
subcommand
.setName('remove')
.setDescription('Remove the role to the user when he is verified')
.addRoleOption(option =>
option.setName('role')
.setDescription('The role removed to the user when he is verified')
.setRequired(true)
)
)
.addSubcommand(subcommand =>
subcommand
.setName('list')
.setDescription('List all the roles given to the user when he is verified')
)
.addSubcommand(subcommand =>
subcommand
.setName('delete')
.setDescription('Delete a registered role (role add or role remove)')
.addRoleOption(option =>
option.setName('role')
.setDescription('The role to delete')
.setRequired(true)
)
)
),
l'API n'est plus en pls??
Welcome to Discord's home for real-time and historical data on system performance.
on est plus aux 16s de ping d'hier 
tu peux faire des "commands group"
@fleet scaffold
quelqun peut m'aider mon bot me met "l'application ne rep plus" et j'ais pas d'érreur et j'ais perdu mon badge "activ-developer"
j'ais reset le token, kick et réinviter mon bot...
ça veux pas

de qui?
moi
qui peu m'aider svp
il est login au moins ?
wesh si qq aime bien faire des embeds et a du temps a perdre je le défi de rendre ca plus jolie
oui
mhhh peut avoir du code à voir ?
Je veux bien mais je n'ai pas d'erreur
Y’a des trucs au dessus non ?
Copie tout de haut en bas et envois le ici 🙂
Ouep
C’est quoi l’ip et le port de ton api ?
De mon api ? C'est où que je vois ça ?
Bah tu envois une requête vers quoi ?
Vers le ptero
Ouais mais du coup ça sers à rien, il ne sait pas quoi faire avec ça pteto
Ah je crois avoir compris ce que tu veux, c’est crée un user sur ptero ?
Dans ces cas là il te faut une ip suivi d’un port (celui de ptero)
Oui, le but de la commande cependant il me renvoie erreur lors de la création mais je ne comprends pas pourquoi après avoir check le code
⤴️
T’es sûr que c’est possible aussi ?
Et t’es sûr de savoir ce que tu fais ?
Oui, il est open source sur github et était sur un serveur
Alors c’est pas la bonne adresse pour la requête
@azure atlas localhost = ipv6 hein 👀
Tu peux m'envoyer ton template stp
déso jsuis partie deux heure tu veux quoid comme fichier?
Je ne suis pas en local host
Ah oui alors non, je ne telecharge pas de .rar sur github 🙂
tu peux demander a @copper pagoda de t'aider
tu veux je t'envoie un zip sur discord ?
c'est juste pour crée un compte sur softsky, du coup deso mais ca ne marchera jamais
je sais cependant je peux le config ?
ou alors je ne sais pas comment ca marche :/ je suis désolé
je ne peux pas le config ?
si si mais je ne sais pas comment ca marche
ah, dommage. Merci quand même ^^
::1 = IPv6 locale 
quelqu'un matrise telegraf?
Pas moi (ouai js mon message est très utile)
Hey ! J'ai un petit soucis avec une fonction en TypeScript.
J'ai fais une fonction qui retourne une Promise<any>, le problème c'est que dès que j'exécute la fonction, le programme n'exécute pas le reste.
J'ai déclarer ma fonction comme ça :
async function pushFunction(): Promise<any> {
let arr = [];
arr.push({test: "test"})
return arr
}
Dans mon code, cette fonction m'a renvoyer un tableau contenant 2 objets
Et appeler ma fonction comme ça :
const p = await pushFunction();
console.log(1);
if(!p.length) return console.log("Pas de données");
console.log(2);
Le problème c'est que les deux derniers console.log ("Pas de données" et 2) ne s'envoient pas, d'ou le fait que je pense que le programme n'exécute pas le reste 🤔
J'ai mis Promise<any> un peu au pif je vais pas vous mentir
@fleet scaffold
bah je sais pa s
