#javascript-typescript
1 messages · Page 7 of 1
ok ok pas de soucis
j'ai réussi avec un fetch et en séparant le fetch du send. Merci quand meme !
De rien !
petite erreur de callback mais je ne sais pas comment la résoudre sur le setInterval : setInterval(notes, 5000)
Callback must be a function. Received undefined
id c'esrt un obj non du coup depuis ta bdd json, ppourquoi tu fais pas juste client.users.cache.get(user_id) ?
type de notes ?
ça c'est bon j'ai réussi merci
normalement c'est une fonction mais ptet que je l'ai mal importé d'un autre fichier
du coup comment on import une fonction depuis un autre fichier ?
Bonjour, y aurait-il quelqu'un qui saurait comment je peux faire pour corriger cette erreur (qui se produira surement sur GUILDS) car même en cherchant sur google je ne trouve rien de compréhensible, Merci d'avance
Slt tu es sur discordjs 13 ou 14 ?
14 je crois
Tu peux essayer de cette manière : au début de mettre au début du code const { Client, Intents } = require('discord.js');
Et enlever le Discord. avant le client et avant les intents
Du coup Discord.Client deviendra Client et Discord.Intents.FLAGS.GUILD, deviendra Intents.FLAGS.GUILD, par exemple
Ha et dcp const Client devient const client
D'acc mercii, je vais essayer, merci beaucoup 😊
De rien 👍
comme ça du coup @shy sonnet ?
Oui il faut juste enlever Discord. Avant Intents
ah oui merci
Et dcp dans ton code tous les Client (genre Client.on) tu les remplace par client (client.on)
Sauf au début
ahh oui ok
Genre que client.on etc
donc new client aussi ?
Ha ça non
d'acc
À partir de Client.on(" ready "dcp maintenant client.on
Sinon tu peux essayer autrement que avec flags :
intents : ["GUILDS","GUILD_MESSAGES"]
d'acc merci beaucoup !
il me dis qu'il y a un problème et qu'il attend intents, ["GUILDS","GUILD_MESSAGES"]
sauf que avec la , il me dis Uncaught ReferenceError ReferenceError: intents is not defined
en entier ? (c'est pour faire une commande slash)
Juste la partie des intents
const client = new Client({
intents: [
intents, ["GUILDS","GUILD_MESSAGES"]
normalement y a que ça
Oui enft il ne doit pas y avoir intents dans la ligne en fait il faut remplacer le bout de code par :
intents : ["GUILDS","GUILD_MESSAGES"]
ahh ok pardon j'avais mal compris
intents : ["GUILDS","GUILD_MESSAGES"]
}) ```
d'acc, je vais essayer
Uncaught DiscordjsError RangeError [BitFieldInvalid]: Invalid bitfield flag or number: GUILDS. toujours une erreur...
🤯😭
Bon sinon utilise le générateur d'intents : https://discord-intents-calculator.vercel.app/
Et pour initialiser ton client :
intents : [ Lenombrequetuaseu ]
}) ```
d'acc mdrr merci 😂
Uncaught ReferenceError ReferenceError: SlashCommandBuilder is not defined 😭
Ha là y a un bon point : l'initialisation du client c'est bien passé 😅😭
Dcp là c'est au niveau de tes slashs commandes
oui mdrr
oe... mais je vois pas non plus comment faire...
Au début de ton code du as bien importé la fonction ?
euuhh jsp 😭
const { SlashCommandBuilder } = require '@discordjs/builders);
d'acc, mercii beaucoup pour l'aide !
j'execute le programme mais il se passe rien...
Ahh j'ai compris mon erreur, mon bet devient opérationnel cependant je peux pas exécuter la commande /clear...
Bah du coup mon bot dis qu'il est opérationnel
Mais je peux pas faire ma commande slash
j'ai pas fait d'erreur la dedans ? ```var data = new SlashCommandBuilder()
.setName("clear")
.setDescription("commande pour supprimer des messages")
.addIntegerOption(option =>
option.setName("number")
.setDescription("Nombre de messages à supprimer")
.setRequired(true)
)
client.on("ready", async () => {
//Client.application.commands.create(data);
console.log("pret au decollage !");
});
//Verifictation du nombre + clear des messages
client.on("interactionCreate", interaction => {
if(interaction.commandName === "clear"){
var number = interaction.options.getInteger("number");
if(number >= 1 && number <= 100){ //si : 1 <= nombre <= 100
interaction.channel.bulkDelete(number);
interaction.reply({content: + " messages ont correctement été supprimés", ephemeral: true});
}
else {
interaction.reply({content: "Le nombre de message supprimé doit être entre 1 et 100", ephemeral: true});
}
}
});```
Test et tu verras
bah j'ai testé mais j'arrive pas à faire ma commande shift
Ta commande shift ? 
nan
mais du coup jsp, p'tet que dans mon code y a un truc qui fait que ça marche pas, même si c'est pas '' décrété '' comme étant une erreur
Ok pas d'erreur et ducoup il se passe qoui quand tu fais la commande ?
J'ai absolument rien compris x)
bah j'ecrit /clear mais il se passe rien..
Il faut que tu fais / puis tu recherche ta commande
À la ligne Client.application.commands c'est client.application.commands dcp
oe mais ça marche pas non plus, je vais verifier
ah oui c'est vrai !
Ahh j'arrive à avoir ma commande, mais quand je l'exécute il me dit que l'application ne répond plus...
Alors là dcp c au niveau de la commande
Peux tu screenshot ce que ça a retourné en console ?
j'allais justement le faire
D'acc 👍
D'acc merci
toujours Uncaught TypeError TypeError: Cannot read properties of null (reading 'bulkDelete')...
Je vais manger et je pense qu'après j'arrêterai, je reprendrais demain soir, merci beaucoup @shy sonnet en tout cas pour toute l'aide apporté et le temps que t'y a passé !
De rien à +dcp 😁
@shy sonnet est ce que tu saurais comment je peux faire marcher mon truc ?
Re dcp tu peux essayer de remplacer interaction.channel.bulkDelete(number) par :
channel.bulkDelete(messages);
});
D'acc mercii
Er au début de ton code oublie pas d'importer node fetch : const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args)); et d'installer node fetch : npm i node-fetch
Ça renvoie quoi ?
Uncaught TypeError TypeError: Cannot read properties of null (reading 'messages')
Ha oui dsl je me suis emmêlé j'ai inversé enft 😅 :
interaction.channel.bulkDelete(number);
});
Mdrr tkt et mercii
Uncaught TypeError TypeError: Cannot read properties of null (reading 'messages') toujours...
Dsl mais je vois pas pourquoi ça met ça 🤯
😭
interaction.channel est null
Mais je fais comment dcp ?
Send ton code que je vois please
Sinon console log ton interaction et vérifie bien si tu as mis les intents on sait jamais
Voila le code en entier```const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));
const { SlashCommandBuilder } = require ('@discordjs/builders');
const { Client, Intents } = require('discord.js');
const Discord = require("discord.js");
const client = new Client({
intents : [3276796]
})
//Création de la commade slash /
var data = new SlashCommandBuilder()
.setName("clear")
.setDescription("commande pour supprimer des messages")
.addIntegerOption(option =>
option.setName("number")
.setDescription("Nombre de messages à supprimer")
.setRequired(true)
)
client.on("ready", async () => {
client.application.commands.create(data);
console.log("pret au decollage !");
});
//Verifictation du nombre + clear des messages
client.on("interactionCreate", interaction => {
if(interaction.commandName === "clear"){
var number = interaction.options.getInteger("number");
if(number >= 1 && number <= 100){ //si : 1 <= nombre <= 100
interaction.channel.messages.fetch({Limit: [15]}).then(message =>{
channel.bulkDelete(number);
});
interaction.reply({content: + " messages ont correctement été supprimés", ephemeral: true});
}
else {
interaction.reply({content: "Le nombre de message supprimé doit être entre 1 et 100", ephemeral: true});
}
}
});```
Pourquoi tu importe node-fetch?
.

