#javascript-typescript

1 messages · Page 25 of 1

rocky oar
#

Bah merci, n'ayant jamais utilisé les RegExp, je n'y aurais jamais pensé

slim anvil
#

jamais utilisé les regex? choc

#

comment c’est possible dans le dev

rocky oar
cobalt oyster
#

Ah ouais

#

Pourtant j’en bouffe moi

#

Mdr

rocky oar
#

Bah pour le coup, en entreprise je bossais sur l'app interne, il y avait 0 RegExp dedans xD

misty parcel
#

Yo ! J'ai un petit soucis, je découvre les interface en Typescript et j'en ai fais une :

export interface Player {
    tag: string;
    name: string;
    townHallLevel: number;
    townHallWeaponLevel?: number;
    expLevel: number;
    trophies: number;
    bestTrophies: number;
    warStars: number;
    attackWins: number;
    defenseWins: number;
    builderHallLevel?: number;
    versusTrophies?: number;
    bestVersusTrophies?: number;
    versusBattleWins?: number;
    role?: "member" | "admin" | "coLeader" | "leader";
    warPreference?: "out" | "in";
    donations?: number;
    donationsReceived?: number;
    clanCapitalContributions?: number;
    clan?: Clan;
    league?: League;
    // builderBaseLeague
    legendStatistics?: {
        legendTrophies: number;
        previousSeason: {
            id: string;
            rank: number;
            trophies: number;
        };
        bestSeason: {
            id: string;
            rank: number;
            trophies: number;
        };
        currentSeason: {
            rank: number;
            trophies: number;
        };
    };
    achievements?: Achievement[];
    troops?: Item[];
    heroes?: Item[];
    spells?: Item[];
}

Le soucis c'ets que lors de la compilation j'ai plein d'erreurs, que voici :

node_modules/discord.js/typings/index.d.ts(1181,21): error TS1139: Type parameter declaration expected.
node_modules/discord.js/typings/index.d.ts(1181,27): error TS1434: Unexpected keyword or identifier.
node_modules/discord.js/typings/index.d.ts(1181,29): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
node_modules/discord.js/typings/index.d.ts(1182,9): error TS1005: ')' expected.
...
#

voila voila

#

Et du coup je ne sais pas commentrégler ce soucis

rocky oar
#

@cobalt oyster, tu saurais me dire comment accèder au Client Discord avec Sheweny ? car je ne peux pas faire client.message.fetch avec le client Sheweny, et comme on passe par lui obligatoirement je me vois mal initialiser un client discordJS par dessus xD

rocky oar
queen ocean
rocky oar
#

Justment, message n'existe pas dans le Type ShewenyClient :

#

je voulais faire this.client.message.fetch(id) mais non, et en regardant la doc de Sheweny, il n'y a pas message dans les properties

queen ocean
#

aucun rapport avec sheweny

#

en gros client sheweny = client discordjs avec 2-3 en plus

#

et client.message existe pas sur discordjs

rocky oar
#

je croyais, avant tu pouvais fetch les messages comme ça

#

Je retourne sur la doc DJS du coup

#

C'est bon, il suffisait juste que je fasse modal.channel.messages.fetch(id)

pastel dust
#

Svp

rose isle
rose isle
pastel dust
cyan iron
#

Tu veux faire quoi exactement pour vouloir envoyer des tokens en M-P @pastel dust

cyan iron
#

C'est ultra vague soit plus précis

pastel dust
#

En gros

#

La personne envoie son token au bot en prv

#

Et le bot

#

Met son bot Online avec tout les commandes pré defini

cyan iron
#

Quel type de bot exactement Thonk ?

pastel dust
#

Gestion

cyan iron
#

Hm, ok. Je préfère demander souvent c'est utilisé pour les bots de raid Kappa
Sinon je t'invite à mettre ton code et ton erreur

pastel dust
#

Donc tout se qui est modération fun ect qui puisse servir à aider les gens

pastel dust
#

C ça le truc que je comprends

#

Pas

cyan iron
#

Envoie le code dans ce cas

#

Pourquoi tu debug pas ?

pastel dust
#

Ok

pastel dust
#

Cet parti là s était lui qui a fais et il comprend pas aussi

cyan iron
#

Après si tu veux faire les choses proprement ce genre de système c'est pas si simple

pastel dust
cyan iron
#

Mais déjà j'aimerais voir ta solution

pastel dust
cyan iron
#

Bon déjà première mauvaise idée que je vois

#

Faut log tes erreurs

pastel dust
#

Log mes erreurs ?

#

Tu entend quoi pare la ?

rose isle
#

ouais omg

cyan iron
#

L'afficher dans ta console LULW

#

Déjà

pastel dust
#

Ah x)

rose isle
#
process.on("unhandledRejection", (reason, p) => {
  console.error(`[${reason.code}] ` + reason.message);
  /*  
    pire erreur d'ignorer les erreurs, préfere spam ta console
    if (reason.code === 0) return; // 404: Not Found
  if (reason.code === 400) return; // Invalid Token
  if (reason.code == 10062) return; // Unknown interaction
  if (reason.code == 10008) return; // Unknown message
  if (reason.code === 50035) return; // Invalid Form Body
  if (reason.code === 40032) return; // Not Connected At Voice 
  if (reason.code ==  50013) return; // Missing permissions
  if (reason.message.includes("GUILD_VOICE")) return; //CACHE LE MESSAGE INUTILE "GUILD_VOICE"
  if (reason.message.includes("Temp env not set")) return; // Bug Stream
  if (reason.message.includes('no such file or director')) return; // Bug Stream
  if (reason.message.includes("getaddrinfo ENOTFOUND null")) return; // Bug Vocale
    console.log(reason, p);
  */
});
cyan iron
#

Ensuite même si c'est pas terrible, vu que tout est sur le meme fichier ça me parait pas très déconnant comme système
Faut aussi faire gaffe à votre indentation les gars perso je regarde le fichier sur Discord je me pète le crâne

Sinon tente simplement de foutre des console.log au moment où tu login ton client, ainsi que dans les event ready de ton client

#

Mais bon, j'ai pas tout vu je pense

pastel dust
#

Ahhhhhhhh

#

E faute j ai delete les logs de la console sans le voir jcrois ;-;

cyan iron
#

Si t'ignore les 3/4 de tes erreurs bah forcément quand t'as un problème t'as 0 infos

#

Donc vraiment fait jamais ça

rose isle
#

au pire crée un log level

pastel dust
#

Oe okk mdrr

cyan iron
rose isle
#

en gros tu catégorise tes erreurs avec un niveau: Fatal, Error, Info, Warn, Debug

cyan iron
# pastel dust Oe okk mdrr

Sinon tente ce que je t'ai dit, si tu sais debug avec les breakpoints c'est encore mieux que les console log mais sinon pas grave

pastel dust
rose isle
# pastel dust

Mes conseils: Ignore pas tes erreurs, FACTORISE TON CODE, il est vraiment super chiant a lire, COMMENTE TON CODE, il est inaccessible facilement, et aussi corrige tes erreurs d'indentation.

cyan iron
rose isle
#

(je fache pas, c juste que ce qui est en majuscule est primordial p)our moi)

pastel dust
#

Okk tkt j avais capter

cyan iron
#

J'imagine que t'es sur VSC

pastel dust
#

La dcp je vken de corriger la partie de l index.js mais ça revien au même aucune erreur console et pas de logiciel

pastel dust
cyan iron
#

Hein

rose isle
rose isle
pastel dust
#

😅😅😅

#

Direct sur repli et après je met sur l hebergeur

#

Le prblm c que le replit me dit tout est OK mais pas l hebergeur ;-;

cyan iron
cyan iron
#

Compliqué de dev sur tel

#

Faut pouvoir tester en local

rose isle
# cyan iron Pour moi au début il vaut mieux se concentrer sur l'essentiel histoire de compre...

commenter son code permet de mettre des mots sur le fonctionnement de son algorithme et ducoup apprendre a le décomposer afin de déceler des failles, factoriser permet de se familiariser avec la complexité et trouver des moyens d'adapter son code, et de visualiser moins complexe, ce qui est vital pour éviter de faire des projets que tu abandonnes tres vite a cause de la complexité finale.

pastel dust
rose isle
cyan iron
cyan iron
pastel dust
cyan iron
#

Bah avoir un écran pas noir du coup

pastel dust
rose isle
pastel dust
cyan iron
#

Perso je vous laisse je bosse de base Kappa
Essaye de faire ce que je t'ai dit et donne des news ici

rose isle
cyan iron
rose isle
cyan iron
#

Je fais du PHP ce serait dommage de passer ça

cyan iron
rose isle
rose isle
pastel dust
#

J ai pas suivis la

cyan iron
cyan iron
rose isle
pastel dust
#

Tkt mdrrr ya aucun souci s

#

Soucis

cyan iron
rose isle
# pastel dust Soucis

tu devrais te trouver un pc, quel qu'il soit, pour dev, c bien mieux, au pire une tablette sur laquelle tu mets vscode et tu branche un clavier bluetooth et une souris

cyan iron
#

Sur téléphone tu te compliques la vie

rose isle
#

vscode supporte le dev depuis ssh

cyan iron
#

Allez au charbon

pastel dust
#

Oe ;-;

rocky oar
slim anvil
#

ouais mais meme en projet perso

#

enfin je veux dire que y a une regex limite inévitable si tu as un système de login

#

c’est celle de l’email

past nimbus
#

Il a de forte chance qu'il utilise des regex pour la validation de ces inputs front/api sans le savoir au travers d'une lib

slim anvil
#

ouais pas faux

#

t’es vraiment la voix de la raison scylla je t’aime

past nimbus
#

😏

rose isle
# past nimbus 😏

Si ca se trouve son site est entierement dans index.js, et il récupere ses valeurs direct depuis req.body.json, pour les concaténer au sql 🥴

floral bolt
#

le probleme de cap c'est que souvent tu acceptes un projet ou tu connais pas la language, du coup tu te debrouilles comme un grand

slim anvil
#

le problème de capgemini

#

c’est capgemini

rose isle
rocky oar
#

En faite, les RegExp je sais que ça existait, mais comme scylla l'a dit, j'utilise des lib qui valide automatiquement suivant le type d'input que je veux avoir, du coup j'en ai jamais trop eu l'utilité de le faire à la main, et comme je ne l'ai jamais fais à la main, jamais appris en cour, et jamais appliqué en entreprise, bah ... comment tu veux que je pense à les utiliser ? 🤣

Bon certes c'est mon boulot de me renseigner sur les bests practices et je ne l'ai pas fais KappaCringe

#

Mais maintenant que je sais réellement c'est quoi les RegExp, je ne risque plus de passer à côter xD

#

En plus, c'est moins verbeux que ce que je pensais, je me suis tapé la doc MDN dessus, j'ai tout compris

still scroll
#

Bonsoir,

J'ai transférer les fichiers de mon bot discord sur un hébérgeur et il savère que ça me fait cette erreur que je n'avais pas:

Error: /home/container/node_modules/canvas/build/Release/canvas.node: invalid ELF header

Je voudrais savoir si quelqu'un pourrais m'aidé

Merci d'avance

#

( Je l'avais pas en locale )

late drift
#

sin on tu peux essayer de supprimer le dossier node_modules & faire la commande npm install pour les avoir dans la version de ton hébérgeur.
Certains modules ne sont pas les mêmes entre windows, mac & linux

still scroll
#

Mais je ne sais pas si sa marche comme cela

oak turret
#

non

#

tu dois mettre juste les packages en +, pas la commande

still scroll
oak turret
#

mh je crois oui

#

t'as déjà réinstaller le node_modules ?

still scroll
#

Nop

#

mais je sais pas comment faire depuis ptero

oak turret
#

tu peux le supprimer simplement

still scroll
#

Sa à tous réinstaller mais sa crash quand même

oak turret
#

t'as mis quoi en startup ?

still scroll
oak turret
#

fais voir l'archi de ton bot ?

#

et le fichier que t'as mis pour allumé le bot sur ptero

still scroll
#

Et le fichier c'est le index

plain raven
#

bonjour à tous, discord.js n'est pas mon fort et j'ai voulu faire une clear commande, le seul problème est que cette commande ne fonctionne pas sur les messages des webhooks, quelqu'un pourrais m'aider a faire les modifications nécessaire pour que la commande fonctionne aussi bien sur les utilisateurs que sur les webhooks :

const { SlashCommandBuilder } = require("discord.js");

module.exports = {
  data: new SlashCommandBuilder()
    .setName("clear")
    .setDescription("Clear some messages")
    .addIntegerOption((option) =>
      option
        .setName("amount")
        .setDescription("Le nombre de messages à supprimer")
        .setRequired(true)
    ),

  async execute(interaction, client) {
    try {
      const amount = interaction.options.getInteger("amount");

      if (isNaN(amount)) {
        return interaction.reply("Veuillez fournir un nombre valide de messages à supprimer.");
      } else if (amount < 1 || amount > 100) {
        return interaction.reply("Le nombre de messages à supprimer doit être compris entre 1 et 100.");
      }

      await interaction.channel.bulkDelete(amount, true).catch((error) => {
        console.error(error);
        interaction.reply("Une erreur s'est produite lors de la suppression des messages.");
      });

      interaction.reply(`**${amount}** messages ont été supprimés avec succès.`);
    } catch (err) {
      console.error(err);
      interaction.reply("Une erreur s'est produite lors de la commande.");
    }
  },
};
still scroll
#

Malheuresement le bulkdelete n'est pas capable de supprimé les messages provenant d'un webhook par contre cette alternative existe

#

Il te suffit d'utilisé bulkdelete et de faire le nécessaire pour vérifié si le message vient d'un webhook

#

Sinon j'ai une autre solutions, il y'a aussi le Message.delete()

ça donnerait cela


const { SlashCommandBuilder } = require("discord.js");

module.exports = {
  data: new SlashCommandBuilder()
    .setName("clear")
    .setDescription("Clear some messages")
    .addIntegerOption((option) =>
      option
        .setName("amount")
        .setDescription("Le nombre de messages à supprimer")
        .setRequired(true)
    ),

  async execute(interaction, client) {
    try {
      const amount = interaction.options.getInteger("amount");

      if (isNaN(amount)) {
        return interaction.reply("Veuillez fournir un nombre valide de messages à supprimer.");
      } else if (amount < 1 || amount > 100) {
        return interaction.reply("Le nombre de messages à supprimer doit être compris entre 1 et 100.");
      }

      const messagesToDelete = await interaction.channel.messages.fetch({ limit: amount });
      messagesToDelete.forEach(async (message) => {
        await message.delete();
      });

      interaction.reply(`**${amount}** messages ont été supprimés avec succès.`);
    } catch (err) {
      console.error(err);
      interaction.reply("Une erreur s'est produite lors de la commande.");
    }
  },
};
#

@plain raven , je ne suis pas sûr que sa marche

plain raven
#

ah dommage

#

j'essaierai fin d'après-midi

delicate river
#

Hello, je suis bloqué sur un problème en JS.

Lorsque je clique sur un bouton je viens récupérer des informations dont un champs select contenant plusieurs options comme vous pouvez le voir sur le screen.

Il est bien indiqué length 9, pourtant quand je fais

console.log(villeList.length);

Ca me print 1, une idée ?

#

Du coup, quand je boucle sur ma collection, je ne fais que un seul tour de boucle et ne parcours pas toutes les options...

#

Pareil, si je fais

console.log(villeList.item(1));

Ca me print undefined, je ne comprends pas..

plain raven
still scroll
delicate river
# simple arch montre moi juste la boucle

Voilà

Mais le problème inital est surtout que je ne récupère pas la bonne length et que encore pire quand j'essaie de récup le 2ème élément de ma collection j'ai undefined

simple arch
#

là tu as un if qui va surement retourner qu'un seul element (ou plusieurs peut être mais vu que ça test une valeur parmi des options c'est surement normal que dans le if ne s'execute qu'une seule fois)
essaye de console.info(option) juste apres la ligne for

