#javascript-typescript
1 messages · Page 86 of 1
C'est là que discord va bloquer l'autre module, vous allez rien comprendre 😂
Chacun son avis
Mais tu as bien raison, faut pas aller à l'encontre des initiatives car sinon on ferait plus rien
Mais faut être réaliste aussi, donc oui à voir ce qu'il arrive à faire 😇
Fin je dis pas non à du changement si c’est avantageux, j’ai pas mal d’expériences dans djs et la v13 ce qui est certain c’est que je passerais pas dessus, rien qu’à voir pour les perms je vois pas pourquoi ils ont changés la façon de faire fin ils « complexifient » le truc sûrement pour une raison x ou y mais bon c’est moins intuitif
de mon point de vu
m’enfin bref j’ai d’autres chats à fouettés, bonne nuit tout le monde !
Pour les perms c'est nouveau, donc ils ont rien changé
Ha tu parles de ça, je pensais que tu parlais des perms des slash command
J'ai pas encore vu ce qu'ils avaient changé au niveau des perms
En gros, maintenant, c'est les perms des flags @ashen rapids
non les slashs je m’en sers pas donc je parlerais pas de ça
Genre FLAG.GUILD.X.X
Genre ça ? => if (member.permissions.has(Permissions.FLAGS.KICK_MEMBERS, false)) {
J'ai juste pris un code au hasard du DiscordJS Guide
Mais en quoi c'est chiant ?
Justement, on est plus flexible sur les perms maintenant, plus conventionnel aussi
Juste avoir les accès, c'est chiant par contre 😦
Je me ferai une propre idée quand j'aurai terminé de tout migrer mais pour l'instant, ya rien qui me gêne
A voir
Yes
Par contre si vous avez un anti spam open source, je suis toujours preneur 😏
https://www.npmjs.com/package/discord-anti-spam ? @ashen rapids
C'est celui dont on parlait dans le thread anti spam
Il est un peu codé avec les fesses
Tu as test ?
Oue
T'as des options qui fonctionnent pas et quand t'ouvre une issue, le gars est hyper hautain
Et le code a l'air un peu foireux à première vue
Ok, sinon, j'ai trouvé ça
const usersMap = new Map();
const LIMIT = 7;
const DIFF = 5000;
client.on('message', async(message) => {
if(message.author.bot) return;
if(usersMap.has(message.author.id)) {
const userData = usersMap.get(message.author.id);
const { lastMessage, timer } = userData;
const difference = message.createdTimestamp - lastMessage.createdTimestamp;
let msgCount = userData.msgCount;
console.log(difference);
if(difference > DIFF) {
clearTimeout(timer);
console.log('Cleared Timeout');
userData.msgCount = 1;
userData.lastMessage = message;
userData.timer = setTimeout(() => {
usersMap.delete(message.author.id);
console.log('Removed from map.')
}, TIME);
usersMap.set(message.author.id, userData)
}
else {
++msgCount;
if(parseInt(msgCount) === LIMIT) {
message.reply("Warning: Spamming in this channel is forbidden.");
message.channel.bulkDelete(LIMIT);
} else {
userData.msgCount = msgCount;
usersMap.set(message.author.id, userData);
}
}
}
else {
let fn = setTimeout(() => {
usersMap.delete(message.author.id);
console.log('Removed from map.')
}, TIME);
usersMap.set(message.author.id, {
msgCount: 1,
lastMessage : message,
timer : fn
});
}
})
A voir si il fonctionne 🙂
Ca peut donner une idée de l'algo, merci 😇
Dr
si jamais tu en trouves un mieux ou que toi tu en dev un que tu veux bien partager n'hesite pas a me prevenir
Si j'en dev un, je pense qu'il sera privé
Mais c'bien parti pour que je parte sur un truc fait maison
Bah comme ça t'as le cache qui te sort une collection sur laquelle y a des méthodes sympas, et sinon des autres méthodes qui varient selon ce que c'est
salut les gens, je veut créer mon premier bot discord, et j'ai une petite question anodine... dans index.js, client.login(config.token) je tape vraiment token ou je tape le token que j'ai recu sur discord developers ?
config.token correspond surement à fichier json dans lequel est stocké ton token 🤔
daccord, c'Est ce que je me disait merci.. dsl , j'ai débuter un cours en prog , et la je suis seulement au module ou j'aprend le c# , le bot discord c'Est par passion que je le fais
Pas de soucis, et cool ;)
j'aime la commu dev et prog, ya de l'entraide 😛
montre ton code mdr
t'as mis un array pour les embeds du msg ?
Caca comme la qualité de ton screen 😅
sinon oui logik ça va te sortir ça, si t'as juste embeds: embed,

Mdr
j'ai ça comme fonction de screen aussi https://uwu.is-a-skid.me/en-plus-il-suce-mal/
Uttilise lightshoot
Ah mais logik
tu dois mettres les embeds dans un array
mdr
je savais que c'était cette erreur mdr
pourquoi je dois les mettre dans un array ???
embeds: [embed]
bah si il y en a plusieurs
et si tu veux aucun embeds (dans le cas où tu edit un message), tu mets embeds: []
pas de soucis et super du coup 👀
Nice