d'acc merci
Ouais je sais pas pourquoi il t'a dit ça 
Essaye de faire ce que j'ai dis, je peux pas trop regarder sorry
d'acc
Essais de saisir les intents comme dans la documentation stp :
https://discordjs.guide/popular-topics/intents.html#enabling-intents
mais j'ai pas compris, faut que je change quoi dcp ?
Je pense que ça vient des intents oui
.
Ça
Mais Eno a raison je pense que ça vient de tes intents
Et pense aussi à cocher ceux sur le dev panel
En fait une interaction se trouve forcément dans un channel donc si channel est null c'est ton cache ne contient pas le channel en question
Uncaught ReferenceError ReferenceError: GatewayIntentBits is not defined
Il faut l'importer
Tu a bien fais npm i
Rien à voir
je comprends plus rien 😭
Bhe si il a pas installer Discord js
Ok
Si tu console.log interaction.channelId ça t'affiche quoi?
c'est quoi ? (désolé je suis nouveau...)
Pour ce que tu fais tu n'as pas besoin des intents du dev panel
Du moins pas pour l'instant
Oui mais vaut mieux lui dire pour qu'il évite de galérer dessus dans le futur
Essais d'entrer tes intents comme dans la documentation stp
https://discordjs.guide/popular-topics/intents.html#the-intents-bitfield
Tu as fait ça où ?
Pas dans la console bg
ça ?
d'acc
où ça ?
sinon si vraiment j'ai rien compris, un moment si vous avez du temps vous pourrez me montrer le programme
Avant le interaction.channel.messages
Je t'aiderais d'ici 1h si t'as pas eu d'aide
Je reviens
d'acc mercii
il me met rien...
fin il demarre le bot c'est tout
Il faut faire la commande maintenant
Uncaught TypeError TypeError: Cannot read properties of null (reading 'messages')
Le console.log...
c'est où...
Tu veux vraiment pas apprendre les bases du JavaScript avant d'essayer de construire quelque-chose?
aha aha aha, j'ai beau cherché je trouve pas
et si j'apprends les bases
je voulais juste essayer en même temps
breeff je vais arreter du coup x)
const { Client, GateawayIntentBits } = require("discord.js");
@queen oriole
Je vais essayer merci !
@queen oriolePas de soucis
Toujours pas...
Erreur ?
Uncaught TypeError TypeError: Cannot read properties of null (reading 'messages')
Comment on voit le console.log ?
interaction.channel.messages.fetch({Limit: [15]}).then(message =>{ je crois que c'est ça
(pour une commande de clear sur un bot discord)
Tu es en quel version de discord.js ?
14 normalement
Normalement, c'est interaction.channel.bulkDelete(number);
Je vais essayer mais ça me mettais la même erreur avec bulkdelete
Normalement non 🤔
number je dois mettre un nombre ou c'est censé se référer au nombre qui est mis par l'utilisateur ?
Sa dépends si tu l'as définis ou non
Nop normalement je l'ai pas défini
Met un nombre ducoups
Uncaught TypeError TypeError: Cannot read properties of null (reading 'bulkDelete') ça donne cette erreur
Ba là, jsp
Np
Bonsoir, quel est l'erreur ?
Ici
(Programme commande clear pour un bot discord)
envoie le code bg
ah c'est bon enft envoie rien
interaction.channel.bulkDelete(15).then(message => {
message.channel.bulkDelete(15).then(message => {
soit l'un soit l'autre il me semble
Okay merci beaucoup, je testerai ça !
Pas de soucis tu me redis 😉
Oep
Toujours pareil...
Yo! J'ai un petit soucis, j'ai un tableau de cellules, contenant des DateTime et des String, et je cherche à les trier
par ordre chronologique
j'ai donc une sortingMethod mais je trouve pas de méthodes capables de sort correctement
nn c'était plutôt pour avoir un tri chronologique par exemple d'une chaine "["bonjour", "<DateTime>", "<DateTime>", "hello"]
bonjour j'ai une erreur avec mon code
voici mon code
const Discord = require("discord.js");
const Canvas = require("canvas")
module.exports = (bot, member, message, ctx) => {
bot.channels.cache.get("1026173407299121162").send("**Bienvenue <@" + member.id + "> sur creator shop**")
var canvas = Canvas.createCanvas(1024, 500);
ctx = canvas.getContext("2d")
var background = Canvas.loadImage("./background.png")
ctx.drawImage(background, 0, 0, 1024, 500)
ctx.font = "42px Impact";
ctx.filleStyle = "#ffffff"
ctx.textAlign = "center"
ctx.fillText(member.user.tag.toUpperCase(), 512, 418)
var avatar = Canvas.loadImage(member.user.displayAvaterURL({
format: "png",
size: 1024
}));
ctx.drawImage(avatar, 393, 47, 238, 238)
var attachment = new Discord.MessageAttachment(canvas.toBuffer(), "welcome.png")
bot.channels.cache.get("1026173407299121162").send({files: [attachment]})
}
Pourais tu mettre quelque logs pour savoir a quelle moment surgit l'erreur
je fais comment console.log(err) ?
nop fais juste des console.log a certain endroit genre console.log("1")
histoire de voir ou il crash
ok
mais sa crash des qu'un persnnoe join
log quand meme s'il te plait et ensuite fais rejoindre une personne
const Discord = require("discord.js");
const Canvas = require("canvas")
module.exports = (bot, member, message, ctx) => {
bot.channels.cache.get("1026173407299121162").send("**Bienvenue <@" + member.id + "> sur creator shop**")
var canvas = Canvas.createCanvas(1024, 500);
console.log("1")
ctx = canvas.getContext("2d")
console.log("2")
var background = Canvas.loadImage("./background.png")
ctx.drawImage(background, 0, 0, 1024, 500)
console.log("3")
ctx.font = "42px Impact";
ctx.filleStyle = "#ffffff"
ctx.textAlign = "center"
ctx.fillText(member.user.tag.toUpperCase(), 512, 418)
var avatar = Canvas.loadImage(member.user.displayAvaterURL({
format: "png",
size: 1024
}));
ctx.drawImage(avatar, 393, 47, 238, 238)
var attachment = new Discord.MessageAttachment(canvas.toBuffer(), "welcome.png")
bot.channels.cache.get("1026173407299121162").send({files: [attachment]})
}```
sa crash a console.log 2
essaye un lien a la place de ton image dans loadImage, tu prend ta photo tu la fou sur discord et tu copie le lien
ok
ah
quoi?
et fou un await devant
D'ailleur var est déprécié
pour une varriable static il est mieux d'utiliser const
je met const partout ?
oui il te faut un async pour ton await
sur les "var" dynamique
ok
il va falloir prendre cette habitude car sur les dernieres version de JS ES6 var ca n'éxiste plus
je fais commet ?
et pour les dynamiques c'est let
ok
module.exports = (bot, member, message, ctx) => async {
attend
wait
j'suis con
wait ?
module.exports = async (bot, member, message, ctx) => {
pardon
ok tkt
Uncaught TypeError TypeError: member.user.displayAvaterURL is not a function
at module.exports (c:\Users\luluv\Desktop\botdiscord\bot v14 v1\Events\guildMemberAdd.js:20:49)
at processTicksAndRejections (internal/process/task_queues:96:5)
--- TickObject ---
deja sa evoie le message bienveue
ah
combien de log
3
la derniere que j'ai mit
ok nickel
ah bah
j'avais mit displayAvaterURL ou lieu de avatar
oui
j'allais le dire
je test
Uncaught TypeError TypeError: Image or Canvas expected
at module.exports (c:\Users\luluv\Desktop\botdiscord\bot v14 v1\Events\guildMemberAdd.js:26:9)
c'est quoi la ligne 26
Remplace ```ts
var avatar = Canvas.loadImage(member.user.displayAvaterURL({
format: "png",
size: 1024
}));
ctx.drawImage(avatar, 393, 47, 238, 238)
par :
```ts
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'png', size: 1024 }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
})
ok
Uncaught Error Error: Unsupported image type
On avance x)
nikel sa
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg', size: 1024 }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
})
essaye en jpg
ok
Uncaught Error Error: Unsupported image type
quesque j'aime pas canvas... essaye comme ca pas sur que ca change qqch
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'png' }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
})
toujour la meme
copie colle ton code actuel
ok
const Discord = require("discord.js");
const Canvas = require("canvas")
module.exports = async (bot, member, message, ctx) => {
bot.channels.cache.get("1026173407299121162").send("**Bienvenue <@" + member.id + "> sur creator shop**")
const canvas = Canvas.createCanvas(1024, 500);
console.log("1")
ctx = canvas.getContext("2d")
console.log("2")
const background = await Canvas.loadImage("https://cdn.discordapp.com/attachments/1026163129786310747/1026935213726650499/bone_taille_welcomle.png")
ctx.drawImage(background, 0, 0, 1024, 500)
console.log("3")
ctx.font = "42px Impact";
ctx.filleStyle = "#ffffff"
ctx.textAlign = "center"
ctx.fillText(member.user.tag.toUpperCase(), 512, 418)
console.log("4")
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'png' }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
})
const attachment = new Discord.MessageAttachment(canvas.toBuffer(), "welcome.png")
bot.channels.cache.get("1026173407299121162").send({files: [attachment]})
}```
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg' }))
.then(img => {
canvas.context.drawImage(img, 393, 47, 238, 238);
})
toujour la meme erreur
await Canvas.loadImage(member.user.displayAvatarURL({ format: 'jpg' }))
.then(img => {
ctx.drawImage(img, 393, 47, 238, 238);
})
toujour :(
Bah franchement aucune idée
ok merci quand meme
Salut j'ai eu une erreur car ma base de donnée n'arrive plus a se connecter au bot à cause de cette erreur
Quelqu'un serais m'aider s'ils vous plait ?
```js
triggerUncaughtException(err, true /* fromPromise */);
^
Error: self-signed certificate
at TLSSocket.onConnectSecure (node:_tls_wrap:1530:34)
at TLSSocket.emit (node:events:390:28)
at TLSSocket._finishInit (node:_tls_wrap:944:8)
at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:725:12) {
code: 'DEPTH_ZERO_SELF_SIGNED_CERT'
}
Node.js v17.3.0```
pourquoi utiliser var ?
C’est son code qui a var
Je lui es dis de changer
Car même si c’est fonctionnel c’est déprécié
ahh
réel
Bonsoir, j'ai un problème, dans client.user.setActivity, name est déprecié, je ne trouve pas d'alternative, pour le moment
c'est pour mettre le nom de l'activité par exemple :
regarde One piece
ça ne marche plus, avec moi
il est pas marqué comme déprécié pourtant
T'a version de djs ?
Bah écoute dans la doc il est pas marquer comme déprécié ignore ca pour le moment
je me demande vraiment où est le problème
client.user.setActivity("Une activité !");
@blissful hemlock
ça marche merci !
mais du coup, comment faire pour mettre autre que PLAYING ?
Pas de soucis
@blissful hemlockhttps://stackoverflow.com/questions/73049373/setpresence-activity-type-in-discord-js-v14-can-only-be-set-to-playing
Faut juste faire des recherches...
justement, j'ai déjà essayé ça et ça ne marche pas
Ba si 🤔
Savez-vous comment avec axios, via un intercepteur, intercepter le résultat et empêcher de faire ce que le ->then... ferait en temps normal ?
Empêcher l'exécution du then autrement dit
Et d'un éventuel catch aussi
Ou encore, comment bloquer une chaîne de promesses pour que les catch et then suivants ne s'exécutent pas ?
bonjour, cela fait 24h que je cherche une solution pour mon problème mais en vain. j'essaie de coder un bot discord en js V14. Je fais une requete à une api pour recuperer des valeurs.
Voici mon code : ```js
const { EmbedBuilder } = require('discord.js');
const Discord = require("discord.js")
const axios = require("axios");
const { XMLParser, XMLBuilder, XMLValidator } = require("fast-xml-parser");
mUrl1 = "http://ergast.com/api/f1/current/last/results/";
module.exports = {
name : 'resultat',
async run (bot, message) {
const result1 = (await axios.get(mUrl1)).data;
if (XMLValidator.validate(result1)) {
const parser = new XMLParser();
let jsonObj = parser.parse(result1);
//let drivers = jsonObj.MRData.DriverTable.Driver;
let country = jsonObj.MRData.RaceTable.Race;
console.log(country);
// let reply = drivers
// .map((driver) => `${driver.GivenName} ${driver.FamilyName}`)
// .join("\n");
let reply1 = country .map((race) => `${race.RaceName}`) .join("\n");
const exampleEmbed = new EmbedBuilder()
.setColor(0xEC0204)
.setTitle("Resultat")
.setAuthor({ name: 'Micheal Masi', iconURL: message.author.avatarURL(), url: 'https://logos-marques.com/wp-content/uploads/2022/07/F1-logo.png' })
.setDescription(' ')
.setThumbnail('https://www.financialexpress.com/wp-content/uploads/2017/11/new-f1-logo-feature.jpg?w=480')
.addFields(
{name: 'Classement :', value: reply1},
)
await message.reply({ embeds: [exampleEmbed] });
}
}
}```
j'obtient cette erreur là dans mon terminal : ```Commande Pilotes2022.js chargée avec succès !
Commande ping.js chargée avec succès !
Commande resultat.js chargée avec succès !
Commande test.js chargée avec succès !
Michael Masi#2852 est bien en ligne
{
RaceName: 'Singapore Grand Prix',
Circuit: {
CircuitName: 'Marina Bay Street Circuit',
Location: { Locality: 'Marina Bay', Country: 'Singapore' }
},
Date: '2022-10-02',
Time: '12:00:00Z',
ResultsList: {
Result: [
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object], [Object],
[Object], [Object]
]
}
}
node:events:505
throw er; // Unhandled 'error' event
^
TypeError: Cannot read properties of undefined (reading 'RaceName')
at Object.run (D:\Documents\Dev\Discord\Michael Masi\Commandes\resultat.js:34:72)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Emitted 'error' event on Client instance at:
at emitUnhandledRejectionOrErr (node:events:384:10)
at processTicksAndRejections (node:internal/process/task_queues:85:21)
PS D:\Documents\Dev\Discord\Michael Masi>```
je fais des requêtes à cette api qui est en xml et je la passe en json dans mon code
je vous remercie par avance
On est d'accord que la ligne 34 correspond à la ligne:
let reply1 = country .map((race) => `${race.RaceName}`) .join("\n");
oui
Dans ce cas essaye let reply1 = country.map((race) => race.RaceName).join("\n");
j'ai toujours la même erreur
pourtant dans un autre fichier cela fonctionne
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/schemas/mrd-1.5.xsl"?>
<MRData xmlns="http://ergast.com/mrd/1.5" series="f1" url="http://ergast.com/api/f1/current/last/results/" limit="30" offset="0" total="20">
<RaceTable season="2022" round="17" position="">
<Race season="2022" round="17" url="http://en.wikipedia.org/wiki/2022_Singapore_Grand_Prix">
<RaceName>Singapore Grand Prix</RaceName>
<Circuit circuitId="marina_bay" url="http://en.wikipedia.org/wiki/Marina_Bay_Street_Circuit">
<CircuitName>Marina Bay Street Circuit</CircuitName>
<Location lat="1.2914" long="103.864">
<Locality>Marina Bay</Locality>
<Country>Singapore</Country>
</Location>
</Circuit>```
déjà je comprend pas comment ton .map est reconnu alors que contry est un objet
const { EmbedBuilder } = require('discord.js');
const Discord = require("discord.js")
const axios = require("axios");
const { XMLParser, XMLBuilder, XMLValidator } = require("fast-xml-parser");
mUrl = "http://ergast.com/api/f1/2022/drivers";
module.exports = {
name : 'Pilotes2022',
async run (bot, message) {
const result = (await axios.get(mUrl)).data;
if (XMLValidator.validate(result)) {
const parser = new XMLParser();
let jsonObj = parser.parse(result);
let drivers = jsonObj.MRData.DriverTable.Driver;
let reply = drivers
.map((driver) => `${driver.GivenName} ${driver.FamilyName} #${driver.PermanentNumber}`)
.join("\n");
// inside a command, event listener, etc.
const exampleEmbed = new EmbedBuilder()
.setColor(0xEC0204)
.setTitle('Pilotes 2022 :')
.setAuthor({ name: 'Micheal Masi', iconURL: message.author.avatarURL(), url: 'https://logos-marques.com/wp-content/uploads/2022/07/F1-logo.png' })
.setDescription('Voici la liste des pilotes 2022 ')
.setThumbnail('https://www.financialexpress.com/wp-content/uploads/2017/11/new-f1-logo-feature.jpg?w=480')
.addFields(
{name: 'Pilotes :', value: reply},
)
await message.reply({ embeds: [exampleEmbed] });
}
}
}```
ici mon map fonctionne très bien
dans un embed
Tu peux completer les trucs que tu met dans ton embed de la commande resultat à la main
que je comprenne ce que tu veux prendre des données et afficher stp
dans ton cas il suffit alors de mettre 'Classement :', value: country.RaceName
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/schemas/mrd-1.5.xsl"?>
<MRData xmlns="http://ergast.com/mrd/1.5" series="f1" url="http://ergast.com/api/f1/current/last/results/" limit="30" offset="0" total="20">
<RaceTable season="2022" round="17" position="">
<Race season="2022" round="17" url="http://en.wikipedia.org/wiki/2022_Singapore_Grand_Prix">
<RaceName>Singapore Grand Prix</RaceName>
<Circuit circuitId="marina_bay" url="http://en.wikipedia.org/wiki/Marina_Bay_Street_Circuit">
<CircuitName>Marina Bay Street Circuit</CircuitName>
<Location lat="1.2914" long="103.864">
<Locality>Marina Bay</Locality>
<Country>Singapore</Country>
</Location>
</Circuit>```
voila mon api dans postman
country devrait s'appeler race btw pour que ce soit plus clair
Oui comme il sert pas
d'accord
Merci beaucoup c'est la première fois que j'utilise une api dans j'ai pas trop d'experience
une petite question, comment je fais pour récupérer les 3 premiers valeurs que me renvoie mon api ?
car l'api me renvoie plein de fois Driver
et je voudrai recuperer que les 3 premiers
If (driver.code != "perez") return ;
ouais mais le problème c'est que cette valeurs change a chaque fois
je comprends pas trop ce que tu me dis, mais en gros je voudrais recuperer les 3 premiers <Driver>
Bonsoir !
J'ai une erreur qui vient de survenir à l'instant alors qu'il y a encore 30 mins, touts fonctionnait encore très bien.
Voici l'erreur :
at C:\Users\Thomas\Desktop\bot discord\main.js:44:41
at Array.forEach (<anonymous>)
at C:\Users\Thomas\Desktop\bot discord\main.js:41:15
at C:\Users\Thomas\Desktop\bot discord\node_modules\recursive-readdir\index.js:88:20```
Le code :
L'erreur est bidon, je n'ai pas changé l'emplacement de mes fichiers ni rien d'autres, j'ai juste exécuter le code sur des commandes annexes et d'un coup ca n'a plus daigner fonctionner .. Je me tape donc un undefined comme si il ne trouvait pas mes commandes
Ça vient du contenu de ton dossier commands
Soit le dossier n'est pas le bon, soit un des fichiers js dans ce dossier n'a pas de propriété config
Euhhhh
Bah mon dossier s'appelle "commands"
Comment ça le fichier js qui n'a pas de config ?
Tu as lu le message d'erreur ?
const { EmbedBuilder } = require('discord.js');
const Discord = require("discord.js")
const axios = require("axios");
const { XMLParser, XMLBuilder, XMLValidator } = require("fast-xml-parser");
const { cp } = require('fs');
mUrl1 = "http://ergast.com/api/f1/current/last/results/";
module.exports = {
name : 'resultat',
async run (bot, message) {
const result1 = (await axios.get(mUrl1)).data;
if (XMLValidator.validate(result1)) {
const parser = new XMLParser();
let jsonObj = parser.parse(result1);
let drivers = jsonObj.MRData.RaceTable.Race.ResultsList.Result;
console.log(drivers)
let btw = jsonObj.MRData.RaceTable.Race;
// let reply = drivers
// .map((driver) => `${driver.GivenName} ${driver.FamilyName}`)
// .join("\n");
// inside a command, event listener, etc.
const exampleEmbed = new EmbedBuilder()
.setColor(0xEC0204)
.setTitle(`__Resultat du Grand prix de ${btw.Circuit.Location.Country}__`)
.setAuthor({ name: 'Micheal Masi', iconURL: message.author.avatarURL(), url: 'https://logos-marques.com/wp-content/uploads/2022/07/F1-logo.png' })
.setDescription(' ')
.setThumbnail('https://www.financialexpress.com/wp-content/uploads/2017/11/new-f1-logo-feature.jpg?w=480')
.addFields(
{name: '__Nom du grand prix :__', value: btw.RaceName},
{name: '__Podium :__', value: drivers.Driver},
)
await message.reply({ embeds: [exampleEmbed] });
}
}
}``` Me revoila j'ai une erreur encore dans mon code et j'arrive pas à la comprendre est ce que quelqu'un pourrait m'aider s'il vous plait je vous remercie par avance.
VOici l'erreur dans ma console
bonjour besoin de aide svp Error: Cannot find module 'node:events'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/root/bot/node_modules/discord.js/src/client/BaseClient.js:3:22)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
essaye de mettre une vraie description à ton embed
D’accord j’essaierai
Bonsoir
Est-ce-que quelqu'un a déjà créé des SelectMenu afin de permettre à un utilisateur de choisir ses rôles.
Depuis hier soir je travaille dessus, j'ai essayé différentes manières de le dev mais ca ne fonctionne pas.
Après je me demande si c'est réellement possible de le faire uniquement dans une commande en .js ou il faut impérativement le mess dans le handler ?
Donc voilà le code dans la commande de js
Et dans le handler il n'y a rien mais j'ai essayé avec un collector.on mais ca ne fonctionnait pas...... J'ai regardé la doc mais ca ne fonctionne vrailent pas pour cause de " collector n'existe pas " alors qu'il a bien été définie
<SelectMenuBuilder>.addOptions attend un tableau comme argument
Bonsoir ! Je me permet de vous écrire pour vous poser une question : je souhaite utiliser une BDD MySQL pour mon bot Discord mais quand je vais sur le tuto (trouvable ici : https://g-ca.fr/tutoriels/tutoriel/utilisation-mysql-discordjs) les images ne s'affichent pas ne permettant donc pas la compréhension complète du cours, auriez vous une solution ?
Oups faute d'inattention sorry
Ca ne marche toujours pas pour autant
Cannot read properties of undefined (reading '0')
Je connais la structure de tableau pourtant xd
Tu peux montrer la ligne qui génère cette erreur?
Bah j'ai réglé le soucis mais maintenant il ne se passe strictement rien quand je selectionne un role dans mon selectmenu
Le role n'est pas appliqué rien
Meme pas d'erreur
A cause de ma condition ligne 47 je pense
Souvent du aux embeds
Le tutoriels n'existent manifestement plus ;-;
Salut je fais un peut de ajax là et j'ai une erreur que je comprend pas
$('#submit').click(function() {
if($('#btnRadioNc1').is(':checked')){$.ajax({url: 'ajaxgetenounce.php', method: 'POST',data: { 'id': '2', "resp":"L'Allemagne "}})}
if('#btnRadioNc2').is(':checked')){$.ajax({url: 'ajaxgetenounce.php', method: 'POST',data: { 'id': '2', "resp":"L'URSS" }})}
if('#btnRadioNc3').is(':checked')){$.ajax({url: 'ajaxgetenounce.php', method: 'POST',data: { 'id': '2', "resp":"La France" }})}
if('#btnRadioNc4').is(':checked')){$.ajax({url: 'ajaxgetenounce.php', method: 'POST',data: { 'id': '2', "resp":"Le Groenland" }})}
});
Uncaught SyntaxError: Unexpected token '.' (il fait référence à .is) or il fonctionne au premier mais pas au suivant
mdr en le postant là je viens de voir l'erreur
sorry
C'est dommage ;-;
bonjour je fais du react vite fait et pour mon css c'est étrange
lorsque je prends la classe dans le css cela ne marche pas alors que mettons je mets juste h1 { color: red;} ca fonctionne
import "./index.css";
function Test() {
return (
<h1 className="shiido">Test</h1>
);
}
export default Test; ```
et j'avais une question c'est possible de faire plusieurs pages avec react ?
avec "react-router-dom" ?
Oui c'est possible
Hello. J'ai un comportemnet bizarre sur mon app React avec les fonctions asynchrones
async function findMe() {
if (config.isBackend) {
console.log('here')
const response = await axios.get('/auth/me');
console.log('response.data.me', response.data.me);
return response.data.me;
} else {
return mockUser;
}
}```
export function doInit() {
return async (dispatch) => {
let currentUser = null;
if (!config.isBackend) {
currentUser = mockUser;
dispatch({
type: AUTH_INIT_SUCCESS,
payload: {
currentUser,
},
});
} else {
try {
let token = localStorage.getItem('token');
console.log("localStorage.getItem('token') => ", token);
if (token) {
currentUser = await findMe();
}
console.log('currentUser', currentUser);
dispatch({
type: AUTH_INIT_SUCCESS,
payload: {
currentUser,
},
});
} catch (error) {
Errors.handle(error);
dispatch({
type: AUTH_INIT_ERROR,
payload: error,
});
}
}
}
}```
Parfois le résultat de l'appel de la fonction findMe n'est pas attendu par doInit, et du coup ça me donne un currentUser à null. Et on voit dans les logs que la ligne "console.log('response.data.me', response.data.me);" s'exécute beaucoup plus loin . Quelqu'un saurait-il pourquoi ?
Quand je charge la page et que je me log, j'ai ce comportement, mais si je rafraichis en étant loggé, l'appli fonctionne
Egalement, si je me déco et que je me reco sans recharger la page, ça ne bugge pas
ça correspond à quoi ces fonctions ? La structure respecte pas trop les conventions de React
Et dans ton cas, évite les side effects, sinon tu pourras jamais debug ton code
Les side effects ?
Les variables globales par exemple
Ces fonctions font partie du template React que j'ai achetées, elles servent pour la connexion utilisateur
le fait qu'exécuter une fonction a un impact sur autre chose que sa valeur de retour
on appelle ça effet de bord en français
Vous pensez au localStorage ?
T'as acheté un template react ?
Oui
Non je parle par exemple du mockUser
Pour en revenir au problème, tu dis que le findMe n'est pas correctement await ?
mockUser vient d'un import du fichier mock.js, il n'est pas utilisé car je suis en config backend
Exactement
Mais uniquement juste après un rechargement de page et s'authentifier
Par config backend tu entend SSR ?
Tu as vérifier que tu entres dans la bonne condition ?
Hm non pas SSR, mais connexion à une API
Pour s'authentifier et tout le reste
Oui j'entre bien dans la bonne condition, mon "here" s'affiche
Très bizarre comme fonctionnement ton truc
Et donc au console.log('currentUser', currentUser); tu as undefined ?
Le principe du truc c'est pas "backend" si on est en local et on est auto-connecté
C'est stupide, comment tu testes ton code après ?
Enfin je trouves que c'est pas une bonne idée
J'ai currentUser à null
alors que console.log('response.data.me', response.data.me); te retournes une valeur ?
C'est le template qui est fourni comme ça, moi j'ai activé le mode backend tout le temps
Oui, la bonne valeur, mais beaucoup plus tard, après les erreurs
(erreurs comme quoi je n'ai aps de currentUser)
Je sais pas combien tu l'as payé ni si tu as beaucoup de code dessus mais au vu de ces deux fonctions et du principe, tu devrais partir d'un code vierge, tu économiserais du temps
Ben l'app est fini, ya juste ce petit bug bizarre
Tu es sur que ta fonction est call une seule fois ?
Je peux voir les console.log stp
La fonction findMe ?
L'ensemble quand tu produits le bug
D'ailleurs attention à un autre side effect, tu testes si le token est définit dans ton localStorage et tu /auth/me directement derrière sans savoir si le token a bien été set dans ton instance axios, c'est pas une bonne pratique
Hm
D'accord
Voici les logs, je peux faire des captures plutôt si tu préfères
Du coup ligne 47 on a mon "here", et c'est seulement ligne 161 qu'on a le retour de la requête ajax
Oui mais c'est pas le problème
Les erreurs sont pas ici
C'est dans ta sidebar que tu lis currentUser alors qu'il n'existe pas encore
Je vais essayer de creuser en ce sens
Ce qu'il se passe c'est simplement que tu render des composants dépendants de currentUser avant même la connexion/reconnexion
Donc probablement un loading screen manquant
Il faut que je comprenne exactement comment et quand on tente de render mon app
Mais j'ai beaucoup de mal avec cette fonction dispatch qu'il y a un peu partout
D'où l'intérêt de partir d'un code vierge
Le dispatch va permettre de mettre à jour ton state globale (surement dans un store redux)
Imagine un gros contexte react qui stocke toutes tes data
Dans ce store/contexte tu as une props currentUser
Qui doit être du type User | null
Merci 👍
En fait je pense que je me trompais et que le await findMe attend bien le retour
Donc si le currentUser est null, soit l'utilisateur n'est pas connecté, soit il est en cours de connexion/reconnexion
C'et l'app qui est affichée trop tôt
Oui, il y a peu de chance que le moteur js bug à ce niveau là d'où ma demande des logs ^^
^^
Disons plutôt que ton app affiche le mauvais content
On va pas laisser un écran blanc à l'utilisateur pendant la connexion/reconnexion, c'est un peu dommage
Je souhaite qu'il continue juste à afficher la page de login
Au pire avec un petit loader dessus
Ajoute une condition dans ton router dans ce cas
Si il n'y a pas de currentUser et pas de token, on affiche le login
Si il y a un token mais pas de currentUser, on affiche le charge (reconnexion auto)
Si on a les deux, on affiche le content du site connecté
Si on a un currentUser mais pas de token, on déconnecte l'utilisateur car ça veut dire que soit il a touché à son localStorage soit il y a eu un soucis quelque part
C'est quoi cette fonction ?
J'ai désactivé la ligne de ma flèche rouge, et ça marche bien maintenant 🙂
export function loginUser(creds) {
return (dispatch) => {
localStorage.setItem("dashboardTheme", 'dark')
localStorage.setItem('navbarColor', '#fff')
localStorage.setItem('navbarType', 'static')
console.log('config.isBackend', config.isBackend)
if (!config.isBackend) {
dispatch(receiveToken('token'));
dispatch(doInit());
dispatch(push('/app'));
} else {
dispatch({
type: LOGIN_REQUEST,
});
if (creds.email.length > 0 && creds.password.length > 0) {
axios.post("/login", creds).then(res => {
const data = res.data;
dispatch(receiveToken(data.token));
dispatch(doInit());
//dispatch(push('/app'));
}).catch(err => {
console.log("LOGIN ERROR", err);
dispatch(authError(err.response.data.message));
})
} else {
dispatch(authError('Something was wrong. Try again'));
}
}
};
}```
Elle est appelée ici, quand on tente de se logger
Mon app fonctionne comme ça là : à l'arrivée sur l'app, si ya pas de token, on va sur la page de connexion, sinon on tetne de récupérerr de infos utilisateur sur /auth/me
Et j'ai cette interceptor qui supprime le token et le user si on a une erreur 401 depuis l'API, et redirige sur la page de connexion :
//response interceptor to redirect to login page on receiving 401 response
axios.interceptors.response.use(
response => response,
error => {
if (error.response.status === 401) {
console.log("401 ERROR")
localStorage.removeItem('token');
localStorage.removeItem('user');
history.push('/login');
}
return Promise.reject(error);
}
);```
En théorie la redirection doit se faire sans push, simplement en se basant sur les data, sinon on perd l'intérêt de faire du reactif
A vrai dire j'ai désactivé tous les push là 🤔
vers /app je veux dire
C'est pas évident tout ça
J'ai choisi de partir d'un template existant pour faire mon app rapidement, mais je me rend compte que j'ai beaucoup à apprendre
Merci pour ton aide en tous cas
👍
bonjour
une personne serais m'aider pour faire le system de suggestion comme @ancient sonnet avec une reaction qui crée un thread ?
Bonjour j'espère que tout le monde va bien , quelqu'un sait comment envoyer les donnés d'un html dans un json ça m'aiderait beaucoup, merci d'avance ?:)
@buoyant chasm salut, tu peux détailler "les données d'un html" ?
donnés d'un formulaire html
function handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
const values = Object.fromEntries(data.entries());
console.log(values, JSON.stringify(values));
}
const form = document.querySelector('form');
form.addEventListener('submit', handleSubmit);
bonsoir je voudrais rafraichir une page apres 5 seconde apres avoir clique sur un boutton le soucis c que ca fonctionne pas
Tu as un message d'erreur dans la console ou n'importe quoi qui sera plus précis que "ca fonctionne pas" ?
je vais voir
juste elle
J'ai l'impression que le bouton que tu sélectionne n'est pas celui sur lequel tu cliques
Tu peux essayer en identifiant ton bouton avec un id
comme sa ?
le soucis c que quand je console log un mot, il apparait et disparait
Il faut que tu fasses un preventDefault
Car ta page se submit de façon normale
@robust stirrup
la ligne "const form = document.querySelector('form');" je dois remplacer 'form' par l'id de ma div form
je suppose
Si tu veux récupérer ton formulaire, oui en remplaçant 'form2' par '#tonFormulaire' si c'est il a un id
Pas de soucis merci de votre aide
Le sélecteur 'form' sélectionne le premier élément qui a comme balise <form></form>
En fait c'est les mêmes sélecteurs qu'en css
Aah d’accord ok merci pour l’information
Et pour l’écrire dans mon json comment ça se passe
Je trouve plein de solution sur internet qui m’aide pas forcément
Tu veux dire écrire dans un fichier json?
Si c'est ce que tu veux faire il va te falloir un backend derrière ton frontend car tu peux pas écrire de fichiers depuis une page web si elle ne communique pas à un serveur
Oui tout à fais
Aah d’accord
Aaah mais d’accord enfaite j’ai compris
On c’est bon merci pour ton aide
Bonjour tout le monde, est ce que quelqu'un est douer avec FullCalendar et pourrait m'accorder quelques minutes?
Bonsoir, quelqu'un sais si c'est possible de voir le nombre de boost qu'il ya sur son serveur discord svp ? je souhaiterais faire un channel qui affiche le nombre de boost sur mon serveur ^^
j'en ait fait il y a quelque temps, tu veut faire quoi ?
je souhaite que lors d'un clique sur un jour du calendrier j'affiche une div sauf que l'élément dayClick ne fonctionne pas chez moi
voici le warning :
Tu a déjà fait l’affichage par la base de données ou tu tu test sans pour l’instant ?
C’est pas plutôt eventClick que tu veut a la place de dayclick ?
non car j'utilise full calendar uniquement pour afficher des dates
et non pour des évènement
Montre comment tu l’utilise stp
Tu peux essayer avec dateClick à la place de dayClick ?
Je crois que dayClick c'est pour la version 3, actuellement on est à la version 5
J'ai vu qu'en cherchant dayClick on tombait sur la doc v3 alors j'ai regardé la catégorie callback de la doc actuelle
Et j'y ai trouvé dateClick
D acc Ben je regarderais mieux le prochain coup
En tout cas merci ça faisait plusieurs heures que j etais bloquer !
Hey ! Quelqu'un a compris la nouveauté ? (Comment elle fonctionne je comprends pas trop)
Si tu utilises djs c'est pas encore implémenté dans la lib
Ok merci !
j'imagine que ca doit ressembler a ca
https://cdn.discordapp.com/attachments/889939268733132870/949398778681655376/https3A2F2Fs3-us-west-2.png
Oh stylé !
ca a été annoncé il y a plusieurs mois avec cette image je n'ai pas vérifié que c'était bien ca qui était sorti mais ca doit y ressembler
Et moi, qui me suis embêter à faire un système pour créer plusieurs Select Menu si il y a plus de 25 channels pour annoncer 2 semaines après l'arrivé d'un nouveau système mdr
No way dinguerie de ouf
J'avais pas vu la nouveauté
Ca a du sortir hier
Parfait pour 0rion !

Tu veux que je foute ça où
J'ai raté un épisode ?
Nan tkt
Ce sera une vrai dinguerie
Ouais
Bonsoir, quelqu'un sait comment réglé ce problème s'il vous plait ?
Tu dois aller sur discord.dev et ajouter ton lien dans cette onglet
Tu auras une rubrique "Redirects" avec un bouton pour ajouter un lien de redirection
Mon lien d'autorisation de bot pour faire rejoindre un serveur ?
L'url sur lequel tu veux rediriger la personne après qu'elle ai fini la connexion avec discord
Tu peux passer en dm ?
Explique ici 😉
En gros je veux dev en local pour l'instantt et je veux relier mon panel web a mon bot discord mais ducoup il me faut le fameux lien OAuth2 mais bon je n'y arrive pas
C'est toi qui a dev le panel web ?
nop
c'est ici que il faut modifier je viens de voir
je pense que c'est ça si tu peux me confirmer x)
C'est un panel public ?
bha pour le moment non mais plus tard oui
Je parle du code, c'est un panel que tu as pris de github (ou autre) ou quelqu'un la dev pour toi ?
Alors c'est un de github mais te retrouver le lien va etre compliquer car ça date un peu
je vais essayer
Ta surement l'info dans ton package.json
autant le refaire soi-même honnêmetent
parce que reprendre un code qui n'est pas le tiens, c'est vraiment méga pas bon
mh je vois
tu dois mettre le lien vers ta route de validation, de callback si tu préfères ce qui va te retourner l'user discord
Je vais essayer et je reviens vers toi si ça ne va toujours pas merci de ton aide 🙂
Pour ca que je lui demandais le repos, pour lui donner l'url 👀
Mal parti pour l'avoir 
@keen narwhalenvoie un screen de l'architecture des fichiers de ton panel
Rien d'autres ? pas de package.json ou de readme.md ?
Alors la le gars a sortie une nouvelle version du panel car j'ai retrouver le repo github j'installe les package et je te dis ça
Ha bah envoie le repos du coup
je t'es envoyer en dm mais ducoup ça me fait la meme erreure
jfais mon projet react avec un login discord
mais accesToken et tokenType renvoient
null
jvois pas pourquoi
we j'avais pas vu mais vous faites la même chose mdr
a peu près
ça renvoie null dans ma console
Je remet ici ce que m'as envoyé :
https://github.com/saiteja-madha/discord-js-bot
Du coup je pense pas que tu puisses séparer juste le dashboard du repos, donc jte conseille d'utiliser le repos entier et le lien que tu dois mettre sur discord.dev c'est http://localhost:8080/api/callback (ou tondomain.com/api/callback)
ah je savais pas si ont pouvais envoyer des liens ici ou pas
Tqt le bot supprime automatiquement ce qu'on ne veux pas laisser 
Ah d'accord
Bon maintenant il faut que je trouve le fichier pour savoir comment changer le fond et le mettre en noir x)
Mettre en noir quoi?
Le fond du site en question
@queen ocean nuxt tu penses que c'est plus adapté pour un projet avec oauth2 discord que react ? Parce que reeact c'est bien galère quoi
Ben background color sur ton body
va voir le repo je sais pas ou il est le "body" c'est dans le dossier dashboard
Je suis pas dev web 
Ah c'est qui qui a fait ton site alors ?
Aze
Le site actuel a été fais par une équipe qui n'est plus sur le serv, le futur site qu'on prépare est fais par @hazy mirage (back) et @burnt perch (front)
Vous allez encore update le site ? Il est déjà super je trouve
A part il manque une récente update niveau article par exemple
On refais tout de 0 ouais
@onyx wren tu as le repo ou tu veux je te le donne ? (c'est ce que a envoyer zaros en haut)
Oh ptn il use du boostrap
c'est pas moi
Je recommande pas mais fait comme tu veux
Mais ducoup c'est ou que il y a pour changer le background ? xd
On aime plus nous et ca correspond pas aux ambitions qu'on a pour le futur de la commu
Ben tu dois add une classe boostrap
Chepa c'est laquelle exactement
okok et tu penses ce sera pour quand le nouveau site ?
je vais changer le panel je pense
Montre le rendu de ce que tu as déjà ?
#boostrap
Oula les reacts
Pourquoi tu recopies aussi mdr
salut une personne c'est comment on crée un thread via un message discord avec discord js
hoops my bad j'avais mal lu 😆 (deso du ping)
Tu prend le message et tu as juste à utiliser la fonction startThread.
<message>.startThread();
mais c'est possible de le faire comme #suggestions des que le bot envoie le message sa le crée direct ?
Oui.
tu serais m'aider ?
Tu as déjà commencé un code ?
bhe j'ai deja le code de la suggestion
mais pas la creatio de thread avec le message
En gros tu fais un truc dans ce style
const message = <channel>.send();
message.startThread({name: "Nom", autoArchiveDuration: 10080, reason: "Raison"});
Voilà
sa je le met dans le code de la command ?
Tu l'ajoutes par rapport à ton code oui.
Uncaught SyntaxError c:\Users\luluv\Desktop\creator shop\Commands\suggest.js:23
const message = "1030744640061718528".send();
^
SyntaxError: Identifier 'message' has already been declared
Non.
Uncaught TypeError TypeError: "1030744640061718528".send is not a function
Tu sais envoyé un message dans un channel ?
bot.channels.cache.get non ?
mais ducoup je met quoi a la place de message ?
Ce que tu veux.
ncaught TypeError TypeError: chanel.startThread is not a function
sa me marque sa ducoup
Fait voir ton code.
const Discord = require('discord.js')
const { EmbedBuilder } = require("discord.js")
module.exports = {
name: "suggest",
description: "Permet d'envoyer une suggestion",
permission: "Aucune",
dm: false,
category: "Autres",
options: [
{
type: "string",
name: "suggestion",
description: "Le message a envoyer.",
required: true,
autocomplete: false
}
],
async run(bot, message, args) {
const chanel = bot.channels.cache.get("1030744640061718528").send();
chanel.startThread({name: "Nom", autoArchiveDuration: 10080, reason: "Raison"})
message.reply({content: ':white_check_mark: **Suggestion envoyé avec succès dans [#1030744640061718528](/guild/223070469148901376/channel/1030744640061718528/) ! **:white_check_mark:', ephemeral: true});
let msg = args.getString("suggestion");
const EmbedMessage = new EmbedBuilder()
.setTitle(`:DiscorsChat:> Nouvelle suggestion!`)
.setColor(bot.color)
.setDescription(`Suggestion de ${message.user} : ${msg}`)
bot.channels.cache.get("1030744640061718528").send({ embeds: [EmbedMessage] }).then(function (message) {
message.react("✅")
message.react("❌")
});
}
}
const Discord = require('discord.js')
const { EmbedBuilder } = require("discord.js")
module.exports = {
name: "suggest",
description: "Permet d'envoyer une suggestion",
permission: "Aucune",
dm: false,
category: "Autres",
options: [
{
type: "string",
name: "suggestion",
description: "Le message a envoyer.",
required: true,
autocomplete: false
}
],
async run(bot, message, args) {
message.reply({content: ':white_check_mark: **Suggestion envoyé avec succès dans [#1030744640061718528](/guild/223070469148901376/channel/1030744640061718528/) ! **:white_check_mark:', ephemeral: true});
let msg = args.getString("suggestion");
const EmbedMessage = new EmbedBuilder()
.setTitle(`:DiscorsChat:> Nouvelle suggestion!`)
.setColor(bot.color)
.setDescription(`Suggestion de ${message.user} : ${msg}`)
bot.channels.cache.get("1030744640061718528").send({ embeds: [EmbedMessage] }).then(function (message) {
message.react("✅");
message.react("❌");
message.startThread({name: "Nom", autoArchiveDuration: 10080, reason: "Raison"});
});
}
}
Tiens ça te suffit juste ça.
ok je test
au merci !
si c'est pas de trop ? c'est possible de faire quand o clique sur une reaction ou pas ?
C'est à dire ?
tu vois les system ici #suggestions on clique sur ue reaction pour ouvrir le thread
Euh et ben tu fais ça avec un event messageReactionAdd et puis voilà.
ok ok
c'est possible de metre une valueid a un emojie
Non mais un émoji à un ID.
a oui
mais comment je peut faire pour dire que quand o clique sur cette reaction sa crée le thread
@keen narwhal + un peu de lecture de la documentation
yo, jfais un projet avec nuxt mais j'ai l'impression que c'est lent, par exemple des fois ca charge indéfiniment comme ca
et je dois relancer le projet etc
vous avez une idée de à quoi c'est dû ?
peut etre qu'en prod y'aura pas je sais pas mais en tout cas c'est dérangeant un peu
c'est nitro qui déconne, tu dois avoir une erreur de socket hang up dans ton terminal; quand ça fait ça, suffit de ctrl s un fichier et ça va reafficher correctement
tu utilises la derniere version de nuxt ?
v3?
oui
ouee
tu es bien en rc 11 ?
yes
c'est étrange qd mm
et oui quand je controle s un fichier ca réaffiche
mais lorsque mon site sera en ligne j'espère que y'aura pas de problème du genre c'est chiant qd mm
non post build ça devrait bien se passer
oui le nv site de creators area sera sous nuxt 3
ah oui zaros m'avait dit que c'est toi qui le faisait
tu fais le front ou le back deja?
cheplus
nuxt c une dinguerie le framework qd mm
principalement du back mais j'aide aussi loc sur le front
ah intéressant jdebute le back jsuis une grosse merde
j'avais une question genre pour le back tu fais un dossier séparé ?
du projet nuxt
si ça t'interesse le nouveau back est fait avec nest.js
mm moi j'ai fait le back en dehors
pas expérimenté encore c'est bien comme framework?
j'ai pas assez d'experience pour te dire si c'est mieux que tel autre, en tout cas c'est très complet, et j'avais essayé de faire quelques recherches mais j'avais pas trouvé de trucs aussi complet (du moins tah l'époque)
jfaisais mon projet sur react mais j'avais l'impression que react interceptait mes requêtes du coup j'ai pris nuxt apres j'en suis pas sur mais y'avait un probleme d'auth discord
ah oue cool
et dur à utiliser?
a partir du moment ou tu suis la doc et que tu sais faire du js correctement tu peux t'en sortir "facilement"
après faut bien faire les choses donc faut se renseigner sur telle et telle manière de faire (d'autant plus parce que c'est du back pour le coup)
okok faut que je vois
parce que je suis aprti sur aucun framework pr mon back?
erreur ptere
pas forcémement une erreur car ca peut te permettre d'en apprendre d'avantage
mais tu vas perdre du temps sur des trucs qui seraient déjà fait par les framework
mais apres ton backend sur creator est super complexe moi ce le sera sans doute moins
yep t'as raison!
jveux faire un systeme d'authentification discord et genre un gestionnaire de role en gros ta le role guest qui lit juste les trucs et admin qui peut créer un nouvel article directement sur le site, genre un panel admin ou tu écris le titre de l'article, la description, les images etc
parce que me débrouillant en front a chaque fois je réecrivais mon article dans mon code donc a chaque fois je devais recréer un .html par exemple
et je me suis rendu compte que ct de la merde c pour ca que japprends le backend mdr
et simple question aussi jveux faire mon navbar responsive mais le code js du nav jle mets ou dans mon header.vue ou ailleurs
@hazy mirage sorry dla mention
dans le script du composant
we genre jfais juste un script et jmets ma merde dedans mdr
c'est toujours bien de garder le code du composant dans son fichier propre
fais un screen de ton fichier
we jai vu
parce que j'ai fait un main.css et j'ai mis toute la merde dedans
mais j'ai modifié un peu
lequel?
https://vuejs.org/guide/scaling-up/sfc.html#introduction
tiens voila un exemple de sfc
mais c'est etonnant qu'ils te montrent pas la version avec le script setup
tiens regarde l'exemple avec le script setup: https://vuejs.org/api/sfc-script-setup.html#basic-syntax
jai fait un script
fin yen avait dja un ou j'ai mis l'export
ah
et aussi font awesome ca marche comment avec nuxt j'ai look la doc jai install @fortawesome/fontawesome-svg-core et @fortawesome/vue-fontawesome@latest-3 et mis dans le css mais ca marche pas et ya pas d'erreur et aussi mis le fontawesome.js
Bonjour, je voudrais savoir si quelqu'un sait comment mettre un string avec des `` de la même couleur que les "" sur Webstorm ?
je viens de voir tes messages
tu as tjrs les problemes etc. ?
Yes
Fin j'ai recréé un projet nuxt et dessus nn c'est un problème avec axios mais sur l'autre non
Pourtant j'ai exactement la même chose du coup c'est une histoire de package je pense
Hello, est-ce que quelqu'un sait si c'est possible d'accéder pour l'heure à WeakRef et FinalizationRegistery avec nodejs ? J'ai cherché sur la doc et j'ai pas trouvé, mais le mdn indique que node le supporte depuis la version 14.6..
Salut ! Quelqu'un aurait-il comment je pourrai m'y prendre pour passer des arguments dans l'interaction d'un MessageButton sur discordjs ? Merci !
Je ne répond pas à ta question mais pourquoi ne pas utiliser un ORM comme prisma ?
c'est quoi ?
et PS j'ai trouvé comment faire
Je te laisse regarder un peu le démo
Ça risque de te convaincre
Et ça évite presque toutes les failles SQL patchée a ta place
Yo ! j'ai un probleme j'ai fait un bot discord mais la commande que j'ai faite je l'ai effacé du code mais elle est toujours presente dans la liste quand j'appuie sur /
mon code
Nest Js est très complet, ta qu'a voir sa documentation https://docs.nestjs.com/
Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).
@hazy mirage tu as deja utilisé nest ?
Yep, il l’utilise pour faire le back du nouveau site
et c'est assez simple a utiliser dans le meme style que adonis ?
Yo les amis j'ai une question comment faites vous pour que quand on ouvre un thread le trait qui se trouve à gauche parte de la photo de profil ? Commme ça :
Quand je crée un thread le trait ne commence pas par la pdp : (
Ok je vois comment on crée un thread comme ça mais aucune idée de comment le faire avec un bot
🤔
Yo les amis j ai une question comment
Salut ! Quelqu'un aurait-il comment je pourrai m'y prendre pour passer des arguments dans l'interaction d'un MessageButton sur discordjs ? Merci !
Je sais pas ce que tu veux faire exactement mais tu peux serialiser tes arguments et utiliser cette serialisation comme custom id de ton bouton
bonsoir, je souhaite creer une classe 'open' lorsque je clique sur un bouton, malheureusement, rien ne marche
ok je vais test avec l'id pas con ! Merci !
Salut, j'essaye d'utiliser plyr, en gros c'est pour un lecteur vidéo, et y'a une fonction ready mais elle se déclenche 2 fois je sais pas comment eviter ça
C'est normal qu'il apparaisse pas sur vscode, c'est seulement sur le navigateur
hello, j'arrive a récuperer l'username, l'avatar etc lors d'un login discord mais je n'arrive pas à afficher correctement l'image
jai look des docs mais j'ai rien trouvé
classList.add("open")
c'est normal que quand je veux exectuer un debbuging, mon programme veux pas ce lancer avec un erreur disans que le node est pas selectionné?
Tu n'as pas très bien cherché : https://discord.com/developers/docs/reference#image-formatting
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
merci mais j'ai réussi à trouver j'ai réinstaller node js et c'est bon
Par contre quelqu'un aurait une idée de code nécessaire pour faire une page de résultat pour moteur de recherche
Ok j'vais look merci
Comment ça ?
Genre ça ?
oe de ce genre là mais ce que j'ai esseayer ne veux pas fonctionner
Cet a dire ?
en gros j'ai essaie des truc mais ça voulais pas
en me basant sur certains moteur de recherche et la méthode qu'il utilisait
Tu ne peux pas reproduire leurs façons de chercher mais tu peux récupérer ce qu’ils te renvoient
Avec du scraping
es que tu vois le fonctionnement d'un méta-moteur?
Salut, des gens s'y connaissent en socket io ?
Pose une vraie question si tu veux une vraie réponse
Je dois lancer une vidéo simultanément avec le lecteur plyr et j'utilise socket pour emit les events
et le truc c'est que quand je lance un lecteur avec un le deuxieme se lance que si je suis sur la console dans la page
pourtant il passe bien dedans
Tu as quoi comme système d'exploitation et tu utilises quoi comme navigateur ?
Windows et chrome
Tu es sûr que ça vient de socket.io et pas de ton lecteur vidéo qui s'arrête si la fenêtre n'a pas le focus?
ouai bah du coup je penses que c'est le player pcq il passe bien dans le on play donc socket a pas de soucis finalement
bsr.....j ai problem..je commence un ptit..lors des declarations des variables..je recois une erreur au niveau de ma derniere variables declaree..j ai besoin d aide svp :
code : let inputgröß = document.getElementById("größ").value;
let inputAlter = document.getElementById("alter").value;
let inputGewicht = document.getElementById("gewicht").value;
let GrundUmsatz = 664.7 + ((13.7 * inputGewicht) + (5 * inputgröß)) – (6.8 * inputAlter)
et du coup pour le focus je vais essayer c'est peut être ça
hmm je viens de test avec mon telephone et edge ça marche
mais pas chrome
C'est que chrome stop la lecture d'une video si la fenêtre perd le focus
avec google sur mon telephone ça marche pas non plus :/
pourtant je suis sur la page
et encore plus bizarre
quand la vidéo est déjà lancé
si je met pause et que je remet play ça marche
sans le focus
Sur téléphone ça doit être différent parce-que tu peux gérer le contrôle des médias même sur une application réduite
Sur téléphone ça doit être différent parce-que tu peux gérer le contrôle des médias même sur une application réduite
Ouai c'est un soucis de focus, j'ai donné le focus a la vidéo quand je perd celui de la fenêtre et ça marche merci !
J'ai aussi un autre petit soucis, le lecteur se charge 2 fois, et il change de taille a chaque fois comment je peux empecher ça
Hello !
J'ai commencé mon bot en v14 et j'ai eu cette erreur :
C:\Users\louan\Desktop\AstoriaBot\node_modules\discord.js\src\util\Util.js:348
if (!Object.hasOwn(given, key) || given[key] === undefined) {
^
TypeError: Object.hasOwn is not a function
at mergeDefault (C:\Users\louan\Desktop\AstoriaBot\node_modules\discord.js\src\util\Util.js:348:17)
at new BaseClient (C:\Users\louan\Desktop\AstoriaBot\node_modules\discord.js\src\client\BaseClient.js:25:20)
at new Client (C:\Users\louan\Desktop\AstoriaBot\node_modules\discord.js\src\client\Client.js:43:5)
at Object.<anonymous> (C:\Users\louan\Desktop\AstoriaBot\main.js:2:13)
at Module._compile (node:internal/modules/cjs/loader:1095:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1124:10)
at Module.load (node:internal/modules/cjs/loader:975:32)
at Function.Module._load (node:internal/modules/cjs/loader:816:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
at node:internal/main/run_main_module:17:47```
si quelqu'un peut m'aider s'il vous plait 😅
Hello, quelle est ta version de node.js ?
yes j'ai vu que c'était ça !
merci quand même
ah noice x)
mais j'ai une petite question
yes?
comment je fais pour ravoir le chemin du dossier du bot dans le terminal après l'avoir lancé à partir de celui ci ?
c'est à dire
aah
ouii x)
tu veux faire quoi exactement?
en gros j'aimer installer fs sauf qu'il me faut le chemin etc comme pour le node main
aah mais x)
fs c'est un module natif de node
tu ajoutes juste en haut de ton code (pas nécessairement en haut mais c'est 'mieux')
const fs = require('fs');
// ou si tu veux importer des fonctions spécifiques
const { readdirSync } = require('fs'); // exemple
oui mais faut bien que je fasse npm i fs non ?
ah ok
mais même
genre y'a des moment ou comme pour le redémarrer par exemple j'ai besoin de réécriez dans le terminal
Bonjour j'ai un problème avec mon code le js n'arrive pas a lire le input je ne comprends pas pourquoi si quelqu’un peut m'aider svp
constructor() {}
add(a, b) {
var result = a * 1 + b * 1;
return (document.getElementById("result").innerHTML = result);
}
}
let add = document.getElementById("add");
var a = document.getElementById("A").value;
var b = document.getElementById("B").value;
var mycalc = new calc();
add.addEventListener("click", () => {
mycalc.add(a, b);
});```
En effet mais le soucis c’est que des que je met un consol.log de a et b dans le evenlistener il n’affiche rien
Tu as console.log quel élément ?
Le var a et b
@open python
sur votre site, c'est fait comment ça ? c du markdown je sais mais vous avez use un framework?
Bonjour, j'apprend à faire une application avec electron et j'aurais une question, si je demande d'afficher un fichier .php au lieu de .html (comme dans la doc) est ce que cela fera comme si on ouvre un fichier php sur notre ordinateur (voir screen) ?
🤔
Envoi ton code en entier je regarderai
Pourquoi vouloir faire du php alors qu'il suffi d'utiliser du nodejs ? Je pense pas que tu puisses utiliser du php dans electron
Parce que mon site et fait avec du php
Et je sais pas faire de système de connexion, inscription etc... avec nodejs
Je vois, en tout cas c'est pas prévu pour, il y a peut-être des moyen de contourner mais ça doit pas être très répandu, tu as déjà essayé d'utiliser du php dans ton app ?
@keen narwhal
Non pas encore, je début.
Bonsoir j'aurais une petite question sur le développement d'un bot discord
J'ai un petit problème quand je fais des commandes "/" le code s'exécute bien mais ensuite le bot dit que l'application ne répond plus.
J'ai regardé quelques tutos je ne comprend pas ce que j'ai manqué
client.on("interactionCreate", async(interaction) => {
if(interaction.isCommand())
{
//if (!interaction.member.permissions.has(8)) {
// interaction.channel.send("<@" + user.id + ">" + "ptdr t'es qui");
// return;
//}
// fait crash quand la personne a pas la permission
if(interaction.options.getInteger("argent") != undefined)
{
interaction.channel.send("Vous avez " + interaction.options.getString("action") + " " + interaction.options.getInteger("argent") + "$ a l'utilisateur : <@" + interaction.options.getUser("user") + ">");
return;
}
if(interaction.commandName == "economy")
{
let user = interaction.options.getUser("utilisateur");
if(user != undefined)
{
if(interaction.options.getString("message") != undefined)
{
interaction.channel.send("<@" + user.id + ">" + " " + interaction.options.getString("message"));
return;
}
else
{
interaction.channel.send("<@" + user.id + ">");
return;
}
}
}
}
});```
Voila le code correspondant a la partie interaction
Il faut envoyer une réponse à une interaction
Je suis désolé j'ai commencé hier le développement de bot discord que veut tu dire par envoyer une réponse à une interaction ?
Je vois merci beaucoup je vais regarder ca
bonjour bonsoir
quelqu'un serais il me dire ce que c'est que ce foutoir ? tiens ca rime
j'ai absolument rien changer, et avant ca fonctionnez correctement, mais la ca me fais ca je comprend pas
c'est good j'ai trouver j'avais pas chercher au bon edrosi
Aurez tu une doc ou un tuto stp 🤔
OK je regarderais merci !
Bonsoir, est ce que quelqu'un peut passer en vocal, ça doit être tt simple de régler mon erreur mais même avec des recherches je trouve pas la solution
DiscordAPIError[50006]: Cannot send an empty message
pour le code :
interaction.user.send({embeds: [embed , embedTommorow]})```
@open python
interaction.reply({content: 'Et voila, je t\'ai envoyé un message en privé !', ephemeral: true});
interaction.user.send({embeds: [embed , embedTommorow]});
ok merci !
le interaction.reply n'est pas reconnu "unknown interaction" alors que "interaction.channel.send" fonctionne mais dcp c'est pas en ephemeral
(c'est après une slashcommand)
Bonsoir !
J'ai un petit souci avec les canvas pour Node.js, je n'arrive pas à les installer... je suis sur mac et j'ai installé Homebrew, mais rien n'y fait... ducoup, j'ai essayé avec différentes versions de Node disponibles, mais toujours rien... donc je me posais la question de si quelqu'un aurait une idée et pourrait probablement m'aider. (J'ai les erreurs en pastebin si besoin)
Merci d'avoir lu !
C'est parce-qu'une interaction expire au bout de 3s
Donc si ton code met plus de 3s à répondre à l'interaction alors celle-ci n'existe plus
voilà mon code entier merci d'avance
comment ca a été fait ça sur votre site ?
c'est du markdown
mais vous avez use un framework?
C'est un framework, je ne sais plus lequel je vais te le retrouver
Il y en a plein, mais ça peut probablement t'aider https://markdoc.dev/
Ok merci beaucoup !
mais c special pour next.js ?
parce que sur leur doc je vois que du next.js mais pas d'autres frameworks
ya react aussi mais pas nuxt
Y'a t'il quelqu'un connaisseur de react router dom v6?
Le plus gros problème était que tu récupérais les valeurs de tes inputs trop tôt, tu dois les récupérer au click sinon elles ne valent rien.
Le code un peu arrangé :
class calc {
constructor() {}
add(a, b) {
let result = a * 1 + b * 1;
return result;
}
}
let add = document.getElementById("add");
let mycalc = new calc();
add.addEventListener("click", () => {
let resultId = document.getElementById("result");
let a = document.getElementById("A").value;
let b = document.getElementById("B").value;
let result = mycalc.add(a, b);
resultId.innerHTML = result;
alert(result);
});
Ah aussi n'utilise plus le mot clé var, c'est fini plus personne ne l'utilise ça pose trop de problème de scope, on privilégie let dans tout les cas maintenant (ou const si ta variable ne change pas)
Super je te remerci 👌
coucou, est-ce qu'il y a des gens qui aident à débuté ? j'suis un peu perdue, ou juste me renvoyer vers une chaîne/site utile ce serait sympa !
@keen narwhal Pour débuter quoi ? Le Javascript ?
j'ai mon projet nuxt mais le js de mon navbar je dois le mettre ou ?
jai créé un plugin et je l'ai mis ddans
Bonjour une personne c'est comment faire pour que quand on ce connecte a une vocal spécifique sa give un role ?
J’ai pas la solution en code mais en algorithmique :
Tu créer un évent sur le join d’un salon, Tu compares l’ID du salon guilds récupérer avec celui que tu veux choisir
Tu ajoute le rôle au membre qui vient de se connecter, toujours en récupérant son id via la guilds
@hazy mirage sorry mais tu vois je fais mon navbar responsive sous nuxt sauf que le js marche pas pourtant j'ai ca dans mon plugin (ca marche en dehors de nuxt), dans mon nuxt config j'appelle bien le plugin
Envoie ton composant de menu/navbar
fin jai fait nimp dedans a la fin att jle remets bien
chepa je dois export quoi
Bonjour j'ai un petit soucis que je n'arrive pas a résoudre j'aimerais faire en sorte que seule les personnes qui possèdent la perm de MANAGE_MESSAGES puisse send la commande mais la elle ne se send pas.
if (command.staffOnly) {
if (interaction.user.permissions !== ('MANAGE_MESSAGES')) {
return interaction.reply({ content: "Cette commande est uniquement pour le staff!", ephemeral: true });
}
}
C quoi "staffonly"
Dans mon fichier commande
staffOnly: true,
Pour dire que c'est une commande staff
C'est qu'elle version de discord.js ?
hello ! J'aimerai savoir si il était possible de mettre en durée "1s" pour une seconde, "1m" pour une minutes et "1d" pour un jours dans un mute ou un tempban ? Car pour l'instant je dois mettre mes durée en ms
Oui
Il faut juste parser la réponse
je dois le faire en plusieurs ligne ? je m'y connais pas tropdonc j'introduis comment la ligne de code ?
Tu fais une fonction dans ce style là : ```ts
export const parseDuration = (duration: string): number | null => {
const regex = /^([0-9]+)([wsdjhm])$/i;
const matches = regex.exec(duration);
if(matches) {
const amount = Number.parseInt(matches[1]);
const unity = matches[2];
if(amount !== 0) {
switch (unity) {
case 'w':
case 's':
return amount * 604800000;
case 'd':
case 'j':
return amount * 86400000;
case 'h':
return amount * 3600000;
case 'm':
default:
return amount * 60000;
}
}
}
return null;
}
okok mercii