je viens de tester un length et ça marche
ducoup c'est peut être l'option qui est pété

ça donne quoi si tu log ceci :
JSON.stringify(document.querySelector("#debtor_ville_id_sepa").options)

#

ceci

delicate river
#

Mais j'ai peut-être une piste du coup !

#

(Normal si j'ai plus 9 éléments, j'ai changé de code postal pour essayer)

#

Laisse tomber, c'était une connerie de temps, j'ai ajouté un setTimeout de 500ms et ça fonctionne, c'est pcq j'avais un appel ajax juste avant, tout s'éxec en même temps..

Heureusement je suis pas dev front c'est une cata kappa

Merci de ton aide !

simple arch
#

^^, peut être faire un trigger après l'ajax (d'ailleurs bascule vers du fetch ça sera bien plus agréable)
comme ça tu auras tout qui se suit, car l'appel ajax va parfois dépasser le timeout, qui d'ailleurs ralentis le scripts même si les données sont dispo :s vaut mieux faire une chaine :)

delicate river
#

C'est un vieux projet, pour te dire ça utilise smarty si tu connais mdrr.
Puis le temps que je replace tout les appels ajax, j'en ai pour pas mal de temps, ma mission doit-être terminée avant 18h ce soir, donc autant te dire que ça restera en ajax lol (du moins pour le moment)

Mais je prends carrément l'info, c'est intéressant à savoir ! 😄

simple arch
#

haha :3 lez go

void coyote
wild bramble
#

Salut, j'ai un problème avec mon projet next js
Voici ma structure de fichier :
Cependant, si je tente d'aller dans mon fichier contact sa me dit que le page n'a pas été trouvé

wild bramble
wild bramble
#

C'est bon résolu

floral bolt
#

C’était quoi ?

wild bramble
glass cargo
#

Probablement un problème de cache 😉

misty parcel
#

Salut tout le monde ! J'utilise Nuxt 3 et dans une balise <script> j'ai mis dans un premier temps data:

  data() {
    return {
      currentSlide: 1,
      isPaused: false,
    };
  },

Et puis dans un autre temps methods. J'ai mis une fonction dedans que voici :

changeSlide() {
      if (!this.isPaused) {
        const slideElement = document.getElementById(`s${this.}`) as HTMLInputElement;
        if (slideElement) {
          slideElement.checked = true;
        }
        this.currentSlide = this.currentSlide === 5 ? 1 : this.currentSlide + 1;
      }
    },

Le problème c'est que je n'arrive pas à accéder aux données dans data, voici le message que je reçois :

misty parcel
#

La vie est dure

glass cargo
#

bizarre

neat vale
#

Hello je souhaite faire une web app de jeux de plateau truc assez basique mais je ne m’y connais pas assez bien en backend js bref. Je souhaite savoir c’est quoi le mieux pour commencer… sur quoi je dois me former avant d’attaquer mon projet?

misty parcel
visual sequoia
#

Hey ! Quelqu'un ici a déjà réussi a get un message priver avec un user? Car je sais pas comment get ce message sachant que je stock l'id du message...
Merci d'avance!

rose isle
#

on parle pour un bot? le message priver est entre le bot et l'utilisateur, ou c un message priver entre 2 utilisateurs externe au bot?

#