mon systeme economic et rpg vous me conseillez de le faire avec quick.db ou fs et de faire ma db seul ?
Mdrr
comme ca je pourrais modif ma db dans un json
Si tu as trop de donnée, va falloir changer car json, c'est pas top
ca devient lent ?
Exactement
c'est quick.db qui utilise sqlite
Jamais use comme j'ai dis donc 🤷♀️
Go à l'instinct mdr
Nickel
Salut, vous avez des tutos/vidéos pour les slashcommands autre que la doc svp ?
Vidéo youtube @blazing wadi
Tu as vu le Discord Guide directement avant les vidéos ?
Lequel Discord.js Imagine a bot ?
Lui : https://discordjs.guide/
ouais justement je comprends pas
c'est ce que j'appelle la doc 🥲
T'as le doc et t'as le guide 😏
j'y arrive pas même avec la doc 😂
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
const { token } = require('./config.json');
const fs = require('fs');
const commands = [];
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
// Place your client and guild ids here
const clientId = '856457165116276746';
const guildId = '852208115771899954';
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
commands.push(command.data.toJSON());
}
const rest = new REST({ version: '9' }).setToken(token);
(async () => {
try {
console.log('Started refreshing application (/) commands.');
await rest.put(
Routes.applicationCommands(clientId),
{ body: commands },
);
console.log('Successfully reloaded application (/) commands.');
} catch (error) {
console.error(error);
}
})();
J'ai ça
J'ai pas réussi à faire des / commands
@keen narwhal si tu as besoin d’aide met ton problème direct, si tu cherches un développeur pour bosser pour toi c’est sur le site directement
Le slash commands sont plutôt simples
Qu'est-ce que tu n'arrives pas ?
Si tu n'aimes pas pourquoi les intégrer ?
Et si ça ne fonctionne pas c'est que tu n'intéragis pas avec
Y a que les cons qui changent pas d'avis 
3-0, partie gagnée pour mathis
Bon,
Ca c'est inutile
Déjà
J'ai fait avec l'exemple de Djs
La v9 est déjà utilisée avec d.js v13 il me semble
Pourtant c'est ultra simplifié, t'as plus besoin de parse ta commande
Vey
Au pire c'est pas grave
Je rentre de vacances Samedi on voit ça plus tard stv
Ca m'arrengerait ouais lol
😂
Tu dois enregistrer, créer, intéragir avec
Aussi simple que ça
Tu peux les enregistrer en global ou guildOnly
Quand tu les créer, c'est avec des options
Et pour intéragir c'est via l'event interactionCreate
Sur ta classe Interaction tu as une public fonction pour qui renvoie un booléen qui vérifie si c'est bien une slash command isCommand()
A partir de ça, ça devrait être un peu plus clair
Ou alors tu créer un slash command handler ( ce que j'ai fait ) pour gérer ça 2x mieux et 2x plus rapidement
Pour débuter:
Bonsoir
j'ai un petit problème
j'ai cette erreur pour ce code
UnhandledPromiseRejectionWarning: TypeError: option?.toLowercase is not a function
at Object.run (F:\Discord-Moderation-Bot-main2\Discord-Moderation-Bot-main\Discord-Moderation-Bot-main\commands\utility\prefix.js:56:24
ha, merci
Mmh, cependant
pourquoi importes tu MessageEmbed de discord js pour utiliser new Discord.MessageEmbed
quand j'ai fait le code j'ai trouvé sa plus pratique
bah du coup c'est un peu inutile, autant remplacer ça par MessageEmbed et supprimer la ligne de l'importation totale
la sa fonctionne c'est good, je suis content
parfait 👀
j'essaye de faire un truc
if (!args[0]) {
return message.channel.send(embedprefix)
}
ici je voudrais que tout les user peuvent l'utiliser
et que le bot n'envoi pas const embederreurperm
j'ai essayé avec un &&
sans sucés
bah tu le mets avant
ou tu fais un && args[0]
Yop les gars est-ce que vous sauriez comment faire cet effet ou juste si vous avez un lien pour m'expliquer 😋 https://gyazo.com/17fd1634bcfd110ee4542ba59dbbb659
C'est du adobe ça nan?
@azure tapir yo!
Ça ressemble vachement à ce que tu veux, je te laisse voir par toi même: https://tympanus.net/Tutorials/CSS3RotatingWords/index.html
Rotating Words with CSS Animations
merci beaucoup !
Bonjour, comment je peux vérifier que mon tableau a bien une clé "id" ?
Actuellement je capture l'erreur suivante : '{"message":"Cannot read property 'ID' of null"}'
ah
mais suis je con
si je lisais un peu plus le message d'erreur lol
Bon bah PB résolu
😅
ce qui font des bots
vous le faites comment votre handler
perso j'utilise slappey qui m'aide beaucoup et j'aimerais savoir si il y a pas de meilleurs façon de faire son handler
Bonjour, depuis ce matin j'essaie d'utiliser le module npm youtube-notification (https://www.npmjs.com/package/youtube-notification) sur une app node. Seulement, je ne reçois aucun événement et je ne comprends pas pourquoi. L'ip est bonne, le port est ouvert (et le firewall est configuré).
Si quelqu'un pouvait m'aider ...
Mon code : https://pastebin.com/xrDt244T
Je vais quand même te poser la question même si je pense que ce n'est pas ça :
" const notifier = new YouTubeNotifier({
hubCallback: 'http://myserverip',
port: 9001,
secret: 'mysecret'
}); "
On est d'accord que tu as remplacé ces informations avant de poster ton code pour des raisons de sécurité et non pas parce que tu as juste oublié ?
Oui oui j'ai remplacé
Ok et est ce que tu as une erreur quand tu start ton app ?
Aucune, je ne reçois simplement pas les events
Même si je mets un mauvais ID de chaine
Est ce que tu sais tester ton hubCallback à part pour voir si il fonctionne
D'apres la doc tu devrais déjà faire ton subscribe avant ton handler comme ça tu pourrais voir si au moins l'event subscribe focntionne
Mais c'est du synchrone donc c'est plutôt l'inverse non ?
De base le javascript c'est pas synchrone
Tu devrais utiliser une promise ou async / await pour t'assurer que ça fonctionne dans le bon ordre
Je voulais dire async
C'est pas une raison pour le mettre dans le désordre ^^
et tu devrais rajouter juste après "notifier.setup();" notifier.listener();
Oups non ne fais pas ça si tu n'as pas de middleware
Non toujours pas d'event
Tu as une idée pour tester le hubCallback ?
Ton hubCallback c'est un serveur web de microservices à mon avis donc si t'as rien setup à coté c'est pas tellement testable
Je ne sais pas si il y a d'autres librairies qui pourrait faire ce que tu cherche mais l'auteur de celle-ci a rendu son repo privé sur github ce qui est pas pratique vu le peu de doc dispo
Il y avait https://www.npmjs.com/package/youtube-watch qui était presque identique
Ah, je me demande si le premier projet c'est pas un reponpage de celui-ci
Je pense aussi mais je voulais tester les deux
C'est un petit peu plus compréhensible la doc
D'après cette doc la tu dois dans le handler notifier.on('start', ....) te sub à la chaine et à la fin start le tout
Enfin je te laisse regarder https://github.com/hikilaka/youtube-watch
Je fais ça et si j'ai le même problème, je redemanderai de l'aide
Ah pour tester ton hubCallback tu peut passer par https://pubsubhubbub.appspot.com/subscribe
Et c'est effectivement un protocole pour faire du publish / subscribe via internet
Donc il te faut impérativement un serveur web setup
C'est le cas donc normalement ça devrait fonctionner
Je peut pas t'aider plus je n'ai jamais utilisé pubsub
Hum, merci quand même 🙂
personnellement, mon handler c'est un classique que j'avais trouvé y a pas mal de temps, et il fonctionne nickel, il utilise readdirSync
Un truc cool avec slappey c'est quand je fais ctrl s pour enregistrer un fichier ça auto relance le bot
nodemon
Hey, j'ai regardé les slash commands sur le guide de discordjs, et en vrai c'est pas si mal, y a vraiment des options qui sont pratiques
Ouais mais il manque quelques trucs
Oui, après je suppose qu'ils ajouteront des fonctionnalités au fur et à mesure
Tiens @blazing wadi
msg.channel.send({
files: ['httpshttps://watchbot.app/img/logo.png?size=2048']
})
Ça marche plus le MessageAttachment ?
Je ne crois pas non 😉
😩
si
ça fonctionne toujours
tu mets le message attachement dans les files
@blazing wadi
Je peux faire const attachment = new MessageAttachment
oui
✅
J'ai nodemon avec slappey
bah donc c'est pas slappey qui te permet ça mais nodemon
Oui
hey, je pense que c'est vain mais quelqu'un s'y connait en slash commands avec discord js v13?
Yep quel est ton soucis ?
alors après avoir pas mal cherché sur le guide, la doc et la ddoc, et bah je comprends toujours pas comment set des permissions à une global commande. D'après le guide pas de soucis, mais dans la pratique, il me sort cette erreur (alors que j'utiliser le même code que dans le guide)
Error [GLOBAL_COMMAND_PERMISSIONS]: Permissions for global commands may only be fetched or modified by providing a GuildResolvable or from a guild's application command manager.
donc ce que je comprends c'est que seul les commandes d'une guild peuvent avoir des permissions de set, ou alors pour les commandes globales à travers une guild
toujours est il que c'est vraiment complexe à comprendre et qu'au niveau des permissions d'une commande c'est peu documenté
Tu essaies de set des permissions sur des commandes globales peut-être ?
Tu peux update les permissions pour une commande globale mais tu devras préciser à chaque fois la guildId
C'est vrai que ce Tip peut porter à confusion
aah, mais du coup je le précise où ?
Oublie ce tip, fais comme indiqué ci-dessus
Ou :
client.application.commands.permissions.set({
guild: guildId,
command: commandId,
permissions: [...]
});```
je vois, merci beaucoup, mais je pense que je ne setterais pas de permissions pour les commandes globales car elles pourront de toute façon être utilisés en mp donc :/
mais merci !
Yo,
Comment je pourrais faire un nombre aléatoire entre 1 et 20 ?
random()
La fonction Math.random() renvoie un nombre flottant pseudo-aléatoire compris dans l'intervalle [0, 1[ (ce qui signifie que 0 est compris dans l'intervalle mais que 1 en est exclu) selon une distribution approximativement uniforme sur cet intervalle. Ce nombre peut ensuite être multiplié afin de couvrir un autre intervalle. La graine (seed) du g...
Mais comment je peux l'utiliser pour que cela me sorte une valeur entre 1 et 20 compris sans virgules soit 1, 2, 3, 4, 5, 6, 7, 8 ,9 , 10 ,11, 12, 13, 14 ,15 ,16 ,17 ,18, 19 ou 20
math.floor(math.random() * 20)
Bonjour
bonsoir
j'ai un problème avec ce code
Pouvez vous m'aider ?
( je suis encore en v12 )
Pour ta région ${region[message.guild.region]} @keen narwhal
${verifLevels[message.guild.verificationLevel]}
Pour ta vérification
@keen narwhalTest et tu me dis 🙂
Car il a envie d'avoir des noms personnalisés
tu peux pas juste faire region[message.guild.region]
je parlais de mettre cette valeur dans un string
Ba il décide après 🤷♀️
Il est possible de sortir le nom du fichier dans lequel on est dans un console log ?
genre si je suis dnas le fichier ping faire que ca me console.log('ping.js')
Tu peux utiliser le module path et utiliser __filename
Mais quel est le besoin ?
Pas compris
Bonjour !
Je débute avec JQuery et je m'exerce en ce moment sur la vérification des champs d'un formulaire.
Il me reste juste à ajouter un message d'erreur à côté du champ lorsqu'on en ressort, mais je sèche sur ce point.
Je vous partage mon code : https://jsfiddle.net/tev5m43L/
Si quelqu'un à des solutions, je suis toute ouïe !
Merci par avance.
Test your JavaScript, CSS, HTML or CoffeeScript online with JSFiddle code editor.
je viens de tester le formulaire, les vérifications ont l'air de fonctionner 🤔 tu veux savoir quoi exactement
@slim anvil je veux ajouter un message d’erreur lorsque l’on sort d’un champ sans l’avoir rempli. Par exemple je ne rempli pas le champ nom, et je clique sur le champ prenom , un message d’erreur doit apparaître sur le premier champ nom
tu dois rajouter un check via un onBlur
Salut j'ai un soucis d'interpréteur :
J'ai installé correctement nodejs, avec l'option "Add to PATH", mais mon Visual Studio Code me renvoie constamment cette erreur lorsque j'essaye de lancer le code
J'ai même ajouté manuellement le chemin des fichiers nodejs au path, mais rien n'y fait
Quelqu'un aurait-il la solution ?
Quelle erreur ?
J'allais envoyer l'erreur, mais en fait le fait de relancer mon PC (l'erreur était d'hier soir) semble avoir réglé le soucis :)
A mon avis, t'avais pas relancé ton CMD
Du coup ça prenait pas en compte ton nouveau PATH
Mon quoi ?
Je l'avais fermé, alors peut-être pas entièrement
yep
sa ne fonctione pas
et la même pour les verif
Alors
Il faut que tu mettes ton ${} entre des quotes si tu utilises cette feature
Là déjà, tu en as pas
comment sa
Regarde ta ligne 53
Tu as très bien fait le truc
Regarde la différence avec la ligne 54
je switch avec mon tel j'ai un imprevu 2s
Ok
L'imprévu dure plus longtemps je te tien au courant
bonjour à tous, je voudrais faire une commande qui me permettrait de de récupérer des adresses mails. je ne sais pas si le bot peut les récupérer. Ou sinon que les personnes puissent faire !mail et puis écrive leurs adresses mails et que tout soit stocker quelque part
pour un bot discord en js
Hello !
Tu peux bien évidemment récupérer l'adresse email d'un compte Discord mais il faut que ça soit autorisé par l'utilisateur
Il faut utiliser l'API Discord et récupérer un object user
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
merci beaucoup
@keen narwhal good ou pas ?
j'ai un petit problème
C'est quoi aliases ?
c'est un 2 eme nom pour la commands
Et bien la propriété n'est pas définie sur ton client
Pour ça que tu as cette erreur
problème undefined
@mystic bisonRégler ?
oui merci
Ok
bonsoir, je voudrais faire un truc avec mon code mais j'y arrive pas.
en gros je voudrais que la date de la création du serveur sois en mode FR comme sa :
le code qui me permet de faire sa ( cmd userinfo )
Je voudrais faire la même mais, avec la date de création du serveur
le code en question :
( cmd serveur info )
car la sa me donne sa
je travaille avec moment
Créé ta date en faisant : moment(taDate)
Et ensuite tu fais ton format() à partir de là
Comme là quoi
je l'ai fait, mais sa ne fonctionne pas
Rappelle toi, " Ça ne fonctionne pas " ça nous aide pas
`${message.guild.createdAt.toString().format("dddd Do MMMM YYYY, à HH:mm")},\n(${checkDays(message.guild.createdAt)})```
j'ai fait sa
Donc tu as pas fait ce que j'ai dit là
Bas si
Je vois pas ton moment() dans ton code là
Pourquoi tu refais pas comme là ?
Ah ba good alors @keen narwhal
Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which
is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: function toString() { [native code] }, _f: undefined, _strict: undefined, _locale: [object Object]
j'ai jamais eu cette erreur
Montre ce que tu as mis mdrr
${moment(message.guild.createdAt.toString)().substr(0, 15)},\n(${checkDays(message.guild.createdAt)})```
Enlève ton toString
Sa sert à quoi ton .substr ? 🤔
Refais comme tu m'as montré la première fois, c'était parfait
Je comprends pas pourquoi tu cherches à faire différemment
Cette partit du code de l'open source de chepa qui ( j'ai copier sans comprendre, une faute je sais )
-__-
😂
Essaie de le refaire seul sans nous et sans copier ..
Ligne 59
ha, pourquoi donc ?
yep
x)
Ton code?
On a le any qui cache
.addField("Crée le", `${moment(message.guild.createdAt).format("dddd Do MMMM YYYY, à HH:mm")},\n(${checkDays(message.guild.createdAt)})`, true)```
yep tien
C'est déjà mieux oui
Et c'est pas createdTimestamp à la place de createdAt par hasard 🤔
Hé bien merci Mrs
sa fonctionne comme sa, y'a une diférance ?
🤷♀️
d'accord
bonsoir à tous, j'ai besoin de votre aide, car je dois faire un commande pour un bot discord en javascript. Le but de la commande, c'est simple pêrmettre à l'utilisateur de données son adresse mail, pour l'inscrire à une sorte de "newsletter" et d'inscrire son adresse mail dans un base de données. commande type : !mail melvil@discord.com et pour faire ça j'ai besoin de votre aide, je ne sais pas par où commencer
Va falloir apprendre à créer un bot discord sur ce coups @mystic bison
je sais je suis en train de le codé
j'ai tout finis sauf ça et je sais pas du tout comment faire.
Tu peux pas
Faut passer par l'API Discord et faire en sorte que ton utilisateut se connecte avec OAuth2
pourquoi ?
Ba nan @ashen rapids 🤔
Et qui accepte de donner accès à ses informations personnelles
c'est la personne elle même qui va les rentrés
désolé j'ai des petits probleme a l'écrit (dys tu connais)
Dans ce cas faut que tu ais une base de données pour sauvegarder ta newsletter
Les adresses*
Oula j'ai du mal aussi ce soir 😭
comment je peux faire ?
Tu sais ce qu'est une base de données et comment en utiliser une ?
oui et non, j'utilise mongodb mais j'ai ÉNORMÉMENT de problèmes
j'aimerais bien en changée
Dans ce cas là, t'as tout ton bot à refaire à ce que je vois
Mysql sinon
c'est pas grave, tu en a une a me conseiller
Perso j'utilise MongoDb sur mon bot, pour la facilité, et j'ai jamais eu de soucis
Oui sinon t'as MySQL
SQLite
Ou une base de données basique dans un fichier
(pour de la petite data)
tu pourrais m'aider alors peut-être. j'ai du mal sur la connexion
Oui pas se soucis, poste ton problème 👍
Refais la manip pour avoir l'erreur du coup
Il semble se connecter sur une database externe
À mon avis, elle existe plus
d'accord
(mais enlève ce screen, c'est le genre de données sensibles à ne pas mettre)
d'accord merci
demain est ce que t'aurais un créneau horaire ou même mercredi pour m'aider a setup tout ça svp ?
Tu me ping ici et je serai surement là 👍
d'accord merci a demain
rebonsoir x)
je stock les id des staff du bot dans un .json
dans l'userinfo je voudrais faire en sorte que les id soit reconue par le bot et qu'il mettent un truc sur le ui voici le code
enfaite, je sais pas quoi mettre apres le ==
Tu peut les affichés avec leur rôles @keen narwhal au lieu de les stockers
je préfere faire comme sa ^^'
Déjà mieux faire ton else pour commencer 
Comment sa ?
CHUT mdr
Pk tu t'appelles comme ça aussi ? MDRR
C'est gentil merci 🥲
okay
C’est juste que sois tu fais du inline sois pas là tu mélanges les 2 🥲
x)
et ducoup, c'est pas comme sa qu'on l'invoque si ?
le fichier.json
Si
fais un console Log de staff
Ha je pensais pas que sa allait marcher donc j'ai pas même pas tester
Voir comment tu stock tout
Car j’ai du mal à croire que ta condition user.id === staff doit juste
Soit*
if () // CODE
else // CODE
Comme ça l'autre façon ? @slim anvil
Oui c’est ça mais mélanger les 2 c’est bizarre à la lecture
Yep
comment sa
perso j'ai apris comme sa x)
Juste après l’avoir require
C'est un array
Tu peux utiliser includes() pour check si ton userId se trouve dans l'array staffId
T’écris plus vite que moi salopard mais sur tel c’est long
mais oui c’est exactement ça
Mdrrr
Vous pouvez m'expliquer un peux plus ? ^^
Je suis entrain d'apprendre la Doc x) donc des fois je galère un peux
C'est pas la doc que tu dois apprendre là mais le JS 😏
Mais ducoup le code il sera composé..euu
Regarde comment utiliser includes() et fais des tests
N'hésite pas non plus à utiliser console.log() pour voir si t'as le résultat attendu et t'aider
Ba essaye encore 🙂
C’est ton tableau qui includes
Comment sa ?
ho
Là tu fais mon user id contient mon tableau
Alors que non c’est mon tableau contient le user.id
donc c'est bon je doit juste modifier qu'elle que chose
😉
mais quoi x)
Modifie, tu es proche 👍
snif
Pas ça mdr
;/
je vois pas de qu'elle tableau tu parler
Remonte et tu verras 😱
@keen narwhal
je veux bien comprendre
mais se que je comprend pas
se comment modifier se fameux tableau
-__-
jsuis naze a ce stade
Mdr
vous pouvez m'expliquer svp
tu dois faire alors staff.staffID.includes(xxxx)
c'est quoi les xxxx
si
Donc t'es censé savoir comment l'appliquer à ce que tu souhaites faire
qui est staffID
je vais pas tout écrire non plus
le tableau en gros
Mais non staffID tu t’en sers déjà avant
Tu vas pas regarder que ton tableau contient le tableau
si ?
nan
Tu veux regarder quoi ?
Oui mais ça non c’est du fix, mais ton params.user.id
C’est ça que tu veux checker qui soit bien dans ton tableau
oui
Bon là je peux pas + t’aider
C’est juste du code de base sinon je vais juste te le faire
A ton avis de manière non code, ta condition elle veut dire quoi ?
Traduis là moi en langue française
La le code la
ben je demande au bot de chercher dans un fichier si il vois qu'un message est l'auteur d'un id qui est dans se fameux fichier si c'est le cas il met "support" sur l'user infp
info*
Non je te demande pas ce que tu veux que ça fasse
ha
Mais ce que tu as écris dans ton if
ben il detecte l'id du message, si il le vois dans le tableau il met sur l'interface de l'ui 'support'
Non là tu as pas écris ça
Mais :
si l’id du membre est égale au fait que cet soit dans le tableau
Le includes te renvoie true ou false
Donc si le member.id === true
tu dois juste faire un includes pas besoin du truc avant
En gros:
Si j'ai bien compris la discussion d'avant (j'ai pas tout lu)
Le .includes te return une boolean (true ou false) si la valeur est bien stockée dans ton Array donc tu n'as pas besoin de ce qu'il y a avant
non d'ésoler
Pas besoin du ===
si j'enléve sa y'a des erreur
j'ai mis des id dans un json
Sous forme d'array ou d'object ?
je souhaite que si la personne qui fait la cmd ui et que l'id du mec et dans le json il mete un truc dans le ui
en fros
gros
Montre ton code actuellement
Je sens que tu as juste enlevé le === sans virer le truc avant
Mais ta condition elle veut rien dire déjà
A mon avis si y a une erreur c'est ça
Toi tu veux savoir si le staff fait partie de ta table en json
oui max c’est ce que j’essaye de lui faire comprendre
Yep c'est ça
Mais bon
Ici :
if(member.user.id staff.staffID.includes(member.user.id)){
Que veut dire pour toi cette condition ?
if (staff.staffID.includes(member.user.id))
console.log("Le membre est un staff");
else
console.log("Le membre n'est pas staff");
ouais mais faut pas lui écrire c’est ça le truc
Il apprend rien en faisant ça
c’est dommage
Fallait plutôt lui expliquer j'penses
Essaye de comprendre le code que j'ai envoyé
on a rien inverse
Et de voir la différence avec ton code
On a juste utilisé le includes comme il faut :/
Essayes aussi de voir avec la doc directement : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
c'est quoi cette doc ?
On va dire la doc pour le js
Mais y a pas que ça
Mais là on va juste s'en servir pour le js
Et donc là c'est ça toi que tu utilises
d'accord je le connaisai pas
la
Merci pour tous en tout cas, je vais essayer de comprendre le code demain
Merci, @boreal edge@lone flax@slim anvil@dire latch
Bonne soirée à vous
Dr @keen narwhal
Falut, falut !
J’ai un p’tit soucis : je bosse sur une application de vérification des QRCodes de pass sanitaire.
J’ai donc fait mon p’tit script qui check si le pass est valide, le script fonctionne parfaitement si je le lance avec Node.
Par contre, dès que je l’add à mon application React, pfiou ! avalanche d’erreurs !
La première : ReferenceError : variable TextDecoder is not defined.
La deuxième, pareil, mais pour Buffer.
J’ai donc installé les modules buffer et text-encoding.
Mais ça n’a pas résolu le problème, au contraire, d’autres erreurs sont apparues, disant que les données qui sont sensées être passées retournaient "undefined".
Quelqu’un aurait déjà eu ce problème ou saurait comment le résoudre ?
De mémoire, react est comme vue c'est fait pour faire du js vanilla et pas du node. Tu peut utiliser electron JS pour faire de l'IPC entre ton browser et ton nodejs
Ce qui devrait possiblement régler ton problème
C’est pour une application mobile
En React Native
Après recherche, tu as raison, il faut passer par un module tiers
J’ai trouvé ça : https://www.npmjs.com/package/nodejs-mobile-react-native
J’essaierai tout à l’heure, je vous donnerai le fin mot de l’histoire ahah
Au final, là n'était pas la réponse.
Parce que, je ne l'ai précisé, mais j'utilise Expo, et non simplement React-Native. Donc on utilise bien NodeJS
Je suis complètement bloqué...
React Native c'est du front
Donc si tu check du QR Code, à mon avis t'as forcément besoin d'un back derrière
Sinon n'importe qui pourrait bypass en decompilant l'application
Bah oui. Justement, c’est ce que je vous dis, j’utilise Expo, qui fonctionne sur NodeJS
??
Expo c'est un framework
C'est quelque chose qui te faiclite le dev React Native
En aucun cas c'est un back
Non, mais NodeJS, oui
Oui donc faut que tu te fasses un back en nodejs
Oui ok et du coup ?
Bah… un back en NodeJS est lancé par défaut, là n’est pas le problème
Le problème c’est que je ne sais pas comment avoir accès aux variables Buffer et TextDecoder
Du nodejs n'est pas forcément du back. Enfin back entre grosse guillemet mais t'as compris
Expo te permet pas d'avoir un backend
Que utilises tu pour ton code de base qui check le QR ?
C'est un module que t'as trouvé sur npm ?
Le module expo pour cet usage
Ouais
Non mais pour scan les qr code et check s'ils sont bons
Aaah, nan, c’est du fait maison
Et j’utilise les modules base45, pako et cbor pour déchiffrer et extraire la chaîne du QR Code
Faudrait qu'on puisse voir la partie du code qui ne va pas
Justement, ce que je vous dit c’est que le code fonctionne si je le lance hors du projet Expo.
Mais dès que je le lance dans mon app, Expo me retourne les variables Buffet et TextDecoder comme non définies
Oui mais du coup peut-on voir le code ?
combien dur le temps de configuration et de connection pour mongodb @ashen rapids environ
Rapidement si t'en as déjà une
ok 15 min c'est bon ?
Ouii
je la kill pour un refaire une nouvelle pour partir sur des bases seine ?
A toi de voir pour ça
ok, tu pourrais vocal ?
Non, je suis au taff
Ha oue ok tu paies une bdd as a service
?
Je veux dire que tu paies un service pour avoir ta bdd dans le cloud
non, j'ai l'option gratuite
mais sinon si je peux le faire en local cela me va très bien
C'est comme tu préfères ça
L'option gratuite c'est plutôt pour le dev
Mais tu pux utiliser ça si tu préfères
comment je fais pour le faire un local, je dois passé par d'autre appli, ou je créer juste un dossier avec un fichier dedans ?
Tu peux garder celle de MongoDb atlas pour le dev
Si tu installes une base en local, tu pourras pas l'utiliser en prod
d'accord, car moi je veux pouvoir lire le fichier donc je suppose que mongoDb sera la meilleur option, du coup a partir du screen au-dessus je fais comment pour le connecter ?
Tu dois avoir un lien de connection quelque part
Que tu places dans ton code
A l'endroit que tu m'avais montré l'autre fois
oui en haut
En haut ?
A partir de la je choisie quoi ?
Tu suis les différentes étapes
La première
Si t'as déjà mongoose d'installé sur ton bot, pas besoin de l'installer sur ton windows
A moins que tu souhaites t'y connecter depuis un client Windows
Path c'est une variable d'environnement
faire quand le terminal de visual studio code et faire nmp install moongoose csa fonctione
Ca permet de localiser tes exécutables et de pouvoir les utiliser facilement (en gros)
Une fois que t'as mongoose d'installé sur ton bot, ce qui devrait déjà être fait, t'as plus qu'à mettre ta nouvelle URL
ok
et après le lien qui est en bas je le colle et je n'ai plus rien a faire ?
et juste je le copie colle dans mon config.json ?
Oui, pour init la connection
Yep ! Je l’envoie dans la soiree. Je n’ai pas mon PC sous le coude
@ashen rapids, voici :
module.exports = {
decodeData: function (data) {
const base45 = require('base45');
const pako = require('pako');
const cbor = require('cbor');
const passBody = data.substr(4);
const decodedData = base45.decode(passBody);
const output = pako.inflate(decodedData);
const results = cbor.decodeAllSync(output);
[headers1, headers2, cbor_data, signature] = results[0].value;
const passData = cbor.decodeAllSync(cbor_data);
return passData[0].get(-260).get(1);
}
}
Pourquoi fermes-tu chaînes de caractères en plein milieu ?
Enlève le guillemet qui précède les deux tirets
je ne sais pas j'ai copier coller le code que me donne mongo
Essaie ça
Oui place correctement les guillemets et c'est bon
A quelle ligne se situe l'erreur ?
Elle se situe dans le module base45 lorsqu'il fait appelle à Buffer, dans Cbor lorsqu'il fait appel à TextDecoder, etc
Ok je vois, donc erreur propre au module
Non mais cherche pas, c'est un package nodejs
Mais non !
C'est seulement une fois que je mets le script dans l'application Expo que le script le ne fonctionne plus
Mais je sais bien... mais cela n'a rien à voir avec le problème que je vous pose
Oui car tu as testé sur une application nodejs directement ?
Oui
Calypso a raison
Et là ça fonctionne
Mais encore ?
React Native c'est pas du nodejs 🤔
Expo te run ton application react mais ce n’est pas du nodejs
C’est du client
Donc forcément ce package fonctionnera pas
Si tu as testés avec une app nodejs oui ça fonctionnera car c’est fait pour
dans ce cas là calypso a raison sur le fait d’avoir une API en nodejs
Ah okay, pardon @ashen rapids. Je n'avais pas compris ta réponse comme ça 😅
Je pensais que tu disais que le soucis venait du package.
Et ton app react fait appel à ton api
Et est-ce que vous en connaîtriez ?
ouais mais calypso c’est un noob aussi il explique mal 
😂
Ue
De quoi
Cependant t'as des librairies d'encodage pour JavaScript
Une API qui permettrait de lancer ce script dans l'application ?
Bah tu peux faire ta propre api ou oui utiliser un package client
doit y en avoir c’est sur
t’en as même peut être des fait exprès pour react
Le truc c'est que l'app doit pouvoir fonctionner hors-ligne. Donc un package m'arrangerait
C’est bien un qr code reader que tu cherches ?
Bah tu peux pas 🤔
Si
Y'avait un package qui le faisait mais le maintener a arrêté le développement. Donc il n'est plus utilisable
D'exécuter ce code.
Généralement quand tu dois utiliser NodeJS, c'est pour faire des choses de backend. Donc faire des choses de backend dans un front, c'est pas toujours une solution viable
C'était quoi le package ?
Le truc, c'est que pour déchiffer les données du QRCode des pass sanitaires, il n'y a que le moyen utilisé dans le code ci-dessus
C'est un code que tu as fait toi ?
Comment tu sais que c'est le seul code possible ? J'ai jamais touché au pass sanitaire donc j'en sais rien
Oui donc tu dois faire ces verifs dans du back. T'imagine si on faisait directement les verifs dans le front ?
Niveau sécurité c'est pas ouf
Parce qu'il faut forcément déchiffrer avec un module qui gère base45, qu'il faut forcément l'extraire avec une librairie type ZLib et qu'il faut le décoder avec Cbor
Tu peux envoyer le lien du code public ?
C'est la version Android, mais c'est grosso modo pareil sur la version iOS
Pareillement, le même système est utilisé par CovidPass (le site pour utiliser son pass sanitaire dans Apple Wallets)
Et, a priori, il n'y a pas d'autres moyens possibles
Yeah ahah
Mais si jamais quelqu'un trouve la solution à mon soucis, ce serait cool x)
J'utiliserai bien quelque chose d'autre, mais pour les app mobiles, je ne connais que React avec Expo
Ils ont pas une sorte de page web pour les développeurs ?
Non mais me soucis ne vient ni de react ni de expo t’inquiète po
mais ouais la vérification côté front c’est pas dingue mais bon
Bah non ! Il vient de moi 🙃
TAC
Bah non, qu'as-tu cru x)
À la base c'est privé
Même le code source que je t'ai envoyé n'est pas complet x)
Vu que c'est TAC, le soucis vient sûrement d'eux comme d'hab 😏
Mais à ce que je vois, t'as transformé un code Java en nodejs
C'est juste ça qui me bloque
Nan, nan
Regarde lui : https://www.npmjs.com/package/base45-js
Mais
Par contre j’ai une question, tu cherches juste à faire quoi avec le QR code exactement
Pourquoi récupérer le qrcode des pass sanitaire ? MDRR
Juste récupérer les infos de celui ci ?
Le script js envoyé au-dessus fonctionne quand je le lance avec NodeJS. Je veux l'utiliser dans mon app React
Non, les déchiffrer.
C'est ce que fais le script que je vous ai envoyé
Perso je l'utilise pour Fake mon pass et boire des binouzes à volonté 😎
Tu peux pas ahah
Oui mais les déchiffrer c’est pour récupérer quoi dedans
Généralement c’est un lien ou autre
C'est transformer la string du QRCode en JSON avec les données lisibles
Je pense que c'est pas légal de faire ça 🤔
bah ouais
Mais du coup le package que je t’ai envoyé il gère déjà tout ça
Non x)
Lui il me sort la string du code
Moi mon script la déchiffre pour en sortir le JSON lisible
Essayez de lire le QRCode de votre pass. vous aurez une suite de chiffres de lettres sans queue ni tête
Mon script déchiffre ça vers un JSON avec des donnnées lisibles
Tu peut prouver que c'est légal de faire ça 🤔
Désolé j'ai vraiment du mal à comprendre mais
Le repo que t'as envoyé, c'est du java
Toi tu as utilisé ce repo pour le transformer en nodejs
Jusqu'à là j'ai raison ?
Du kotlin plutôt*
Le truc c’est que ouais te faut un package pour read du base45 mais à part celui que t’as envoyé j’en ai pas trouvé d’autre
Donc à part passer par une api, même local à ton app react je ne vois pas
Lui est pas plus adapté ? => https://www.npmjs.com/package/base45-js
Il serait pour JS apparemment
Prouve-moi que ce n’est pas légal de flasher un QRCode
C’était à titre d’exemple, ce repo
Toi tu veut récupérer des infos et déchiffrer, c'est pas pareil mdr
Justement, le truc c’est qu’il faudrait que tout puisse être fait sur l’appareil. Pour fonctionner dans un environnement sans WiFi
Euh… c’est pour vérifier la validité du pass. Donc oui, en quoi c’est illégal ?
Essaye de voir déjà le plugin de calypso
Une appli le fait déjà ça
Il a l’air valide côté client
Déjà fait. Mais ça ne change rien
Je pense pas que tu as le droit de le faire toi même 🤔
Oui je suis d'accord mais du coup tu t'ais inspiré de ce repo non ? Pour faire ça en nodejs
C'est ça m'a question
TAC Verif ne fonctionne pas hors-ligne
Nan. Je me suis inspiré du repo de CovidPass
Mais c’est le même fonctionnement partout.
Et donc ?
Bien sûr que si. Encore heureux
Je viens de tester sur mon appli React avec le base45-js et j'ai pas d'erreur
Et donc… il faut une application qui fonctionne hors-ligne…
Je l’ai dit juste au-dessus…
Je ne pense pas qu'une personne random à le droit de vérifier des pass sans raison 🤷♀️
Wut ! Je réessaierai alors
Mais… d’où tu vois que c’est sans raison ?
Cette app est pour ma bibliothèque où on doit scanner les pass sanitaires de clients pour les laisser entrer…
Ba tu passes par leur appli 🤔
Hein ?
Je ne comprends pas trop, je crois pas que tu as le droit de copier leur appli mdr
En effet ça me semble bizarre que TAC propose aucune Doc pour les devs qui veulent vérif les pass
Je ne copie l’application de personne
C’est pourtant le cas
Et c’est pas nouveau que le gouvernement et l’open data c’est pas la folle histoire d’amour
Car c'est peut être interdit 🤷♀️
Des milliers d'infrastructures doivent donc s'adapter sans documentation ?
Comment ils ont réussi à s'adapter sans documentation ? Je trouve ça étonnant
Pas de soucis !
On peut scan le QR code sur l'appli officielle ?
Pour le pass, ils utilisent leur propre bdd, donc je ne pense pas qu'il te donne accès à ça mdr
Donc bon
Je suis curieux de savoir par quelle application ils fonctionnent et comment y accéder
Doit bien y avoir l'info quelque part
Je ne pense pas que sa devient légal sur ce coups mdr
Une appli officiel oui
Ils ont une appli exprès qui est fournie juste pour eux ?
Pas que pour eux
Oue ok ça se tient
Pour tout les magasins
Ha j'ai !
Ils doivent utiliser ça peut-être
Yes
Oui donc je suis
Je pense que s'il y a pas de Doc, c'est interdit de faire autrement mais à vérifier
Pas parce que y a pas de doc que c'est interdit 🤔
Ba si
Bah non?
Tu n'as pas le droit de copier leur appli, de plus, tu ne vas pas avoir accès à leur bdd
Non bien-sûr
De plus, si tu y as accès, tu pourrais te mettre le pass et tout donc bon, pas très légal
Hein
Mais ya aucune info à ce niveau
par défaut @spring dock si une api n'est pas publiquement documentée tu dois considérer qu'elle est probablement pas publique
je pense
rien de légal dans ce que je dis je sais pas si c'est réellement interdit hein mais c'est un conseil que je donne
Je pense que s'il y a pas de Doc, c'est interdit
je répondais juste à ça qui laissait penser que pour lui dans n'importe quel cas, une api sans documentation publique était forcément interdite d'utilisation
et j'insiste sur le "interdite"
avoir accès à l'api veut pas dire que tu peux tout faire dessus cela dit dans tous les cas
je veux dire steam a une api tu peux pas t'ajouter pour autant tous les jeux du store
Oui c'est vrai
ouais je pense pas qu'il y ait une législation à ce niveau
ça doit être possible de se renseigner pour ce cas précis mais bon perso j'utiliserais juste l'application spécifique qui sert à vérifier les codes QR
comme ça aucun risque
Bien sûr que non. Il n’y a aucune base de données. Les pass sanitaires ne sont stockés nul part. Encore heureux.
Mais il n’y a aucune API avec TAC…
Renseignez-vous un peu, avant…
Bah justement… tout est dans le QR Code !
On y récupère le date de vaccination, on check le vaccin et on vérifie que la pass ait plus de 7 jours si une vaccination avec Cominarty (Pfizer), plus de 28 si c’est avec Jansen, etc
Je pense que tu ferais mieux de te renseigner toi mdrr
Bah vas-y… je t’écoute…
Qu’est-ce que tu as trouvé que mes heures à consulter les papiers officiels sur TAC ne m’ont pas appris ?
j'assume totalement répondre sans aucun renseignement (je l'ai dit juste après)
ça me paraît effectivement bizarre que la vérification se fasse via une base de données, cela dit je pense qu'il existe effectivement une application (sans doute pas tous anti covid ou un autre quelconque outil disponible au public) qui peut réaliser des recherches dans une base de données qui doit n'être accessible qu'au personnel soignant ou l'assurance maladie, contrairement à ce que tu dis dans ton message juste au-dessus
rien que le si-dep pour les tests semble attester cette théorie
Mais non, il n’y a aucune base de données des pass sanitaires !
Toute vérification se fait grâce aux QRCodes
T’imagine si n’importe qui pouvait désactiver le pass sanitaire d’un autre en enlevant son enregistrement dans la DB ?
pas des pass sanitaires, mais pour la nécessité de remboursement des vaccins il y a au moins une liste pour l'assurance maladie
Ah, oui, ça oui
je dis pas que n'importe qui y a accès
Mais je parle ici de la vérification de la validité de pass sanitaire avec QRCode
ouais effectivement
Si je suis ton raisonnement, bien sûr qu’accéder à ces renseignants est illégal
Je ne m’y risquerai pas, déjà pr éthique
Ensuite parce que ça doit juste être relou à mettre en place x)
ça je me doute que la vérification se fait pas via bdd
au delà du problème éthique, si toutefois il y a une panne des serveurs ou une avarie d'accès à un internet du côté de l'utilisateur ça devient inutilisable (ce qui me semble peu probable)
Oui, ça c’est sûr
bref évidemment ça ça fait aucun doute
mais voilà je préférais prévenir juste au cas où sur le sujet des apis non documentées
Mais ce n’est justement pas une API 😶
Sa se fais via bdd 100%
t'es borné toi
Tu comprends rien toi, à croire que tu as raison -__-
Toi renseigne toi, tu as totalement tort
Scan ton QRCode, fais des recherches, enfin !
Mais prouve-le moi !
yep mais sans rapport avec les pass c'est un "avertissement" de base que je faisais tkt
D’où tiens-tu tes informations ?
J'ai pas de QRCODE, sorry man
Aaah, ceci explique cela ahah
Désolé de t’avoir mêlé à ce débat alors
Donc c’est antivax qui vient me parler v
De mieux en mieux !
Mdrr
pas la peine d'aller sur ce terrain
Donc ça parle sans avoir fait de recherches…
Donc je suis antivax car je me suis pas fais vacciné ?
Non, je m’arrêterai à cette seule remarque
Ta mentalité = 0
juste mcduck du point de vue technique c'est peu probable qu'un scan de ce type soit fait sur une api
Le "sorry man" et ton gratitude qui m’ont induit dans cette directement
Va ailleurs car tu as un comportement de gamin là
Et même, rien que regarder le code source de TAC Verif que j’ai envoyé plus haut écarte cette explication…
Ok
ma remarque tient pour tous les deux, pas la peine d'amener un débat sur le vaccin alors que le sujet c'est la méthode de vérification d'un qr code
Oula, j'ai rien dis de ça moi mdrr
nan, mais pas la peine de le provoquer derrière
Ba c'est un comportement de gamin, c'est pas de ma faute sur ce coups, qu'on sois pas vacciné, en quoi on est antivax, quesce qu'on s'en fout mdr
Mais bref
Bref, moi, tout ce que je dis, c’est que camper sur des positions sans avoir de recherches alors que le camp d’en face nous prouve par a+b qu’on a tort, c’est de la stupidité pure et dure
C’était mon dernier message sur le sujet
Je vous donnerai donc un retour sur la solution de Calypso demain, une fois que j’aurai pu la tester 👌
Et comme y’a que les cons qui ne changent pas d’avis, je voudrai m’excuser de l’allusion puérile, ça c’est sûr, à propos des antivax.
Mais tu l'avais pas déjà testé ?
C'est normal car c'est pour du JS