SimonLeclere / discord-easy-dashboard

💻 Simple module to facilitate the creation of dashboard using discord.js and express
https://www.npmjs.com/package/discord-easy-dashboard
71 stars 11 forks source link

manager ne présente rien #5

Closed Sotoamino closed 2 years ago

Sotoamino commented 2 years ago

Bonjour. découvrant votre Package, j'ai voulu appliquer votre exemple pour les préfixs, mais rien n'apparait sur la page de management du bot, peu importe le serveur.

client.prefixes = JSON.parse(fs.readFileSync('./data/config/prefixes.json'))

const validatePrefix = prefix => prefix.length <= 5;guild, value) => discordClient.prefixes[guild.id] = value; 

const getPrefix = (discordClient, guild) => discordClient.prefixes[guild.id] || '!'; 

client.dashboard.addTextInput('Prefix', 'The prefix that is added to discord messages in order to invoke commands.', validatePrefix, setPrefix, getPrefix);

je ne sais pas si ce soucis viens de votre package ou autre. Auriez vous une solution ?

Sotoamino commented 2 years ago

Après recherche, je penses avoir trouvé le soucis. La page de manage semble manquant (dossier views). Possible de le rajouter ? ^^

SimonLeclere commented 2 years ago

La page de manage est dans le fichier guild.js normalement

Sotoamino commented 2 years ago

et bien j'ai l'impression qu'elle n'est pas chargé. Comme je vous ai dit, quand je veux éditer un serveur, j'ai une page blanche qui apparait :/

SimonLeclere commented 2 years ago

Avez vous spécifié le paramètre client secret ?

SimonLeclere commented 2 years ago

J'arrive à reproduire le problème, je vais chercher d'où ca vient

SimonLeclere commented 2 years ago

Apparemment il manque une parenthèse dans le dossier guild.js, je regarde ca quand j'ai le temps

cestef commented 2 years ago

L'erreur vient de ma dernière PR, désolé de ne pas avoir vu cette erreur avant. Elle vient du fichier routes/manage.js à la ligne 12. Je cherche encore pourquoi mais EJS ne render rien pour ce fichier 🤔

cestef commented 2 years ago

Et c'est à ce moment que je m'en veux de pas avoir ajouté d'error handling 😭 Je rajoute ça dans une prochaine PR

SimonLeclere commented 2 years ago

J'ai ajouté un log pour l'erreur lors du rendu de fichiers, je cherche la parenthèse mais c'est long haha

SimonLeclere commented 2 years ago

Elle vient du fichier routes/manage.js à la ligne 12. Moi j'ai cru comprendre que ca venait plutôt du fichier guild.ejs

Je sais pas trop pourquoi à la ligne 25 une partie du templating est pas interprété

cestef commented 2 years ago

Je viens de remarquer aussi haha, j'ai essayé EJS-lint comme ils conseillent mais ça me met une erreur bizarre:

Unexpected token (1:12) in views/guild.ejs
<%- await include("partials/header", { bot, user, title: `Settings | ${guild.name}`, is_logged, hasClientSecret: true }) %>
SimonLeclere commented 2 years ago

Ouais c'est pas toujours très clair

cestef commented 2 years ago

l'erreur vient de la boucle settings.forEach

cestef commented 2 years ago

Il interprète une accolade comme la fermeture de la boucle ducoup il pense qu'il manque une parenthèse après

SimonLeclere commented 2 years ago

Je vais regarder

SimonLeclere commented 2 years ago

Tu sais quelle accolade est mal interprétée ?

cestef commented 2 years ago

J'essaie de trouver x)

cestef commented 2 years ago

ça vient de ce qu'il y a à l'intérieur des ifs j'ai l'impression

SimonLeclere commented 2 years ago

Je vais tester chaque if un par un

cestef commented 2 years ago

Ok j'ai trouvé, ça vient du await setting.get

SimonLeclere commented 2 years ago

J'ai l'impression aussi

SimonLeclere commented 2 years ago

Je vais voir ce que ca renvoie

cestef commented 2 years ago

Ces lignes là ducoup: 18, 26, 34-37

cestef commented 2 years ago

si on retire le await à chaque fois tout revient à la normale

SimonLeclere commented 2 years ago

Le problèle vient des await oui, mais ce serait pas mal que les getters et setters restent asynchrones

cestef commented 2 years ago

J'ai une erreur différente:

await is only valid in async functions and the top level bodies of modules in /Users/cstef/Documents/Projects/discord-easy-dashboard/views/guild.ejs while compiling ejs If the above error is not helpful, you may want to try EJS-Lint: https://github.com/RyanZim/EJS-Lint
cestef commented 2 years ago

Il faut wrap le body dans un (async () => {})() je pense

SimonLeclere commented 2 years ago

Jsp si ca fonctionne en ejs, c'est plutôt pour un single-file-app ce genre de méthode

SimonLeclere commented 2 years ago

image xD

cestef commented 2 years ago
image
cestef commented 2 years ago

si tu ajoutes async dans le forEach

cestef commented 2 years ago

enfin réparé !

cestef commented 2 years ago

à moitié je crois enfait x) je re regarde après manger, j'ai remplacé le .forEach par un for (const setting of settings) {}

SimonLeclere commented 2 years ago

Okay merci beaucoup, je t'avoue que je suis en voiture là c'est pas très pratique x) Encore merci pour ton aide

SimonLeclere commented 2 years ago

@cstefFlexin J'espère que t'es sûr de toi parceque j'ai pas trop la possibilité de vérifier si tout fonctionne haha ;) Je merge et je publie une nouvelle version.

SimonLeclere commented 2 years ago

@Sotoamino Essaye de mettre à jour le module et tout devrait fonctionner !

Sotoamino commented 2 years ago

@Sotoamino Essaye de mettre à jour le module et tout devrait fonctionner !

J'ai essayé et tout marche niquel. Merci à vous ^^