(l'auto mod a un souci, car si on parle de message priver, le message est rejeté x))

zenith wave
#
# Application de Récupération d'Emplois du Temps ADE (UPPA) 

Cette application vous permets de récupérer vos emplois du temps de l'agenda ADE de l'UPPA (Université de Pau et des Pays de l'Adour) et de les afficher dans un calendrier ou de les ajouter à votre agenda Google.

## Configuration

Avant de commencer à utiliser cette application, assurez-vous de suivre ces étapes de configuration : 

[...]

## Utilisation

Une fois que vous avez configuré votre environement, suivez ces étapes pour utiliser l'application : 

[...]

## Contribution 

Les contributions sont les bienvenues! N'hésitez pas à ouvrir une nouvelle issue ou à proposer des pull request pour améliorer ce projet.

## License

[...]

maintenant ma question dois-je faire une application ou une api et une appli ? et pour le front quelle st le mieux?

onyx wren
#

salut a tous

#

Je code mon nouveau portfolio sous nextjs et j'ai une erreur très étrange en prod, certaines images du site font une erreur "url parameter is valid but upstream response is invalid".
Pourtant tout marche en local et les autres images aussi (identiques à part le chemin).

left forum
#

essaye ça

visual sequoia
charred lake
#

Bonjour, bonjour !
Je débute et je suis curieux dans la création de bot Discord, j'essai d'envoyer un message à l'arrivée d'un utilisateur sur un serveur avec le framework Sheweny.

#

Cependant, impossible d'avoir le message, et je ne comprends pas l'erreur que j'ai pu faire

#
// Import library
import { Event, ShewenyClient } from "sheweny";
import { ChannelType, GuildMember, TextChannel } from "discord.js";

export default class GuildMemberAdd extends Event {
  constructor(client: ShewenyClient) {
    super(client, "guildMemberAdd", {
      once: false,
      description: "Member join the guild",
    });
  }
  async execute(member: GuildMember) {
    console.log("test");
    const channel = this.client.channels.cache.get("");

    if (channel && channel.type === ChannelType.GuildText) {
      try {
        // Envoyez le message dans le canal
        await (channel as TextChannel).send(
          "Bienvenue à notre nouveau membre !"
        );
      } catch (error) {
        console.error("Erreur lors de l'envoi du message :", error);
      }
    }

    console.log("New member");
  }
}
#

Merci pour votre aide !

#

PS : Je précise que je n'ai aucune erreur, et aucun console.log, comme si l'event n'était pas pris en compte

hazy mirage
charred lake
#

J'ai configuré uniquement ça :

intents: ["Guilds", "GuildMessages"],
#

C'est suffisant ?

hazy mirage
#

Tu utilises quelle version de Sheweny la ?

charred lake
#

J'utilise là 4.2.1

hazy mirage
#

Essaye dans le doute d'utiliser les mêmes que moi

#

en majuscule et avec un _ pour le deuxieme

charred lake
#

Impossible, ils ne fonctionnent plus :/

#

Je crois que c'est suite à la nouvelle version de Discord.js

hazy mirage
#

Ah oui ok du coup ça a bien changé depuis

#

Euh ptet que @queen ocean saurait d'ou ça viendrait!

charred lake
#

Parce que, j'ai sûrement fait une erreur, mais où, aucune idée

hazy mirage
#

Y'a moyen d'avoir la déclaration de ton client ?

charred lake
#

Bien sûr !

oak turret
#

Hello, attend 2 secondes j’utilise sheweny v4 aussi, je me co sur mon pc et je check

charred lake
#
// Import library
import { ActivityType, Partials } from "discord.js";
import { ShewenyClient } from "sheweny";

const client = new ShewenyClient({
  intents: [
    "Guilds",
    "GuildMessages",
    "GuildMembers",
    "GuildPresences",
    "GuildVoiceStates",
    "GuildMessageReactions",
  ],
  partials: [
    Partials.Channel,
    Partials.GuildMember,
    Partials.Message,
    Partials.User,
    Partials.Reaction,
  ],
  admins: ["8"],
  presence: {
    status: "online",
    activities: [
      {
        name: "À votre service ! 👂🏼",
        type: ActivityType.Custom,
      },
    ],
  },
  managers: {
    events: {
      directory: "./events",
    },
  },
});

export default client;
oak turret
#

tu as bien activé les intents etc sur ton panel dev?

charred lake
#

Dans quelle partie ?

#

Oh, j'ai trouvé

oak turret
#

Bot

charred lake
#

Effectivement, ce n'est pas activé

oak turret
#

Active les, et regarde

charred lake
#

Je viens d'activer

oak turret
#

si c'est un problème d'intents tu auras l'erreur maintenant

hazy mirage
#

Ah oui c'est vrai c'est relou ce truc

#

Dis nous si ça marche mieux

charred lake
#

Donc, je dois mettre la totalité des tes intents @hazy mirage ?

hazy mirage
#

Non non du tout

#

garde ce que tu as et teste depuis que tu as activé

oak turret
#

C'est en JS mais j'avais fais ça :

#

et j'ai un autre exemple en TS

charred lake
#

J'essai 😉

oak turret
floral bolt
#

j'hesite un peu sur la couleur du bouton

hazy mirage
#

#1036572121683464222 ou #discussion-dev 😉

charred lake
#

Le message s'affiche !

floral bolt
#

ah mince je me suis trompé !

charred lake
#

Merci beaucoup ! Mais alors est-ce les autorisations depuis le panel de Discord, où alors les intents ?

#

Je viens de tester, c'est les deux

oak turret
#

Les deux peuvent y jouer un rôle, normalement si tu as tout activé depuis ton panel dév tu es censé avoir une erreur de Sheweny je dis bien censé fin moi j'ai déjà eu ces erreurs là

charred lake
#

Merci les amis ! 😉

oak turret
#

np, gl pour la suite

charred lake
#

Vous savez quel intent il est nécessaire de renseigner si je souhaite éditer un salon ?

keen narwhal
#

yo les gars, j'aimerai faire en sorte que lorsque la souris passe sur un élément de ma page web, l'élément se lève (pop up) je suis conscient que c'est en utilisant le js que l'on peut créer ce genre d'effets mais je ne sais où aller car quand j'essaye de regarder des documentations ou tutos ils parlent que de pop up "changement de couleur" ou clique pop up, quelqu'un aurait les termes exacts, je ne veux pas de code juste une piste pour pouvoir savoir faire... Bonne soirée !!

keen narwhal
keen narwhal
#

Bonjour !
J'ai créer un auto updater avec anystack mais quand je test (je créer un paquet avec une version X.X.1 puis je modifie quelque truc, je créer un apquet X.X.2) il ne ce passe rien, pas de téléchargement de la mise à jour, rien.
Pouvez vous m'aider ?

index.js

const { app, BrowserWindow, ipcMain  } = require('electron');
const { autoUpdater } = require('electron-updater');
const server = 'https://dist.anystack.sh/v1/electron';
const productId ='MON_PRODUIT_ID'; //J'ai remplacer par mon pproduit id
const url = `${server}/${productId}/releases`;
const path = require('path');

let mainWindow;

function createWindow() {
    mainWindow = new BrowserWindow({
        //Mon code
        }
    });
    mainWindow.loadFile('index.html');

    mainWindow.on('closed', () => {
        mainWindow = null;
    });
  
}

autoUpdater.setFeedURL({
    url: url,
    serverType: 'json',
    provider: "generic",
    useMultipleRangeRequest: false
})

app.on('ready', () => {
    createWindow();
});

app.on('ready', function()  {
    autoUpdater.checkForUpdates()
})

//J'ai pas mis la suite de mon code car elle sert à rien.
nocturne gull
#

Salut 👋
Quelqu'un connaît un bon framework/handler discord.js ? J'utilisais sheweny à l'époque

queen ocean
#

C'est vraiment propre

nocturne gull
#

Ah ouais ? Faudrais que j'aille voir, mais selon toi c'est le "nouveau" sheweny ?

queen ocean
#

Mais oui si tu aimais faire tes bots avec sheweny, tu vas kiffer sapphire je pense

nocturne gull
#

Ok ok je vais check ça alors

queen ocean
#

si ta des questions dessus n'hésite pas

nocturne gull
charred lake
#

Bonjour, bonjour

#

Vous auriez une idée de pourquoi je ne peux pas utiliser le row ?

// Publish message for join team
      const joinTeamMessage = new EmbedBuilder()
        .setColor("#424549")
        .setTitle("Nous agrandissons notre équipe ! 👨🏼‍💻")
        .setDescription(
          ""
        );
      // Create button for join team
      const joinTeamButton = new ButtonBuilder().setLabel("Postuler");
      // Creation action row
      const row = new ActionRowBuilder().addComponents(joinTeamButton);

      if (joinTeamChannel && joinTeamChannel.type === ChannelType.GuildText) {
        await (joinTeamChannel as TextChannel).send({
          embeds: [joinTeamMessage],
          components: [row],
        });
      }
#
Type 'ActionRowBuilder<AnyComponentBuilder>' is not assignable to type 'APIActionRowComponent<APIMessageActionRowComponent> | ```
#

J'ai pourtant suivi la documentation, et l'erreur je n'arrive pas à la comprendre par rapport aux éléments que je peux avoir

charred lake
#

J'ai réussi à m'en sortir seul :p

charred lake
#

J'en ai un autre cas de figure un peu similaire

#

Impossible d'afficher un modal :

const modal = new ModalBuilder().setTitle("Test").setCustomId("test");
button.showModal(modal);
#

J'ai du mal à comprendre les méthodes pour retourner des affichages aux utilisateurs

#

Ah j'ai trouvé. Je renseignais mal mes informations et j'utilisais mal les ajouts de composant

visual sequoia
# charred lake Impossible d'afficher un modal : ```js const modal = new ModalBuilder().setTitl...

En gros un modal sa resemble a sa:

    const modal = new ModalBuilder()
        .setCustomId('inspector_sendReportModal')
        .setTitle(language.getSentence("inspector", 'modal_title'))

    const memberInput = new TextInputBuilder()
        .setCustomId('inspector_sendReport_member')
        .setLabel(language.getSentence("inspector", 'modal_member_title'))
        .setStyle(TextInputStyle.Short)
        .setPlaceholder(language.getSentence("inspector", 'modal_member_desc'))
        .setRequired(true)
        .setMaxLength(1024);

    const reasonInput = new TextInputBuilder()
        .setCustomId('inspector_sendReport_reason')
        .setLabel(language.getSentence("inspector", 'modal_reason_title'))
        .setStyle(TextInputStyle.Paragraph)
        .setPlaceholder(language.getSentence("inspector", 'modal_reason_desc'))
        .setRequired(true)
        .setMinLength(50)
        .setMaxLength(1024);

    const proofInput = new TextInputBuilder()
        .setCustomId('inspector_sendReport_proof')
        .setLabel(language.getSentence("inspector", 'modal_proof_title'))
        .setStyle(TextInputStyle.Paragraph)
        .setPlaceholder(language.getSentence("inspector", 'modal_proof_desc'))
        .setRequired(true)
        .setMaxLength(1024);

    const firstActionRow = new ActionRowBuilder().addComponents(memberInput);
    const secondActionRow = new ActionRowBuilder().addComponents(reasonInput);
    const thirdActionRow = new ActionRowBuilder().addComponents(proofInput);

    modal.addComponents(firstActionRow, secondActionRow, thirdActionRow);

    await interaction.showModal(modal);
charred lake
#

Effectivement @visual sequoia
C'est ce que j'avais vu sur la documentation, mais la partie :

const thirdActionRow = new ActionRowBuilder().addComponents(proofInput);
modal.addComponents(firstActionRow, secondActionRow, thirdActionRow);

Ne fonctionnait pas, j'ai du traduire ça par :

components: [
        {
          type: ComponentType.ActionRow,
          components: [whyInput],
        },
]```
Et désormais ça fonctionne bien mieux. 🙂
visual sequoia
woven cosmos
#

Bonjour

#

Est-ce que vous avez une méthode pour régler mon problème :
En gros un script se lance au début du site qui affecte des éléments html mais avec une mauvaise connexion il se lance alors que tout le html n'est pas là ce qui donne un rendu buger un peu, j'aimerais un moyen pour "détecter" que ça ne se soit pas bien passé puis relancer le script

#

Ou une autre méthode que vous avez

#

Merci

keen narwhal
#

Celui qui sait utiliser quick.db ping moi stp

#

j'ai besoin d'aide

visual sequoia
keen narwhal
visual sequoia
keen narwhal
#

Bon c’est un peu galère avce le pc éteint mdrr mais attend 2s j’avais écrit qlq part

spare trail
#

Holà, j'aimerais savoir si il est possible qu'un bot A puisse exécuter les commandes d'un bot B
Et si oui, comment ?

Je recherche ça depuis plusieurs heures mais au final je n'ai pas trouvé de façon pour que le bot utilise la commande au même titre qu'un utilisateur 😕

slim anvil
#

pour eviter le spam ou les auto actions

spare trail
#

Ça a giga pas répondu à ma question notlikethis

slim anvil
#

bah du coup si

#

uniquement sur les bots qui n'ont pas ce check

#

donc tres peu je suppose lol

versed storm
#

Les bots Discord fonctionnent principalement en faisant des appels APIs
Si les deux bots sont les tiens :
Pour utiliser le bot B depuis le bot A, il faut faire des requêtes APIs à destination du bot B en utilisant une lib comme axios ou fetch avec son token

Si le bot B n'est pas à toi, il est très probable que ça ne soit pas possible, ni par un appel API, ni via le chat

spare trail
#

Donc j'peux pas simplement faire en sorte que le bot A fasse /user et que le bot B l'utilise en gros

versed storm
#

Que le bot A fasse un simple /user, une commande quoi, ça revient à utiliser le chat de Discord en tant qu'utilisateur

#

Tant que les deux bots sont à toi c'est faisable

spare trail
#

J'vois

#

Thx des infos du coup

charred bone
#

Salut j'ai un petit soucis avec un bot Discord que j'essaye de créer. Je pense que ce n'est pas grand chose mais lorsque que je tape une commande censée afficher une réponse dans le chat, la réponse est affichée 2 fois d'affilée ^^ Quelqu'un aurait les yeux pour me montrer mon erreur ? xD

#
exports.run = (client, message, args) => {
    var Discord = require("discord.js");

      roll = Math.floor((Math.random() * 100) + 1);

      if(roll > 50) {
        commentary = "Ca passe !";
      } else {
        commentary = "Dommage...";
      }

      const embed = new Discord.MessageEmbed()
        .setTitle(message.author.username + " a fait un roll de: " + roll)
        .setDescription(commentary)
        .setColor("RANDOM")
        .setFooter("AKLRP");
        message.channel.send({ embed: embed });
    
  };
queen ocean
#

ta pas le bot de lancer 2 fois ? Harold

charred bone
#

Ah

#

Bon hum...

#

Je m'eclipse

#

xD

#

Merci beaucoup xD

queen ocean
#

xD

charred bone
#

Salut ! J'ai à nouveau besoin d'un petit coup de pouce, j'essaye de récupérer l'auteur d'un message lorsqu'une réaction est faite sur ce message. Voici le code j'espère que cette erreur n'est pas aussi futile que la précédente xD Merci d'avance !

#

  // Événement de réaction ajoutée
  client.on('messageReactionAdd', (reaction, user, message) => {
    console.log(reaction);

    // if(reaction.message.user == "1154344238243393556") {

    //   if (reaction.emoji.name === ":x:") {
    //     // console.log("second check");
    //     reaction.message.delete()
    //   }

    // } else {

    // }
  });```
#

Voici le retour du bot:

#

La valeur est vide

slim anvil
#

dans ton cas les 2 sont bons

charred bone
#

Merci beaucoup pour ta réponse mais la valeur author reste null et je ne comprends pas pourquoi...

#
    console.log(reaction.message.author);

    // if(reaction.message.user == "1154344238243393556") {

    //   if (reaction.emoji.name === ":x:") {
    //     // console.log("second check");
    //     reaction.message.delete()
    //   }

    // } else {

    // }
  });```
charred lake
#

Tu récupères 3 paramètres :

client.on('messageReactionAdd', (reaction, author, message) => {

Pourquoi ne pas faire un console log de author ? Sans rentrer dans reaction ?

charred bone
#

Yes j'ai essayé mais comme je mis attendais, author seul me retourne l'auteur de la réaction et non l'auteur du message qui a reçu la réaction

#

Tandis que reaction est censé me retourner aussi l'auteur du message qui a reçu la réaction mais pour une raison que j'ignore encore, la valeur est toujours null quoi que je fasse...

charred lake
#

C'est étonnant

violet knot
#

message.author

charred bone
#

La valeur est undefined

violet knot
#

C’est quoi le contenue de message ?

charred bone
#

Du texte principalement

queen ocean
charred bone
#

Oui

#

C'est le soucis xD

violet knot
#

Aïe

queen ocean
#

Ta activé quoi comme intents et partials

charred bone
queen ocean
#

Console log reaction.partial

charred bone
#

Ca me retourne true

queen ocean
#

Ouais voilà donc ta pas toutes les donnés

charred bone
#

Ah

queen ocean
charred bone
#

Non pourquoi ? xD

pine vessel
#

Bonjour à vous !

Je suis en train de débuter le JavaScript, je suis sur un mini-projet. Ce mini-projet consiste à mettre en place une solution de "Calendrier de l'avent" pour noël. Chaque jour, un maximum de 1 gagnant serait désigner. Chaque jour, le tableau des participants est réinitialiser via un autre script qui delete toutes les rows de ce tableau. Bien sur les gagnants sont enregistrés dans un autre tableau.

Je fonctionne avec Google Form, ainsi que Google Sheet, tous deux reliés à un script sur Google Apps Script. Dans mon code, il manque une vérification, celle qui va vérifier si un gagnant a déjà été désigné. Si un gagnant a déjà été désigné, tous les futurs participants (après le gagnant déjà désigné) seront notés comme perdant. Auriez-vous une idée de comment je peux implémenter et intégré ceci à mon code ?

Voici un petit exemple du tableau des participants et je vous joins également mon code.

function chooseWinner() {
    const ss = SpreadsheetApp.openById('id_de_la_sheet');
    const participantsSheet = ss.getSheetByName('Participants');
    const winnersSheet = ss.getSheetByName('Gagnants');

    const participantsData = participantsSheet.getDataRange().getValues();

    let winners = [];
    let winnerSelected = false;

    for (let index = 1; index < participantsData.length; index++) {
        const row = participantsData[index];
        
        const status = row[4];

        if (status !== 'Gagnant' && status !== 'Perdant') {
            if (winnerSelected) {
                participantsSheet.getRange(index + 1, 5).setValue('Perdant');
            } else {
                const hasWon = Math.random() < 0.5;
                participantsSheet.getRange(index + 1, 5).setValue(hasWon ? 'Gagnant' : 'Perdant');
                
                if (hasWon) {
                    winnersSheet.appendRow([new Date(), row[1], row[2], row[3]]);
                    winnerSelected = true;
                }
            }
        }
    }
}```
queen ocean
#

Bah il faut

charred bone
#

Ah je vais regarder merci

charred lake
pine vessel
charred lake
#

C'est jouable alors.
Récupère ton fichier, parse le, et vérifie si l'e-mail du gagnant est dans la liste de ton nouveau Sheet

pine vessel
#

Bonne idée, j'y avais pas pensé

charred lake
#

Si tu l'as fait pour les autres fichiers, tu devrais pouvoir t'en sortir sans problème 😉

charred bone
pine vessel
#

t'as une idée ?

charred lake
#

Quand tu obtiens ton résultat, enregistre le dans un tableau. Et ensuite à chaque fois que tu vas tirer au sort, tu vérifies si le nom existe déjà dans le tableau, si c'est le cas c'est que la personne a déjà été tirée au sort 🙂

#

Et donc tu relances ta boucle

pine vessel
#

alors attend, du coup j'ai mon tableau participants dans lequel sont enregistré les participants et ils sont annotés gagnants/perdants etc. Le script viendra vérifier si une personne à déjà gagnée, si elle a déjà été tirée au sort et qu'elle est gagnante, je continue ma boucle pour afficher le reste en perdant ?

pine vessel
charred lake
#

Non, rajoute simplement un tableau caché, dans lequel tu stockes tous les participants que tu as tiré au sort pour un évènement en particulier 🙂

pine vessel
#

Et comment je peux faire pour limiter le nombre de gagnant à 1 sur ma feuille participants ?

charred lake
#

Boucle qu'une seule fois ? 🙂

#

Tu veux un seul gagnant sur ta feuille ?

pine vessel
#

Yes c'est ça, je veux faire en sorte que imaginons sur 20 participations, ils sont tous perdants, le 21ème joue, il gagne et les suivants sont perdants (par exemple)

#

Et chaque jour la feuille se reset (déjà mit en place)

charred lake
#

Tu réfléchis à l'envers 😉

#

Pense plutôt de cette manière : Tu as 20 joueurs, tu choisis au hasard un jour, il est gagnant, tu n'as pas la notion de perdant

#

Tu as jute la notion de gagnant, car ce qui t'intéresse c'est uniquement le gagnant

pine vessel
#

Oui mais après derrière j'irai afficher les résultats perdants/gagnants sur un site en front à partir d'une API

#

du coup il me faut forcément un résultat gagnant/perdant

woven cosmos
#

Bonchour

#

J'arrive pas a exporter une varriable

#

Foutu react !

#

J'ai besoin d'aide

#

j'aimerais export le searchString

export default function NavBar(props) {

  const [searchString, setSearchString] = useState('$£§');

    const getLatest = async() => {
        
        }
}
#

si je la met au dessus ça me dis ça

pine vessel
#

tu veux exporter "searchString" vers un autre fichier ?

woven cosmos
#

oui

#

si je rajoute export ça marche pas nn plus

pine vessel
#

tu veux l'exporter vers ou ? ton App.js ?

woven cosmos
#

non dans un autre composant

shell cedar
#

Okay, donc si j'ai bien compris tu veux "exporter" ton state vers un autre composant ? Le composant est il "enfant" de ton composant actuel ?

woven cosmos
#

Ils sont au même niveau

shell cedar
#

Tu vas l'appeler ou ton composant ?

woven cosmos
#

Comment ça ?

pine vessel
#

en gros il demande

woven cosmos
#

Mon app.js ?

pine vessel
#

ou est-ce que tu veux utiliser ton "searchString"

#

ton autre composant ou tu veux l'utiliser

woven cosmos
#

Bah dans un autre composant ?

pine vessel
#

Genre par exemple, la ton searchString est dans ton composant Navbar ?

#

tu veux l'utiliser dans quel autre composant, son nom ?

woven cosmos
#

Je suis en cours je dois vesqui le prof déso je rep pas instant

shell cedar
#

Tkt 🙂

pine vessel
#

pas de soucis !

woven cosmos
#

déjà il sont pas au mm niveau jmetais tromper

#

je veux l'export pour l'utiliser dans NavBarUtils

shell cedar
#

Ton navBarUtils, tu l'utilise dans ton NavBar ?

woven cosmos
#

Nop

#

Quoique

shell cedar
#

?

woven cosmos
#

si ici

shell cedar
#

Je vais galèrer a te l'expliquer par message mais yolo j'me lance

slim anvil
#

salut, c’est pas le but d’un state d’être export dans un autre fichier

#

ce que tu peux faire en revanche c’est de créer un context par exemple ou un custom hook ou tu stockeras ta valeur pour y avoir accès dans toute ton app

ou alors si jamais le fichier que tu. eux est pas trop deep ou quoi, juste remonter la déclaration de ton state plus haut et de le passer en props, mais uniquement si les components ne sont pas trop éloignés quoi

woven cosmos
woven cosmos
#

Et je peux pas export là vu qu'elle est dans un une fonction export

#

Et ma fonction export a aussi besoin de searchString

#

Mon cour est bientôt finis je pourrais envoyer des screen après si c'est pas clair

woven cosmos
#

Je vais voir ça mrc

woven cosmos
#

;-;

#

Pas grave

#

Jvais faire a l'ancienne

slim anvil
#

??

#

je viens de regarder tes screens, ton navbar utile contient que des fonctions liés à ton component navbar?

woven cosmos
#

oui

#

mais c bon j'ai réussi par un autre moyen tkt

#

normalement enft cette interval est dans mon navBarUtils justement

slim anvil
#

une boucle dans une boucle c’est pas terrible

charred lake
#

Ce n'est pas une boucle dans une boucle

#

Puis que ton tableau est fait, et est construit, ensuite tu as juste à demander à JS d'aller fouiller avec find, dans le tableau

slim anvil
slim anvil
woven cosmos
glass cargo
#

Bonjour,
est-ce que quelqu'un saurait pourquoi j'ai une tonne d'erreurs qui viennent toutes de discord.js ? J'ai déjà essayé de le réinstaller, mais rien n'y fait.

kind holly
#

Bonjour, j’ai un bot Discord qui s’exécute parfaitement seulement quand j’écris une commande il ne répond pas j’ai vraiment besoin d’aide

kind holly
cursive sail
kind holly
#

Quelle est le problème dans ce code

pine vessel
#

Si tu fais tout avec ChatGPT logique tu comprends pas l'erreur

kind holly
#

Cherche quelqu’un pour m’aider sur un projet

worn garnet
#

ho un token 👀

grave bronze
#

🤣

kind holly
worn garnet
#

je t'avoue jai vraiment pas le temps en ce moment

idle flare
kind holly
worn garnet
#

et puis cest encore pour faire un bot ... vu et revue

idle flare
worn garnet
#

cest toi qui l'a fait ou tu as trouver un repo ? car lerreur ne vient pas vraiment du code il me semble

kind holly
#

Vu que les codes tout fait sur github ne marche pas . Ou alors je sais pas les utiliser

idle flare
#

et puis un moyen très simple de savoir comment corriger l'erreur c'est de copier coller l'erreur qu'il t'affiche et de le rechercher sur google

#

il y a peut être des personnes à qui c'est arrivée

worn garnet
#

oui donc cest bien ce que je me disais 👀. quand vous prenez des répo, prenez des récent au moins ^^

kind holly
worn garnet
#

apres je me demande si cest ton token (jaime pas l'API de discord) mais il me semble que tu as un petit probleme sur le fait de te login. 👀

kind holly
worn garnet
#

apres ta juste a cherché ton erreur sur internet, ce seras bien mieux expliqué. mais jai l'impression que tu écrit un code ancien sur une nouvelle version de l'API (ou inverse)

#

tu n'as jamais fait des prog ?

kind holly
worn garnet
#

commence a apprendre js avant d'utiliser des librairies propriétaire.

pine vessel
#

Je compte me créer un portfolio, vous pensez que Strapi peut-être un bon élément pour la gestion de mon contenu ?

pine vessel
#

Super merci

worn garnet
#

utile si tu as un blog surtout 👀. sa me donne envie de l'essayer !

pine vessel
kind holly
#

quelqu'un sait comment donner toutes les permissions a un bot en js avec discord.js 14.13.0

#

J'en ai marre...

daring raptor
kind holly
daring raptor
#

Bah ça dépend de ton lien d'invite s'il a application.commands

rancid willow
#

Salut, mes compétences sont bonnes mais sans plus, je dev de temps en temps pour le bot de mon serv et un événnement arrive bientôt (des worlds) alors j'aimerais bien créer un système de paris (comme les paris sportifs) mais fictif avec le bot... Ainsi les membres pourraient parier sur les matchs qui leurs seront proposés, cependant je ne sais pas trop comment m'y prendre si quelqu'un a des pistes pour moi, je suis en djs 14 :) Merci à vous !

strange thicket
#

Salut, je développe une application React Native, j'ai besoin de stocker de manière sécurisée dans le code. À l'heure actuelle, elle est dans un .env et instancié dans le Secure Storage au démarrage. Sauf que le soucis c'est que dans le build, elle va apparaître en clair à un moment donné. Avez-vous une solution pour la masquer et ainsi ne pas prendre le risque de dévoiler ma clés d'api

versed storm
#

Hello,
En utilisant une env variable et en la récupérant correctement dans ton code, elle n'est pas supposée apparaître en clair, c'est le but
Je ne connais pas très bien react, mais une variable d'env par définition est build sur la machine, ton front react-native est accessible mais pas ses variables d'env puisque stockées directement sur la machine serveur
https://blog.logrocket.com/understanding-react-native-env-variables/

What are env variables, and why are they useful in React Native? Learn how to create and use env variables in React Native.

slim anvil
#

si tu parles de clé public que tu exposes sur des call API ou de lib comme stripe etc, clé public en gros ça craint rien
mais si tu parles de clés d’auth, tu devrais faire ton premier call sur ton api, qui elle ensuite fera le call final avec la clé, elle sera donc pas exposé

merry inlet
#

bon ct du test mon projet commence enfin a resembler a qq chose meme si pour l'instant c'est juste le coté whaaaaaaaaaaa j'arrive a enfin récupérer mes data via mon api dont l'auth est valid car j'arrive a me connecter et a choisir mon serveurrrrrrrrr yessssssss bon je vais dormir mais j suis content d'enfin avoir un truc qui resemble a quelque chose vue le temps que je passe sur le projet

grave bronze
#

Bonjour, j'essaie de faire un site avec Express.js, EJS et Sequelize. Quand je commence à faire mon site la page main.ejs n'est pas affichée (cf : capture d'écran) mais seulement la page spécifique. Sauriez vous pourquoi ? Je pense que cela provient du fichier app.ts (seulement les routes) : ```ts
// Configuration d'EJS comme moteur de modèle
app.use(express.static(path.join(__dirname, 'views')));
app.set('view engine', 'ejs');

// Middleware pour servir des fichiers statiques
app.use(express.static(path.join(__dirname, 'public')));

// Configuration des routes
app.get('/', (req: Request, res: Response) => {
res.render('home', {
title: 'Smoke²',
});
});
app.get('/download', (req: Request, res: Response) => {
res.render('download', {
title: 'Download',
});
});
app.get('/wiki', (req: Request, res: Response) => {
res.render('wiki', {
title: 'Wiki',
});
});
app.get('/help', (req: Request, res: Response) => {
res.render('help', {
title: 'Aide',
});
});
app.get('/news', (req: Request, res: Response) => {
res.render('news', {
title: 'Nouvelles',
});
});

app.get('*', (req: Request, res: Response) => {
res.render('404', {
title: '404',
});
});Ou alors cela proviendrai de main.ejs :html
<!DOCTYPE html>
<html lang="fr">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/css/style.css">
<link rel="shortcut icon" href="/img/smallLogo.jpg" type="image/x-icon">
<title><%= title %></title>
</head>

<body>
<header>
<h1>NavBar</h1>
</header>
<main>
<%- body %> <!-- Contenu de la page spécifique -->
</main>
<footer>
<p>Je suis le footer</p>
</footer>
<script src="/js/main.js"></script>
</body>

</html>``` Si je ne vous ai pas envoyé le bon fichier d'où peut provenir l'erreur dites le moi. Merci d'avance pour votre réponse !

red torrent
grave bronze
#

Ca change quoi ?

red torrent
#

si je ne m'abuse ton dossier views contient des templates ejs qui ne devraient pas être rendu public

grave bronze
#

Mon problème peut venir de là ?

red torrent
#

s'il y a un fichier index dans ton dossier views c'est possible

#

ou s'il y en a un dans ton dossier public

grave bronze
#

Il y a un index dans views

red torrent
#

essaie de retirer la ligne app.use(express.static(path.join(__dirname, 'views'))); de ton code

grave bronze
#

Ok

#

Ca ne change rien

grave bronze
#

Quelqu'un a une idée d'où provient mon problème ?

#

@red torrent Tu penses que le problème peut venir de l'emplacement de index.ejs ? Là il est à la racine de views

merry inlet
#

Petite question, je fait un bot discord et je doit vérifier qu'un utilisateur est admin depuis une intéraction, selement permissions.has('ADMINISTRATOR') return true si admin et sinon il créer une erreur, voici mon code actuelle comment je pourais l'améliorer

try {
            if (interaction.member.permissions.has('ADMINISTRATOR')) {
                console.log(`${interaction.member.user.tag} est un administrateur.`);
            }
        } catch (error) {
            console.log(`${interaction.member.user.tag} n'est pas un administrateur.`);
        }
simple arch
#

tu peux montrer l'erreur lorsque pas admin ?

#

avec dans le catch :
console.log(error)
console.log(interation.member)
console.log(interation.member.permissions)
pour voir ce qui déconne

drowsy ocean
whole drift
#

Bonjour, j'ai débuter VueJs et j'aurais voulu savoir si quelqu'un pourrai m'aiguiller sir mon erreur,
J'essaye d'importer un composant mais j'ai cette erreur, quelqu'un sais pourquoi j'ai ceci qui reste en rouge?
Sur ma page tout s'affiche mais le rouge me laisse perplexe.
Photo en dessous

#

app.vue

merry inlet
# simple arch tu peux montrer l'erreur lorsque pas admin ?
RangeError [BitFieldInvalid]: Invalid bitfield flag or number: ADMINISTRATOR.
    at Function.resolve (/root/gmod-integration/bot/node_modules/discord.js/src/util/BitField.js:172:11)
    at PermissionsBitField.has (/root/gmod-integration/bot/node_modules/discord.js/src/util/BitField.js:60:28)
    at PermissionsBitField.has (/root/gmod-integration/bot/node_modules/discord.js/src/util/PermissionsBitField.js:92:82)
    at Query.<anonymous> (/root/gmod-integration/bot/commands/utility/link.js:34:64)
    at Query.<anonymous> (/root/node_modules/mysql/lib/Connection.js:526:10)
    at Query._callback (/root/node_modules/mysql/lib/Connection.js:488:16)
    at Query.Sequence.end (/root/node_modules/mysql/lib/protocol/sequences/Sequence.js:83:24)
    at Query._handleFinalResultPacket (/root/node_modules/mysql/lib/protocol/sequences/Query.js:149:8)
    at Query.EofPacket (/root/node_modules/mysql/lib/protocol/sequences/Query.js:133:8)
    at Protocol._parsePacket (/root/node_modules/mysql/lib/protocol/Protocol.js:291:23) {
  code: 'BitFieldInvalid'
}
PermissionsBitField { bitfield: 462797862686273n }
simple arch
#

ok et avec les autres consoles ça retourne quoi? (j'ai envoyé 3 lignes de code)

torn fog
whole drift
torn fog
grave bronze
merry inlet
#

Doc

merry inlet
#

pas besoin de +

versed storm
#

Hello,
Pour éviter de compter les utilisateurs plusieurs fois tu peux initialiser un set dans lequel tu vas stocker les utilisateurs

  • Loop sur les guilds
  • Loop sur le nombre d'utilisateurs dans guild
  • Ajoute à ton set l'id de l'utilisateur

En javascript, set est un objet qui contient des données qui ne peuvent exister plus d'une fois, ça va te permettre de stocker tous les IDs utiliseurs sans doublons et récupérer le nombre exact en vérifiant l'attribut size de ton set

delicate river
#

Je viens d'apprendre que js typeof(null) ressortait "object", c'est cool js PepeClown

oak turret
#

Apparamment c'est une erreur de base dans JS, ça a pas été changer pour éviter les régressions d'après ce que j'en sais

delicate river
#

Oueep j'ai regardé sur google, aussi, donc j'ai pas cherché à comprendre, mais je voulais partager l'info, pour ceux qui savait pas, p'tit fun fact du jour

leaden prism
#

hey, je chercher à faire une site pour référencer tous mes liens en react. J'ai la base du site sauf que je n'arrive pas à ajouter mes liens car voici comment sont structurée les données :

let cat = [
  {
    name: "Google",
    sites: [
      { name: "Google Search", url: "https://www.google.com" },
      { name: "Gmail", url: "https://mail.google.com" },
      { name: "Google News", url: "https://news.google.com" },
    ],
  },
  {
    name: "Facebook",
    sites: [
      { name: "Facebook Homepage", url: "https://www.facebook.com" },
      { name: "Facebook Messenger", url: "https://www.messenger.com" },
    ],
  },
  {
    name: "Twitter",
    sites: [
      { name: "Twitter Homepage", url: "https://twitter.com" },
      { name: "TweetDeck", url: "https://tweetdeck.twitter.com" },
    ],
  },
];```

Mon App. js : https://pastebin.com/xnY3xiNA
Mon AddForm.js ; https://pastebin.com/tbEpH9nC

Merci beaucoup à ceux qui prendront le temps de m'aider 💗
meager flax
#

Bonjour, j’essaie d’importer le module React mais cela me sort l’erreur: Cannot Use Import Statement Outside a module

#

Du coup je comprend l’erreur, mais comment la régler??? Si quelqu’un a une idee?

fervent wasp
# meager flax Bonjour, j’essaie d’importer le module React mais cela me sort l’erreur: Cannot ...

Salut, quand c'est comme ça tu as deux solution :

  • Installer une ancienne version du package qui utilisait encore le système de "require" (Je te déconseille)
  • Passer tout tes require sous forme de import (Chiant mais le mieux pour toi)
    Pour ça tu dois remplacer tout tes require en import, et aller dans ton fichier package.json et ajouter cette ligne là :
{
  // ...
  "type": "module",
  // ...
}
pine vessel
#

saluuut ! je mets en place un calendrier de l'avent pour un mini-projet (pour noel) et j'ai fonctionné comme ceci :

  • Un formulaire google form qui récupère nom, prénom et email

  • Une feuille de calcul google sheet qui va récupérer les informations sur formulaire

  • Un script Google App Script qui va désigner un seul gagnant unique par journée (Lié à ma feuille de calcul)

  • Un autre script Google App Script qui va clear la feuille des participants chaque jour à minuit (Lié à ma feuille de calcul)

  • Une page web (en développement) qui affichera le calendrier avec une case par jour et que chaque case du jour redirigera vers le formulaire.

Mon but actuel : Je souhaite mettre en place une animation qui va récupérer le statut de l'utilisateur après soumission du formulaire, donc lorsque l'utilisateur envoie le formulaire, il est redirigé vers ma page web et une animation affiche gagnant ou perdant suivant son statut dans la feuille de calcul.

Est-ce possible ?

#

Des petits screens pour vous donner une idée :

simple arch
#

salut, comment tu sais si le joueur est perdant ou gagnant,
et pense-tu que 8 joueurs s'inscrivent un jour, peuvent tous être perdant?

sturdy hatch
#

Bonjour, quand je fais node index.js, rien ne se passe et mon bot ne se met pas en ligne. Je débute

leaden prism
#

ta aucunne erreur dans ta console?

sturdy hatch
#

Nan ça me met ça

#

Mon config.json

leaden prism
#

ta bien fait npm discord.js?

sturdy hatch
#

Nan, je viens de le faire et :

J'avais déjà fait npm init et npm i discord --save avant

leaden prism
#

oe c npm i chui bete

#

essaye de remplacer par ```js
const { Client, Events, GatewayIntentBits } = require('discord.js');

et

bot.once(Events.ClientReady, c => {
console.log(Ready! Logged in as ${c.user.tag});
}); ```

#

(pas tt juste les lignes quil faut)

sturdy hatch
#

Okk

#

Je remplaçe ici ?

leaden prism
#

oe t'enleve sa et tu met sa a la place :


bot.once(Events.ClientReady, c => {
    console.log(`Ready! Logged in as ${c.user.tag}`);
}); ```
#

et oulie pas aussi les require

#

que je tai mit aussi

sturdy hatch
#

Ouais mais ça me dit qu'il faut un }

#

Je le met ou ?

sturdy hatch
leaden prism
#

fait voir ton code

sturdy hatch
leaden prism
#

enleve de bot.on("rea.... à {

sturdy hatch
#

Okk

#

C'est fait

leaden prism
#

sa marche?

sturdy hatch
#

Bah ça me met pareil

#

Quand je fais node index.js

leaden prism
#

🤔

sturdy hatch
#

Les intents c'est un truc que je peux trouver sur le discord developer portal ?

leaden prism
#

essaye sa new Client({ intents: [GatewayIntentBits.Guilds] });

#

pour les intents

sturdy hatch
#

J'ai copié un code déjà fait

leaden prism
#

oe c sa le prblm

#

le mieux c que t'essaye de faire par toi meme et d'apprendre

#

c vrm bien sa stv

sturdy hatch
#

Ok mais juste je ne sais pas où trouver les intents

sturdy hatch
#

Pareil

leaden prism
#

bizar

sturdy hatch
#

Faut activer un truc sur le site nan

leaden prism
leaden prism
#

att

sturdy hatch
#

Ok j'ai fait

leaden prism
#

ta active sa

sturdy hatch
sturdy hatch
#

Et toujours pas

leaden prism
leaden prism
sturdy hatch
sturdy hatch
#

C'est bon j'ai trouvé, j'avais juste pas save

sturdy hatch
#

Bonsoir, quand j'effectue une commande ça marche pas

#

La cmd ping

#

Et aussi après avoir lancé le bot, je n'arrive plus à écrire dans la console

grave bronze
#

Si tu veux arrêter le programme fait Ctrl + C

sturdy hatch
#

Ah ok

#

Mais du coup une fois le bot lancé je ne peux plus rien écrire dans le terminal ?

grave bronze
#

Après tu pourras

sturdy hatch
#

Oui mais ça log out mon bot nan

grave bronze
#

Oui

sturdy hatch
#

Ok donc en gros si j'ai mon bot on je peux rien écrire dans le terminal

#

Et sinon pour la cmd tu sais pourquoi ça marche pas ?

#

C'est un truc d'intents nan ?

grave bronze
#

C’est pas impossible

sturdy hatch
#

C'est les trucs GatewayIntents ...

#

J'ai pas mis ça perso

#

Au début j'ai juste ça

grave bronze
#

Ça fait un peu de temps que j’ai pas fait de bot je suis un peu rouillé

sturdy hatch
#

Ok pas de soucis j'attends si qlq d'autre a la solution, merci quand même

#

C'est résolu

cyan iron
cyan iron
spice grail
#

je me permet de poser ça là, j'ai trouvé franchement pas mal pour apprendre:
https://www.youtube.com/watch?v=Q7Hgp6bg0kI&list=PL_cUvD4qzbkwA7WITceoc2_FFjQsBkwX7

This episode covers how to:

  1. Add a Discord Bot to your server
  2. Install Discord.js V14
  3. How to get your Bot Token

Join my Discord for more help: https://discord.gg/Gd5fAEJDQD
Code: https://github.com/stuyy/djs-v14-tutorial

Timestamps:

0:00 Introduction
3:00 Node.js Version Requirement
5:05 Set up project
6:30 Install Discord.js v14
8:10...

▶ Play video
pine vessel
#

Et parmi tout les participants, il y aura forcément une personne tirée gagnante. Il y a aura un total d'environ 50-60 participations par jours

simple arch
#

donc tous les joueurs sont perdant sauf un à la fin de la journée, qui est tiré gagnant c'est ça?

pine vessel
#

alors non, genre par exemple, ils vont joués, et à partir du moment ou un gagnant est désigné, tout les suivants (à partir du moment ou un gagnant est trouvé) seront tirés perdants

#

imaginons, premier jour, le participant numéro 21 gagne, le reste sont perdants. deuxième jour, le participant numéro 12 gagne, le reste sont perdants etc...

#

la je souhaite juste mettre en place un système qui permet aux participants d'être redirigés vers ma page web lorsqu'ils ont remplit le formulaire google et d'afficher gagnant ou perdant à partir de mon google sheet

simple arch
#

ok, je trouve étrange l'algo donc question :
reprenons ton exemple du 21eme participant gagnant et pas les autres
ça veut dire que le numero 19 et 20 sont perdant et 22 23 24 aussi. on est d'accord? oui/non

pine vessel
#

après la première étape pour moi c'est de faire la redirection google en premier, c'est-à-dire, lorsque le formulaire est soumis par l'utilisateur, il est redirigé sur ma page web par exemple (pour commencer)

simple arch
#

ok, donc je continue la question, et là ça va piquer car j'ai un gros warning en tête vu ton algo, voici ma question :
donc s'il y a que 20 participants. pas de 21eme dutout dans la journée, donc ils sont tous perdant?

pine vessel
#

c'est ça xd

#
function chooseWinner() {
    const ss = SpreadsheetApp.openById('id_de_ma_sheet');
    const participantsSheet = ss.getSheetByName('Participants');
    const winnersSheet = ss.getSheetByName('Gagnants');

    const participantsData = participantsSheet.getDataRange().getValues();
    const winnersData = winnersSheet.getDataRange().getValues();

    let winnersEmails = [];

    for (let i = 1; i < winnersData.length; i++) {
        winnersEmails.push(winnersData[i][3]);
    }

    let uniqueWinnerExists = false;
    for (let i = 1; i < participantsData.length; i++) {
        const row = participantsData[i];
        const status = row[4];

        if (status === 'Gagnant') {
            if (uniqueWinnerExists) {
                participantsSheet.getRange(i + 1, 5).setValue('Perdant');
            } else {
                uniqueWinnerExists = true;
            }
        }
    }

    for (let index = 1; index < participantsData.length; index++) {
        const row = participantsData[index];
        const status = row[4];
        const email = row[3];

        if (status !== 'Gagnant' && status !== 'Perdant') {
            const hasWon = !uniqueWinnerExists && Math.random() < 0.5 && winnersEmails.indexOf(email) === -1;

            participantsSheet.getRange(index + 1, 5).setValue(hasWon ? 'Gagnant' : 'Perdant');

            if (hasWon) {
                winnersSheet.appendRow([new Date(), row[1], row[2], row[3]]);
                winnersEmails.push(email);
                uniqueWinnerExists = true;
            }
        }
    }
}```
#

C'est ça mon script google app script

#

après y'a toujours une proba mise en place pour gagner

simple arch
# pine vessel c'est ça xd

ducoup, comme je le disais au début, il existe bien une possibilité de
" 8 joueurs s'inscrivent un jour, peuvent tous être perdant"
(je cite ma premiere phrase)
ducoup bah hm.. donner les gagnants petit à petit n'est pas possible, car risqué, car parfois zero gagnant car pas entire tiré random
il faudrait plutot prévenir en public "aucun gagnant pour le moment" pour que les gens continuent à s'inscrire et encore.. si tu épuise les 180 premiers inscrit et qu'il n'y a toujours pas de gagnnant.. pwah

#

ducoup il faudrait lister les joueurs puis tirer un gagnant au hasard, ça éviterait cette faille d'algo

pine vessel
#

malheureusement je peux pas réellement pallier à ce problème d'algo, on m'a donné cette tâche avec cette demande exacte lol -_-

simple arch
#

ah, bah faut prévenir ton client que c'est une mauvaise idée

#

et s'il veut vraiment, alors tu lache le projet, car faut pas se rendre complice de ce genre de création
les joueurs vont péter un scandale et tu vas t'en prendre plein la tronche :D

#

quand un jeu vidéo est nul, on s'en prend à qui? au directeur, aux commerciaux ou aux devs? :p

pine vessel
#

je vais voir ce que je peux faire !

fair ether
spice grail
simple arch
#

une ancienne version de DISCORD JS
je balance ça comme ça, car le javascript ne change pas de version, ça n'est qu'une suite ininterrompue de version :3

fair ether
keen narwhal
#

Est-ce normal que la commande ne s'affiche pas dans la liste des commandes slash Discord?

rigid imp
# keen narwhal

Montre la partie où tu deploies la commande à l'API discord

grave bronze
keen narwhal
#

Seulement, j'ai encore un problème après avoir tenté de déployer les commandes...

keen narwhal
#

Le troisième screen

#

Invalid Form Body

rigid imp
#

T'as défini ton clientId dans ton config.json ?

#

Et il n'y a pas le guildId de passer en paramètre là

keen narwhal
#

je pense que je l'ai retiré

keen narwhal
#

j'aimerais que l'on puisse utiliser les commandes partout

#

et non sur un serveur en particulier

#

Après avoir rajouté le clientID:

rigid imp
#

Bah tu passes une liste vide en paramètre

rigid imp
#

Je pense que si tu remplis ta liste de commands, ce sera bon

keen narwhal
#

j'ajoute le nom des commandes dans le tableau?

#

ou je crée des fichiers/commandes?

#

sachant que lorsque j'ai fait le test y'avait déjà une commande

rigid imp
#
const { REST, Routes } = require('discord.js');
const { clientId, guildId, token } = require('./config.json');
const fs = require('node:fs');
const path = require('node:path');

const commands = [];
// Grab all the command files from the commands directory you created earlier
const foldersPath = path.join(__dirname, 'commands');
const commandFolders = fs.readdirSync(foldersPath);

for (const folder of commandFolders) {
    // Grab all the command files from the commands directory you created earlier
    const commandsPath = path.join(foldersPath, folder);
    const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
    // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment
    for (const file of commandFiles) {
        const filePath = path.join(commandsPath, file);
        const command = require(filePath);
        if ('data' in command && 'execute' in command) {
            commands.push(command.data.toJSON());
        } else {
            console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
        }
    }
}

// Construct and prepare an instance of the REST module
const rest = new REST().setToken(token);

// and deploy your commands!
(async () => {
    try {
        console.log(`Started refreshing ${commands.length} application (/) commands.`);

        // The put method is used to fully refresh all commands in the guild with the current set
        const data = await rest.put(
            Routes.applicationGuildCommands(clientId, guildId),
            { body: commands },
        );

        console.log(`Successfully reloaded ${data.length} application (/) commands.`);
    } catch (error) {
        // And of course, make sure you catch and log any errors!
        console.error(error);
    }
})();
#

Le plus important c'est de savoir lire la doc

#

Surtout que celle de discordjs est vraiment bien expliqué

#

Là tu vois que ton tableau commands est remplis des datas de chaque commandes

gray cipher
#

Bonsoir, comment je pourrez faire pour que dans le status de mon bot ça affiche le nombre de membres sur tout les serveurs ou est le bot ?

limber sparrow
gray cipher
#

Merci

solid wedge
#

Salut un personne sais comment faire un loader de conText menu djs

#

Voici mon loadContextMenu

const Discord = require("discord.js");
const { REST } = require("@discordjs/rest");
const { Routes } = require("discord.js");

module.exports = async bot => {
    let Menu = [];

    bot.ContextMenus.forEach(async command => {
        
        let ContextMenu = new Discord.ContextMenuCommandBuilder()
            .setName(command.name)
            .setDefaultMemberPermissions(command.permission === "Aucune" ? null : command.permission)
            .setType(command.type);

        Menu.push(ContextMenu);
    });

    const rest = new REST({ version: "10" }).setToken(bot.token);

    await rest.put(Routes.applicationCommands(bot.user.id), { body: Menu });
    console.log("[ContextMenu] Les ContextMenu sont créés avec succès !");
}
#

et loadCommandContextMenu

const fs = require("fs")

module.exports = async bot => {

    fs.readdirSync("./ContextMenu").filter(f => f.endsWith(".js")).forEach(async file => {

        let ContextMenu = require(`../ContextMenu/${file}`)
        if(!ContextMenu.name || typeof ContextMenu.name !== "string") throw new TypeError(`Le menu contextuelle ${file.slice(0, file.length -3)} n'a pas de nom!`)
        bot.ContextMenus.set(ContextMenu.name, ContextMenu)
        console.log(`[ContextMenu] Menu contextuelle ${file} chargée avec succès!`)
    })
}```
#

Sa me donne cette erreur TypeError: Cannot read properties of undefined (reading 'forEach')

simple arch
#

tu peux console log l'element qui essaye de forEach?
exemple
console.log(bot.ContextMenus)
console.log(bot)

pour au moins lire ce qu'il y a avant

#

pareil pour ton
fs.readdirSync("./ContextMenu").filter(f => f.endsWith(".js"))

essaye déjà de console.log
fs.readdirSync("./ContextMenu")
et aussi console.log
fs.readdirSync("./ContextMenu").filter(f => f.endsWith(".js"))

molten lagoon
#

Bonjour,
J'ai récupéré cette "navbar" sur codepen, ce code html utilise des balises "nav", "ul" et "il" avec du javascript pour switch de "formulaire par mail" vers "consultation téléphonique".

Mon problème est le suivant, je ne sais pas comment lier cette navbar au reste du rectangle avec le formulaire que vous pouvez voir. L'objectif serait que lorsqu'une personne click sur "consultation téléphonique" le rectangle change pour faire apparaitre d'autre case à remplir.

Merci d'avance pour votre aide.

slim anvil
#

mais avec de nouveaux elements

#

ou alors tu changes la structure html de ta tabs pour que le contenu soit dedans, et donc au click ca changera aussi le contenu

molten lagoon
misty parcel
#

Salut les gars j'ai un problème de code, j'arrive pas à afficher les données d'une base de données dans une boucle forof (j'utilise Nuxt 3) voici mon code :

La ou je vais chercher la data

const { data: resDataSuccess } = await useFetch(`http://localhost:8000/question/${resData.id}/responses`, {
  method: 'post',
});

L'endpoint de l'API

app.post('/question/:id(\\d+)/responses', async (req, res) => {
        
    const questionId = parseInt(req.params.id, 10);
        if (isNaN(questionId)) {
            res.status(400).send('L\'ID doit être un nombre.');
            return
        }
    
        const responses = await db.responses.findMany({
            where: {
                question_id: questionId
            }
        });

        res.send(responses);
});

Le problème c'est que resDataSuccess ne m'affiche rien

#

Rien du tout

misty parcel
# misty parcel Rien du tout

Ce que je veux dire par la c'est que j'ai mis un {{resDataSuccess}} basique dans mon HTML mais y'a rien qui se met

#

Update : J'ai console log resDataSuccess et j'ai ça

slim anvil
#

.value pour avoir acces a ta data dans ton log

solid wedge
# simple arch tu peux console log l'element qui essaye de forEach? exemple console.log(bot.Con...

Sa me met cette erreur```bot.ContextMenus.set(ContextMenu.name, ContextMenu)
^

TypeError: Cannot read properties of undefined (reading 'set')
at C:\Users\itzzenfant\Desktop\Discord Bot\Loaders\loadCommandContextMenu.js:9:26```

Voici le code

const fs = require("fs")

module.exports = async bot => {

    fs.readdirSync("./ContextMenu").filter(f => f.endsWith(".js")).forEach(async file => {

        let ContextMenu = require(`../ContextMenu/${file}`)
        if(!ContextMenu.name || typeof ContextMenu.name !== "string") throw new TypeError(`Le menu contextuelle ${file.slice(0, file.length -3)} n'a pas de nom!`)
        bot.ContextMenus.set(ContextMenu.name, ContextMenu)
        console.log(`[ContextMenu] Menu contextuelle ${file} chargée avec succès!`)
    })
}```
simple arch
#

tu peux console log, là je ne vois pas de console log avant l'erreur

solid wedge
#

la sa me remais l'erreur du foreatch

#

attend je vais log

solid wedge
#

Sa me met une erreur beaucout trop longue

#

Sa commence comme sa

void spear
#

C'est pas une erreur

solid wedge
#

oui

void spear
#

bot.ContextMenus n'est jamais initialisé

#

Donc cette ligne est incorrecte bot.ContextMenus.set(ContextMenu.name, ContextMenu) car bot.ContextMenus est undefined

solid wedge
#

maos pour tant dans mon loadCommand sa marche

#

Donc je vois pas pour quoi avec les context menu sa marche pas

void spear
#

Parce que tu as défini ta Collection quelque part pour les commandes

#

Tu dois créer une autre Collection pour tes ContextMenus

solid wedge
#

Ah oui mince

#

c'est fais mais il y a encor une erreur bot.menu.forEach(async command => {
^

TypeError: Cannot read properties of undefined (reading 'forEach')

void spear
#

menu n'est pas défini xD

solid wedge
#

Si pourtant

void spear
#

Euh, non

#

bot.menu ce n'est pas menu

solid wedge
#

donc je fais bot.menu = [] ?

#

mais c'est pas possible sa marche pas

misty parcel
void spear
upper flax
#

Bonjour ! j'aimerais savoir si il y'a quelqu'un connait un peut react native et qui pourrais m'aider ?

queen ocean
upper flax
#

ok alors je suis actuellement entrain de développer une app mobile avec react native j'ai fait la parti inscription et connexion et quand je lance mon app j'ai une erreur quand je clique sur mon bouton connexion ou sur mon bouton pour confirmer l'inscription. Pouvez-vous m'aider je ne comprend pas l'erreur ?
Merci d'avance pour votre aide !

slim anvil
#

regarde sur ton api, ça vient peut être de la première ligne avec le check du isNaN

#

mais regarde aussi ta requête dans ton network

#

tu auras les infos nécessaires

misty parcel
#

okay

upper flax
near wave
#

salut a tous ! , jai un soucis avec mon "code" je ne sais pas ou car il est bon (" il manque une partie de code pour q'un bot valide le code en question")

#

et ça c'est le rapport d'erreur

#

jai un peut pres la meme erreur sur tout les éxo

cobalt oyster
#

Salut je suis pas très expérimenté avec prisma et j’ai un problème sur ce schema que je ne comprend pas vraiment

enum HelpRequestType {
  FRENCH
  ENGLISH
  MATH
  PHYSICS
  CHEMISTRY
  BIOLOGY
  HISTORY
  GEOGRAPHY
  ECONOMY
  PHILOSOPHY
  LITERATURE
  ARTS
  MUSIC
  SPORTS
  OTHER
}

enum HelpRequestStatus {
  OPEN
  CLOSED
}

model Guild {
  id        String   @id @default(uuid())
  guildId   String   @unique
  name      String
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
}

model Member {
  id              String        @id @default(uuid())
  userId          String        @unique
  name            String
  createdAt       DateTime      @default(now())
  updatedAt       DateTime      @updatedAt
  guildPrismaId   String
  helpRequests    HelpRequest[]
  helpedRequests  HelpRequest[] @relation("HelpedRequests")
  positiveReviews Int
  responses       Response[]
}

model HelpRequest {
  id                String            @id @default(uuid())
  userId            String
  createdAt         DateTime          @default(now())
  updatedAt         DateTime          @updatedAt
  member            Member            @relation(fields: [memberPrismaId], references: [id])
  memberPrismaId    String
  helpRequestType   HelpRequestType
  helpRequestStatus HelpRequestStatus
  message           String?
  helpedBy          Member[]          @relation("HelpedRequests")
  responses         Response[]
}

model Response {
  id                  String      @id @default(uuid())
  createdAt           DateTime    @default(now())
  updatedAt           DateTime    @updatedAt
  message             String
  answeredBy          Member      @relation(fields: [memberPrismaId], references: [id])
  memberPrismaId      String
  helpRequest         HelpRequest @relation(fields: [helpRequestPrismaId], references: [id])
  helpRequestPrismaId String
}
#

Error: La clé est trop longue. Longueur maximale: 1000
0: sql_schema_connector::apply_migration::migration_step
with step=CreateTable { table_id: TableId(4) }
at schema-engine\connectors\sql-schema-connector\src\apply_migration.rs:21
1: sql_schema_connector::apply_migration::apply_migration
at schema-engine\connectors\sql-schema-connector\src\apply_migration.rs:10
2: schema_core::state::SchemaPush
at schema-engine\core\src\state.rs:436

burnt dune
#

Hello les reufs je suis bloqué en jQuery avec ajax. J'essaie de faire un tableau ou l'on peut modifier les données directement depuis ce dernier Mais j'ai un blocage et aucun message d'erreur malgré plein de vérification.

#

machine_details.php :

/.../
            <?php
            $sql = "SELECT * FROM Composant WHERE IDMachine = :machineId";
            $stmt = $conn->prepare($sql);
            $stmt->bindParam(':machineId', $machineId);
            $stmt->execute();

            $composants = $stmt->fetchAll(PDO::FETCH_ASSOC);

            foreach ($composants as $composant) {
                echo '<tr id="' . $composant['ID'] . '">';
                // Mode édition
                if (isset($_SESSION['shouldModifyList']) && $_SESSION['shouldModifyList'] === true) {
                    echo '<td><input type="text" class="editable-input custom-input-small" value="' . $composant['NomComposant'] . '"></td>';
                    echo '<td><input type="text" class="editable-input custom-input-small" value="' . $composant['NumeroSerie'] . '"></td>';
                    echo '<td><input type="text" class="editable-input custom-input-small" value="' . $composant['Modele'] . '"></td>';
                    echo '<td><input type="date" class="editable-input custom-input-small" value="' . $composant['DateMontage'] . '"></td>';
                    echo '<td><input type="date" class="editable-input custom-input-small" value="' . $composant['DateCommande'] . '"></td>';
                    echo '<td><input type="text" class="editable-input custom-input-small" value="' . $composant['LienSuivi'] . '"></td>';
                    echo '<td><input type="date" class="editable-input custom-input-small" value="' . $composant['DateArrivee'] . '"></td>';
                }
                // Mode normal
                else {
/.../
            ?>
/.../
#

__scripts/editTable.php : __

/.../
        composantsTable.find(".editable-input").on("input", function() {
            const $input = $(this);
            const originalText = $input.data("original-text");
            const newText = $input.val();
            const id = $input.closest("tr").attr("id");
            console.log('---------------------------')
            console.log('id:', id);
            console.log('originalText:', originalText);
            console.log('newText:', newText);


            if (newText !== originalText) {
                console.log('newText !== originalText');
                $.ajax({
                    method: "POST",
                    url: "../action/doUpdateTable.php",
                    data: {
                        id: id,
                        composant: newText
                    },
                    success: function(data) {
                        if (data.success) {
                            console.log('Mise à jour réussie.');
                        } else {
                            if (data.message) {
                                console.log('Erreur lors de la mise à jour : ' + data.message);
                            } else {
                                console.log('Échec de la mise à jour, raison inconnue.');
                            }
                        }

                    },
                    error: function(error) {
                        console.log("Erreur lors de la requête AJAX : " + error);
                    }
                });
            }
        });
/.../
#

action/doUpdateTable.php :

<?php
session_start();

include 'doConnDB.php';

try {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        if (isset($_POST['id']) && isset($_POST['composant'])) {
            $id = intval($_POST['id']);
            $composant = htmlspecialchars($_POST['composant']); 

            try {
                $stmt = $db->prepare("UPDATE Composant SET NomComposant = :composant WHERE ID = :id");
                $stmt->bindParam(':composant', $composant, PDO::PARAM_STR);
                $stmt->bindParam(':id', $id, PDO::PARAM_INT);
                $stmt->execute();

                echo json_encode(array('success' => true));
            } catch (PDOException $e) {
                echo json_encode(array('success' => false, 'message' => 'Erreur lors de la mise à jour.'));
            }
        } else {
            echo json_encode(array('success' => false, 'message' => 'Données manquantes.'));
        }
    } else {
        echo json_encode(array('success' => false, 'message' => 'Méthode HTTP incorrecte.'));
    }
    
} catch (PDOException $e) {
    echo json_encode(array('success' => false, 'message' => 'Erreur PDO : ' . $e->getMessage()));
} catch (Exception $e) {
    echo json_encode(array('success' => false, 'message' => 'Erreur inattendue : ' . $e->getMessage()));
}

#

base.sql :

/.../
CREATE TABLE IF NOT EXISTS Composant (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    IDMachine INT NOT NULL,
    NomComposant VARCHAR(255) NOT NULL,
    NumeroSerie VARCHAR(255) NOT NULL,
    Modele VARCHAR(255) NOT NULL,
    DateMontage DATE DEFAULT (CURRENT_DATE),
    DateCommande DATE DEFAULT (CURRENT_DATE),
    LienSuivi VARCHAR(255),
    DateArrivee DATE DEFAULT (CURRENT_DATE),
    FOREIGN KEY (IDMachine) REFERENCES Machine(ID)
);
#

Pour rajouter un détail, ça permet qu'à chaque changement d'un input, ça met à jour la ligne de la BDD

#

Merci à ceux qui prendront le temps de m'aider moi je continue à chercher 🙂

opal harness
#

👋 Hey,

J'ai une petite question en JS. Je ne comprend pas pourquoi mon bot n'execute pas le support.mp3 alors qu'il n'y a pas d'erreur

const config = require("../config_module.json");
const { createAudioResource, createAudioPlayer, joinVoiceChannel } = require('@discordjs/voice');

const player = createAudioPlayer();

module.exports = {
    name: "voiceChannelJoin",
    execute: async(member, channel) => {
        const connection = joinVoiceChannel({
            channelId: channel.id,
            guildId: channel.guildId,
            adapterCreator: channel.guild.voiceAdapterCreator,
        });

        const resource = createAudioResource('../support.mp3', {
            metadata: {
                title: 'A good song!',
            },
        });

        player.play(resource);
    }
}
chrome gazelle
chrome gazelle
opal harness
chrome gazelle
#

mais normalement si il trouve pas le fichier il est sensé pété une erreur

oak yoke
#

Bonjour,
J'ai un petit soucis avec une websocket, depuis que j'ai hébergé mon site sur un vps elle ne se connecte plus et mais cette erreur. J'ai essayé de changer l'url mais rien n'y fait la cible est un fichier server.js qui est dans un autre dossier de mon site. Si quelqu'un pouvait m'aider
Voici le code de ma page avec la websocket qui ne fonctionne pas


<!DOCTYPE html>
  <html>
  <head>
    <title>Pub PartUpp</title>
  </head>
  <body>
    <img id="image" src="">
    
    <script>
      const ws = new WebSocket("wss://geniustreamer.fr:8000");

      ws.onopen = () => {
        console.log("Connexion WebSocket etablie avec le serveur.");
      };

      ws.onmessage = (event) => {
        const donnee = JSON.parse(event.data);

        // Recuperer les donnees recues du serveur (l'URL de l\image et la page a afficher)
        const imageURL = donnee.imageURL;
        const pageToDisplay = donnee.page;

        // Comparer la page actuelle avec la page a afficher pour decider d'afficher ou non l'image
        const currentURL = window.location.href;
        if (currentURL === pageToDisplay) {
          // affichage image via WebSocket du server.js
          const imageElement = document.getElementById("image");
          imageElement.src = imageURL;

          // suppression de l'image au bout d un certain temps
          setTimeout(() => {
            imageElement.src = "";
          }, 5000); // affichage de la pub 10sec soit 5000 ms
        }
      };

      ws.onclose = () => {
        console.log("Connexion WebSocket fermee.");
      };

    </script>
  </body>
  </html>
low arch
#
TypeError: Cannot read properties of null (reading 'type')
    at Client.<anonymous> (C:\Users\MPA\Desktop\softky-bot-main\events\handler\index.js:10:33)
    at Client.emit (node:events:525:35)
    at InteractionCreateAction.handle (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
    at module.exports [as INTERACTION_CREATE] (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at WebSocketShard.onPacket (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
    at WebSocketShard.onMessage (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
    at callListener (C:\Users\MPA\Desktop\softky-bot-main\node_modules\ws\lib\event-target.js:290:14)
    at WebSocket.onMessage (C:\Users\MPA\Desktop\softky-bot-main\node_modules\ws\lib\event-target.js:209:9)
    at WebSocket.emit (node:events:513:28)
#

possible d'avoir de l'aide

simple arch
simple arch
#

exemple : obj.type.style
=> console.log(obj);

low arch
#

if (interaction.channel.type == 1) return interaction.reply({ content: 'Tu ne peux pas effectuer cette commande en !', ephemeral: true });

#

c ça la ligne de err

simple arch
#

ok, donc juste avant, met un console.log(interaction.channel)

low arch
#

sa marquer null

#
Application allumée. !
Login status Admin: true
null
TypeError: Cannot read properties of null (reading 'type')
    at Client.<anonymous> (C:\Users\MPA\Desktop\softky-bot-main\events\handler\index.js:11:33)
    at Client.emit (node:events:525:35)
    at InteractionCreateAction.handle (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12)
    at module.exports [as INTERACTION_CREATE] (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36)
    at WebSocketManager.handlePacket (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31)
    at WebSocketShard.onPacket (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22)
    at WebSocketShard.onMessage (C:\Users\MPA\Desktop\softky-bot-main\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10)
    at callListener (C:\Users\MPA\Desktop\softky-bot-main\node_modules\ws\lib\event-target.js:290:14)
    at WebSocket.onMessage (C:\Users\MPA\Desktop\softky-bot-main\node_modules\ws\lib\event-target.js:209:9)
    at WebSocket.emit (node:events:513:28)
simple arch
#

ok, donc null.type est impossible,
il faut voir pourquoi c'est "null"

low arch
#

tu veux le code

simple arch
#

oui si ça contient les endroits où la valeur doit être changée
(au pire tu console log partout où la valeur est modifiée pour savoir si la portion de code est vraiment executée

low arch
#
const bot = require("../../index");
const { Colors } = require("discord.js");

bot.on('interactionCreate', async (interaction) => {
    // Slash Command Handling
    if (interaction.type == 2) {
        const cmd = bot.slashCommands.get(interaction.commandName);
        if (!cmd)
            return interaction.followUp({ content: "Une erreur est survenue !" });
        console.log(interaction.channel)
        if (interaction.channel.type == 1) return interaction.reply({ content: 'Tu ne peux pas effectuer cette commande en !', ephemeral: true });
        const args = [];

        for (let option of interaction.options.data) {
            if (option.type === 1) {
                if (option.name) {
                    args.push(option.name);
                }
                option.options?.forEach((x) => {
                    if (x.value) {
                        args.push(x.value);
                    }
                });
            } else if (option.value) args.push(option.value);
        }
        interaction.member = interaction.guild.members.cache.get(interaction.user.id);

        cmd.run(bot, interaction, args);

        const embed = {
            title: "LOG DE COMMMANDE",
            description: `${interaction.user.tag} a exécuté la commande </${interaction.commandName}:${interaction.commandId}>`,
            color: Colors.Red
        }
        const channel = bot.channels.cache.get("1158652588477128755");
        channel.send({
            embeds: [embed]
        })
        console.log(`${interaction.commandName} exécuté par ${interaction.user.tag}.`);
        console.log(`Avec comme options ${args}`);
    }
});

#

tien

simple arch
#

tu as trouvé où le code de
bot.on('interactionCreate', async (interaction) => {
? juste pour voir selon la doc

low arch
#

est c un bot pas fait pas moi

simple arch
#

j'imagine bien, mais je veux bien la source pour aller verifier (un lien ou qqch)

low arch
# simple arch j'imagine bien, mais je veux bien la source pour aller verifier (un lien ou qqch...
D:\botdedeezz\node_modules\@sapphire\shapeshift\dist\index.js:1742
    return typeof value === "string" ? Result.ok(value) : Result.err(new ValidationError("s.string", "Expected a string primitive", value));
                                                                     ^

ValidationError: Expected a string primitive
    at _StringValidator.handle (D:\botdedeezz\node_modules\@sapphire\shapeshift\dist\index.js:1742:70)
    at _StringValidator.parse (D:\botdedeezz\node_modules\@sapphire\shapeshift\dist\index.js:216:88)
    at validateDescription (D:\botdedeezz\node_modules\@discordjs\builders\dist\index.js:1434:25)
    at MixedClass.setDescription (D:\botdedeezz\node_modules\@discordjs\builders\dist\index.js:1538:5)
    at D:\botdedeezz\Loaders\loadSlashCommands.js:14:14
    at _Collection.forEach (<anonymous>)
    at module.exports (D:\botdedeezz\Loaders\loadSlashCommands.js:10:18)
    at Object.<anonymous> (D:\botdedeezz\main.js:16:1)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10) {
  validator: 's.string',
  given: undefined
}

C l'erreur

#
const Discord = require("discord.js")
const { REST } = require("@discordjs/rest")
const { Routes } = require("discord.js")


module.exports = async bot => {

    let commands = [];

    bot.commands.forEach(async command => {

        let slashcommand = new Discord.SlashCommandBuilder()
            .setName(command.name)
            .setDescription(command.description)
            .setDMPermission(command.dm)
            .setDefaultMemberPermissions(command.permission === "Aucune" ? null : command.permission)

        if (command.options?.length >= 1) {
            for (let i = 0; i < command.options.length; i++) {
                slashcommand[`add${command.options[i].type.slice(0, 1).toLowerCase() + command.options[i].type.slice(i, command.options[i].type.length)}Options`](option => option.setName(command.options[i].name).setDescription(command.option[i].description).setRequired(command.options[i].required))



            }

        }

        await commands.push(slashcommand)

    })
    const rest = new REST({ version: "10" }).setToken(bot.token)

    await rest.put(Routes.applicationCommand(bot.user.id), { body: commands })
    console.log("Les slash command sont crée avec succès !")
}

Le code

#

tu peux m'aide

simple arch
#

je ne vois pas de interactionCreate :s jpense pas pouvoir aider

fickle thunder
#

bonsoir quelqu'un de dispo pour m'aider a corriger un bug sur mon bot qu'il y avait pas du tout hier et maintenant il marche à moitié (js et v14)

wild bramble
#

Salut, j'ai une question. J'essaye de créer un bouton sur sheweny pour l'ajouter à un message. Cependant je ne comprend pas comment faire. Quelqu'un peut il m'aider ?

rough sage
#

Quelqu'un aurait un exemple d'une très bonne intégration d'un système de trad pour bot ?

lilac jasper
#

Avec i18n tu peux le faire c'était bien quand je le faisais

oak yoke
#

Hello, j'ai un problème avec un webscoket de mon site qui n'arrive pas à se connecter quelqu'un pourrait m'aider,
Voici le code de mon fichier client

<html>
<head>
  <title>Pub PartUpp</title>
</head>
<body>
  <img id="image" src="">
  
  <script>
    const ws = new WebSocket("wss://geniustreamer.fr:8000");

    ws.onopen = () => {
      console.log("Connexion WebSocket etablie avec le serveur.");
    };

    ws.onmessage = (event) => {
      const donnee = JSON.parse(event.data);

      // Recuperer les donnees recues du serveur (l'URL de l\image et la page a afficher)
      const imageURL = donnee.imageURL;
      const pageToDisplay = donnee.page;

      // Comparer la page actuelle avec la page a afficher pour decider d'afficher ou non l'image
      const currentURL = window.location.href;
      if (currentURL === pageToDisplay) {
        // affichage image via WebSocket du server.js
        const imageElement = document.getElementById("image");
        imageElement.src = imageURL;

        // suppression de l'image au bout d un certain temps
        setTimeout(() => {
          imageElement.src = "";
        }, 5000); // affichage de la pub 10sec soit 5000 ms
      }
    };

    ws.onclose = () => {
      console.log("Connexion WebSocket fermee.");
    };

  </script>
</body>
</html>
torn fog
torn fog
#

Ah

torn fog
# oak yoke

Pk c'est marqué un autre domaine que localhost déjà dans le code

oak yoke
#

mais je comprends pas pk lui fonctionne pas alors que les autres que j'utilise fonctionne avec localhost

torn fog
#

Sûrement une question de CORS @oak yoke

oak yoke
#

mais le CORS c'est pas que pour les requete HTTP ?

oak yoke
torn fog
#

@oak yoke rajoute un listener pour voir l'erreur déjà ws.addEventListener("error", (event) => { console.log("WebSocket error: ", event); });

torn fog
#

@oak yokeDonc tu m'a dit qu'en localhost ça marche ?

oak yoke
torn fog
oak yoke
oak turret
#

Perso pour les websocket j’utilise pusher avec Laravel mais ça fonctionne super bien en vanilla 👌

#

je l’utilise en vanilla js aussi et c’est parfait

oak yoke
floral bolt
#

ah je viens de lire ...

rocky oar
#

J'adore JS ..... KappaCringe

keen narwhal
#

Bonjour depuis que j’ai monté de version de node js (v20.9.0) j’ai un message d’erreur comme quoi mon lien est devenu obsolète mais je retrouve pas un lien valide sur mon cluster Si quelqu’un à la solution je suis preneur

DeprecationWarning: The URL mongodb://users:***@botsdiscord-shard-00-01.wqyyf.mongodb.net:27017,botsdiscord-shard-00-00.wqyyf.mongodb.net:27017,botsdiscord-shard-00-02.wqyyf.mongodb.net:27017/BOT?authSource=admin&replicaSet=atlas-2z3die-shard-0&ssl=true is invalid. Future versions of Node.js will throw an error.```
simple arch
keen narwhal
#

Ok, d'après ce que je vois ça serait mes ports qui seraient invalide. Je vais me renseigner dessus merci pour la doc

empty mauve
violet knot
keen narwhal
#

Hello, JavaScript a part coder des bot discord ça sert a quoi ?

simple arch
#

salut, à créer des serveurs (node js) à créer du code front sympa (via type script) ou à juste créer des scripts pour console ou intégré à une page web, donc animer des elements, gérer le réseau, compresser des images...

#

y'a des fonctions, des variables, des class, des objets et tableaux, des trigger, des fonctions fournies par le navigateurs... ce language répond à beaucoup de problematique que les grandes entreprises du web ont voulu régler

meager prism
#

PARDON !

#

JavaScript en gros c’est le truc qui va agrémenter les animation de ton code, par exemple tu veux qu’une image apparaît en slide à l’ouverture du site, bah le js va faire le boulot, après je vais pas re expliquer ce qu’a dit @simple arch qui a déjà super bien dit 😄

simple arch
#

ouai ça c'était à l'époque oui, maintenant le css peut faire ce genre d'animation
mais oui js peut le faire, et il utilise les trigger pour déclencher des morceaux de scripts (loading page, clic souris, clavier, réseau(websocket), timing, survol souris, resize...) :D

meager prism
empty mauve
#

hey, quelqun peu m'aider pour que quand je click sur le bouton ça ajoute 1 et que ça affiche en html?
#discussion-dev message

ancient sonnetBOT
#
Citation du message de angelo_yt#0 posté dans #discussion-dev

quoteStart #discussion-dev message

hey, pour l'instant j'ais ça, je doit rajouter quoi pour avoir le nombre de click total affiché ? quoteEnd

Ce message contient également une image, visible à droite de l'embed.

➜ [Voir le message original](#discussion-dev message)

weary spruce
#

Coucou, j'aimerai coder que mon bot arrive à convertir une date au format DD-MM-YY, en timestamp via la formule :((Date entré par l'user) - (Date ref : 1/1/1970))*86400 mais j'bloque un peu !

slim anvil
#

convertis ta string en date, puis tu auras le .getTime() sur ton objet date

#

par contre de mémoire en string il faut un format MM DD YYYY
mais au pire tu reformat la string de ton coté c'est rapide

weary spruce
#

@slim anvil j'ai pas compris, possible de m'expliquer en vocal

slim anvil
#
const userDate = "05/30/2019"
const date = new Date(userDate)
// ici tu obtiens un objet date
const timestamp = date.getTime()
// ici le timestamp
weary spruce
#

En gros, c'est un bot discord, le mec rentre un texte, une date pour un rappel, et un rôle à ping

#
"module.exports = {
    data: new SlashCommandBuilder()
        .setName('timestamp')
        .setDescription('Convertir une date a un timestamp')
        .addStringOption(option => option.setName('date').setDescription('Ajouter une date au format YYYY-MM-DD HH:MM:SS Format').setRequired(true)),
    async execute(interaction) {
        // Check if date is valid
        if (isNaN(Date.parse(interaction.options.getString("date")))) {
            return interaction.reply({ content: `Date: **${interaction.options.getString("date")}** n'est pas valide.`, ephemeral: true });
        }
        await interaction.reply(`Timestamp: **${Date.parse(interaction.options.getString("date"))/1000}**`); 
        let Date=interaction.option.getString("date")
    },
}; ```
weary spruce
#

Sauf que ça me donne le time stamp du mauvais fuseau horaire

winged flare
#

Tu peux me pirater Google, Amazon, ou me débaucher un ou deux bitcoin ?

idle flare
#

Tu pense que tu pourrai hacker mon lit, histoire que je dorme plus longtemps ?

idle flare
glass cargo
#

Bonjour 👋
Je passe actuellement mon site de Vue à Nuxt et j'en profite pour améliorer certaines choses. Notamment ce PopUp informant l'utilisateur lorsqu'il est banni (voir image).
Sur la version Vue, lorsque l'utilisateur se connecte, l'API check si il est banni, et si oui, le renvoie sur example.com/?error=banned. Puis-je avoir le même résultat en supprimant le querystring ?

<PageAlert name="userBanned" type="red" autoclose>
  <WarningSign class="icon" />
  <p>{{ $t('pages.home.alerts.userBanned') }}</p>
</PageAlert>
hazy mirage
glass cargo
hazy mirage
#

Il n'y a aucun problème à ça! Tu fais une petite requete à ton back justement au loading, tu viens stocker le user reçu dans un store comme ça ça t'évite de le fetch à chaque page et ensuite tu utilise ce store pour faire ton affichage conditionnel

glass cargo
#

Ah yep je vois 👍

#

Merci ^^

karmic rain
queen ocean
#

mais sinon pour répondre a ta question, tu dois avoir nodejs v12.0.0 minimum

karmic rain
karmic rain
weary spruce
#

Contacte ton hébergeur, il peut choisir la version de nodejs lui

#

@karmic rain

karmic rain
grave bronze
#

Bonjour, je viens de me lancer dans l'apprentissage de Sequelize et j'ai cette erreur que je ne comprend pas : code: 'ER_ACCESS_DENIED_ERROR', errno: 1045, sqlState: '28000', sqlMessage: "Access denied for user ''@'localhost' (using password: YES)", sql: undefined }, original: Error: Access denied for user ''@'localhost' (using password: YES) Sauriez vous à quoi elle est dûe ? Merci d'avance pour votre réponse.

#

Voici le code : ```ts
const sequelize = new Sequelize(config.database, config.username, config.password, {
host: 'localhost',
dialect: 'mysql',
port: 3306,
});

floral bolt
#

Le password est pas bon

grave bronze
#

Si

#

Le problème ne vient pas de là

#

La db se connecte et dès que je veux accéder aux données ça me fait ça

grave bronze
weary spruce
#

Les droits ?

#

Fin les permissions?

grave bronze
#

Pareil tout est bon

cyan iron
cyan iron
grave bronze
#

J’ai bien regardé les permissions et tout est correct

cyan iron
#

Montre

grave bronze
#

Quand je pourrais

cyan iron
#

Est-ce que tu as enlevé le nom de ton user ?

#

Car je le vois pas

grave bronze
#

J’utilise root en dev

#

Mais c’est vrai qu’il apparaît pas

#

Dans l’erreur

cyan iron
#

console log config

#

Et tu verras il est peut être vide

grave bronze
#

Ok

#

Non config est pas vide puisque la db se connecte

#

Le problème c’est l’accès aux données

#

A quoique

#

Tu as peut être raison…

#

Je regarderai tout à l’heure

grave bronze
#

C'est quand ce bout de code est executé qu'il y a une erreur : ```ts
try {
const news = await News.findAll();
res.render('news', {
title: 'News',
news
});
} catch (error) {
console.error(error);
res.status(500).send('Erreur serveur');
}

#

Il y a l'erreur serveur de render sur le site

merry inlet
#

Je vient de passer la journée a totalement réécrire une rest api, pour la moderniser et la passer en VMC, haaaaaaaaaaaaaaaa

#

mais sa fait du bien

grave bronze
winged flare
grave bronze
#

Si

#

La bdd se connecte

#

Et dès que je veux accéder aux données j’ai une erreur

winged flare
#

C'est qu'alors l'user que tu utilises n'a pas les privilèges requis

grave bronze
#

C'est quoi la commande pour voir les privilèges ?

#

Parce qu'hier j'ai regardé

#

Mais j'ai peut être pas fait la bonne commande

#

SHOW GRANTS FOR '<user>'@'<host>' ?

winged flare
#

Tu est sur l'utilisateur de base ou un que tu a créé ?

grave bronze
#

Je suis sur root

#

Donc normalement pas de problème

#

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON . TO root@localhost WITH GRANT OPTION

winged flare
#

Essaie GRANT ALL PRIVILEGES TO user

grave bronze
#

Ok

#

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TO user' at line 1

#

J'ai cette erreur

winged flare
#

A la place de user il faut que tu mettes ton utilisateur

grave bronze
#

Oui

#

J'ai mis root

#

Pas dans l'erreur

winged flare
#

logiquement le root à déjà tous les privilèges c'est anormal

grave bronze
#

Oui

#

C'est bien mon problème

winged flare
#

Mais sinon GRANT ALL PRIVILEGES ON . TO root@localhost

#

Sinon tu est sur quel serveur ?

grave bronze
#

En local

winged flare
#

Xampp ?

grave bronze
#

?

#

Je comprends pas

#

ERROR 1046 (3D000): No database selected

#

J'ai enlevé le to et j'ai ça

#

Après j'ai sélectionné une DB

#

Et j'ai ça : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

winged flare
#

Attends là cette erreur tu l'a suite à quoi ?

#

A récupérer des données ?

#

Car cette erreur c'est qu'il y a une erreur dans le code SQL

grave bronze
#

La commande : GRANT ALL PRIVILEGES ON root;

winged flare
#

Met ON . TO

grave bronze
#

Oui mais avec Sequelize rien ne marche

#

Pareil

winged flare
grave bronze
#

Oui

#
Connexion à la base de données MySQL réussie.
Succesfully launched the app here : http://localhost:3000/```
winged flare
#

Alors GRANT ALL PRIVILEGES ON * . * TO root@localhost

grave bronze
#

Quand mon programme s'execute j'ai ça

#

Ok

#

Ca a marché

winged flare
#

Nickel 👍

grave bronze
#

J'ai toujours la même erreur par contre

#

🥲

winged flare
#

C'est bizarre ça

grave bronze
#
    errno: 1045,
    sqlState: '28000',
    sqlMessage: "Access denied for user ''@'localhost' (using password: YES)",
    sql: undefined
  }
}
#

Faut peut être que je n'utilise pas les models de sequelize

winged flare
#

Là le truc c'est une erreur d'authentification suite à des mauvais credentials ou permissions, mais si tu te connectes à la base et que tu viens de grant les privilèges a cet user ...

winged flare
#

Donc tu est sûr que tu est connecté avec le root ?

grave bronze
#

Oui

winged flare
#

Sinon essaie de créer un utilisateur, de lui donner et les privilèges et de te connecter avec

grave bronze
#

Ok

#

Toujours la même erreur

#

Ca m'énerve

grave bronze
#

Quelqu’un a une autre idée ?

#

Le pire c’est que je suis le seul sur internet à avoir ce problème

#

🥲

floral bolt
#

donc comme j'ai dit c'est soit un probleme de mot de passe soit un probleme de privilege, tu peux essaye de reboot mysql, sinon redéfinir le mot de passe sql SET PASSWORD FOR 'utilisateur'@'localhost' = PASSWORD('nouveaumotdepasse');

#

Tu essayes de te co sur quoi ?

#

et enfin sur quoi est heberger ta bdd ?

grave bronze
grave bronze
floral bolt
#

fait mysql -u root -p

#

Ou sinon telecharge heidisql et essaye de te connecter dessus

grave bronze
grave bronze
#

Erreur Sequelize

#

J'ai créé un fil ce sera plus simple

misty parcel
#

Salut tout le monde !

Avec Nuxt, j'ai voulu faire un formulaire en plusieurs étapes, j'ai donc un fichier ou il faut rentrer son email, un autre son nom prénom etc...

Le problème c'est que je n'arrive pas à transmettre les informations voulu (ce que la personne à rentrer dans l'input email) à mon autre fichier, j'ai chercher un peu et j'ai trouver $emit mais ça n'a pas marcher
(avec this.$emit..., $emit etc...)

Voici mon code :

Pour le champ email :

const checkEmail = async () => {
  invalidEmail.value = false;
  isAlreadyRegistered.value = false;
  isSubmitting.value = true;
  if (!email.value) return invalidEmail.value = true;
  if (!email.value.includes('@')) return invalidEmail.value = true;
  const { data, error } = await client.from('Users').select('id').eq('email', email.value);
  // @ts-ignore
  if (!data.length) await client.from('Users').insert({ email: email.value });
  if (data && data.length > 0) return isAlreadyRegistered.value = true;
  // @ts-ignore
  const test = this.$emit('submitEmail', email.value);
  console.log(test)
  isSubmitting.value = false;
}

Pour réceptionner l'email :

this?.$root.$on('submitEmail', (email: string) => {
  console.log(email)
});
#

Donc le console log de test renvoie undefined et le console log de email ne renvoie rien

misty parcel
#

Re, si je peux me permettre @slim anvil de te mentionner 👀 (Aide moi quand tu peux si jamais tu as envie :o)

slim anvil
#

salut @misty parcel
si tu as un formulaire qui est partagé en plusieurs page, a ta place je passerai par un store, ca t'évitera de déclarer des props entre 10 enfants différents, d'emits de trop loin, tu pourras gérer ton formulaire super facilement, et le reset une fois qu'il est submit 👍
tu pourras meme y ajouter du persistant store, comme ça meme apres un refresh les datas seront toujours dispo

#

c'est simple a setup, utiliser, donc profites-en

misty parcel
slim anvil
#

non pas Redis, mais Pinia

queen ocean
#

MDR

misty parcel
misty parcel
#

Peux tu m'aiguiller please

#

Par exemple j'ai essayer le useStore mais apparement faut l'importer ? Je troue ça étonnant pour nuxt

slim anvil
#

ça change rien nuxt3 ou vue, tu dois le créer, define le module dans ton nuxt config

#

import ton store et l'utiliser

grave bronze
slim anvil
#

oui aussi!

misty parcel
# slim anvil import ton store et l'utiliser

Ah d'accord, juste pour être sure il faut créer un dossier store ? Car je me réfère souvent à la doc de nuxt et y'a pas de store 🤷‍♂️ à moins qu'il faut mettre ça dans composables

#

Enfin après j'magine qu'on s'en fout du nom du dossier en faite

misty parcel
slim anvil
#

Oui

misty parcel
#

okay

slim anvil
#

ce sera mieux pour t'y retrouver

misty parcel
#

ok merci

young flare
#

Hey je veux faire un bot twitter qui prend des tiwtt et les mets dans la consle mais là je ne sais plus quoi faire j'ai demandé à ChatGPT, Internet, toute les docs et api bref je suis désepérer.
Aidez-Moi!!!!
merci

junior kelp
junior kelp
#

Puis leur politique est galère aussi

young flare
#

ok merci

left relic
#

bonjour est-ce que quelqu'un sait pourquoi quand je passe mon fichier qui utilise MongoDB de .js à .ts (j'utilise React et Node.js) ça fonctionne plus (il y a pas d'erreur dans l'éditeur mais mon application React affiche beaucoup d'erreur)

torn fog
#

En Typescript tu dois typé un peu tout

left relic
# torn fog En Typescript tu dois typé un peu tout

même en typant ça fonctionnait pas, et là j'ai remit mon fichier qui gère la base de données en js, quand je le lance seul il fonctionne bien mais quand j'utilise une fonction de ce fichier depuis un fichier .ts ça fonctionne pas

torn fog
#

Variables, fonctions

left relic
#

variables et fonctions

torn fog
#

T'essayes de faire marcher un fichier JS avec un ts?

left relic