#javascript-typescript
1 messages · Page 89 of 1
compresse le plutôt
ah yes meilleure idée mdrr

t’as des libs pour ça, tu le compresse et tu l’envoies en tant qu’attachement dans ton message ou autre
Tu nous montres pas toute l'erreur là
Tu dois avoir untruc en dessus encore
Il te print pas tout 😂
je vais essayer sur vs code
dans config.json je vois pas ou est l'erreur pour moi tout est bon à la ligne ciblé je vois pas ce qui dérange
Voilà 😅
Je suis vrmt le pire 😆 , Merci !
Une erreur de régler mais une autre a apparu je suis pas sur mais je crois que sa vient de la ligne ou il y a intents
Ya pas toute l'erreur non plus
Tout est dit dans ton erreur pour le coup
AbortController ?
Maintenant j'ai aucune erreurs mais le statut ne marche pas
Je pense qu'il te manque des bases en JavaScript
C'est compliqué d'utiliser des librairies js sans connaître le js
Et si jamais tu peux pas utiliser CUSTOM_STATUS pour un bot
il te faut utiliser babel pour convertir les imports
Label ?
Faut que tu adapte ton package.json pour type:module que tu utilise la nouvelle syntaxe esm (donc tu dois changer tes require par import .... from ...
Ou alors plus simple tu prends une version antérieure de node fetch qui t'oblige pas à faire toute cette merde (sinon je crois qu'il y a un module qui s'appelle axios (https://axios-http.com/) qui fait pareil aussi mais j'ai jamais testé)
Juste le module qui avait des problèmes x)
bonsoir je rencontre un bug sur react native en faite lorsque que je lance l'application en web dans expo dev cela marche parfaitement mais lorsque je lance dpuis mon telephone l'application crash subittement, aucunes erreurs dans la console a part une petite alerte
React Hook React.useEffect has a missing dependency: 'getWeather'. Either include it or remove the dependency array. (react-hooks/exhaustive-deps)
la partie concerné au cas ou
import * as React from 'react';
import { Text, View, StyleSheet, ActivityIndicator } from 'react-native';
import Constants from 'expo-constants';
import * as Location from 'expo-location';
import axios from 'axios';
import CurrentWeather from './components/currentWeather'
import Forecast from './components/Forecast'
export default function App() {
const API_URL = (lat, long) =>
`https://api.openweathermap.org/data/2.5/forecast?lat=${lat}&lon=${long}&appid=apiid&lang=fr&units=metric`;
const [loading, setLoading] = React.useState(true);
const [data, setData] = React.useState(null);
React.useEffect(() => {
const getCorrdinates = async () => {
const { status } = await Location.requestForegroundPermissionsAsync();
console.log(status);
if (status !== 'granted') {
return;
}
const userLocation = await Location.getCurrentPositionAsync();
getWeather(userLocation);
};
getCorrdinates();
}, []);
const getWeather = async (location) => {
try {
const response = await axios.get(
API_URL(location.coords.latitude, location.coords.longitude)
);
setData(response.data);
setLoading(false);
} catch (e) {
console.log(e);
}
};
if (loading) {
return (
<View style={styles.container}>
<ActivityIndicator style={{ color: 'blue' }} />
</View>
);
}
return (
<View style={styles.container}>
<CurrentWeather data={data}/>
<Forecast data={data}/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems : 'center',
paddingTop: Constants.statusBarHeight,
backgroundColor: 'grey',
padding: 8,
},
});
Hey, j'ai un petit soucis, j'utilise une api qui utilise des - dans leur json 'origin-network': 'Orange', j'essaye de le log dans un console.log
res.on('data', d => {
let info = JSON.parse(d);
console.log(info.origin-network);
})```
ça me dit ```
console.log(info.origin-network)
ReferenceError: network is not defined
comment je peux faire ? merci d'avance
(tous ce qui n'ont pas de tirer fonctionne bien)
Il y a un tiret dans ta clé json donc utilise info["origin-network"] à la place de info.origin-network
Si tu utilise express n'oublie pas le body-parser non plus
Oh merci, et non j'utilise pas express mais merci beaucoup ^^
Salut les gars
c'est ici pour demander du help lié aux bot discord ?
car j'ai un petit soucis
j'ai actuellement ça
mais j'aimerais en Author affiché juste l'avatar et pas le nom et mentionner l'auteur du message après le 'créations de'
actuellement ça donne ça
member.user.toString() pour mentionner
Mais le semble que dans le titre de l'embed, on peut pas mentionner
Et suffit que tu mettes un string vide. Et si ça passe pas, un caractère invisible
Oui mais ça fonctionnera pas car comme je t'ai dit, me semble que tu peux pas dans le titre
ça me dit que member n'est pas défini
comment ils ont faire alors ?
c'est le titre non ?
ahhh non
comment je pourrais faire ça ?
C’est ton content tu mets justes des retours à la ligne
c'est le setDescription ?
et comment je peux faire des retours a la ligne en js ? je débute seulement je suis un peu perdu
hmmm je vois plus qu'a comprendre comment le mettre en oeuvre
c'est bon j'ai réussi merci à vous les gars
Vous savez si sur DiscordJS, il est possible de récupérer dans l'event voiceStateUpdate un {User} sans passer par un oldState.member.user ?
c'est à dire ?
alors
yep je crois bien
Quand un utilisateur rejoint un Stage Channel via le Stage Discovery, tu peux pas récup l'utilisateur dans ton voiceStateUpdate
Du member non ?
dans après tu le fetch ou get depuis la guild ou depuis ton client
The id of the member of this voice state
bah du coup oui, mais same, l'id de membre et du user est la même
je vois ce que tu veux dire 🤔
Mais relou de fetch à chaque fois, ça peut être une bonne feature request
c'est vrai bonne idée
Bon bah le Stage Discovery va être supprimé de Discord lundi
what ?
ah nan stage discovery x)
Because of this, we’ve made the decision to sunset Stage Discovery starting on October 4, 2021.
ah ok je vois, merci de l'info 👀
j'ai trouvé un moyen c'est bon
a pars ça comment on récupére l'heure a partir d'une timestamp (genre avec new Date())
new Date('ton timestamp (pas en string bien sur)')
là tu auras une date
et avec getHours()
tu récupères l'heure
attention cependant de où est ton hébergeur 🤔
Ceux qui ont déjà utilisé quickdb, je suppose qu'il y a des limites quand t'as beaucoup de data ?
Salut je viens de commencer a apprendre a faire un bot discord avec discordjs y'a meme pas 2h donc je suis au niveau ultra débutant, j'ai dékà un pb, j'ai ça
et dans mon terminal j'ai fais node ./src/bot.js
Sauf que ça me renvoie ça
tu as bien fais un "npm install dotenv" dans ta console ?
dot et dotenv c'est pas la même chose
ah
ah c'est bon ben merci, je savais pas
re encore une fois, cette fois çi j'arrive pas a mettre le bot online, j'ai fais ça
et dans mon terminal j'ai mis node .src/bot.js
il faut mettre un
client.on('ready' => {})
t'as pas une erreur ?
si
Il est en v12 sur le tuto sûrement
Faut regarder pour la v13 🙂
Ou sois, tu installes la v12
c'est mieux la v12 ?
Peu importe
Ah oui ? Mais y'a une difference entre les deux nn ?
ok
attends mais c'est oui que j'installe la version 12
Moi j'ai tout fait sur le terminal
Je crois avoir trouver mais pour etre sur, c'est bien ça
Ah
ah ok c'est bon
je confond discord.js et node.js
Yes
Yop !
Est ce que vous savez comment je peux faire pour récupérer une intéraction depuis son ID svp ?
Me semble pas que tu peux
C'quoi le besoin de base ?
Salut j'ai mis mon bot online avec ça
et je sais pas comment pouvoir re écrire avec le terminal
Comme ça avec le ">" au début
Ctrl + C
Ou un truc comme ça sans le clavier sous les yeux je sais plus mdr c’est instinctif à force
Mais pour pas t’emmerder a devoir restart install nodemon il va relancer à chaque update
J'ai besoin de choper le message de la commande, mais le soucis c'est que le .reply, me renvoie undefined dans la promise et le .edtiReply me renvoie un APIMessage mais avec l'id de l'intéraction
J'ai réussi à trouver une alternative pour le coup du message, mais maintenant j'ai besoin de récupérer l'intéraction pour pouvoir l'éditer après
Tu peux juste éditer l'interaction de base puis l'éditer un peu plus tard que t'as envoyé le premier message nan ? Je suis pas sur de comprendre
J'peux pas faire ça comme ça parce que j'ai besoin de pouvoir le réditer si le bot restart
En gros dans l'idée
J'ai besoin de récupérer l'intéraction depuis son ID pour pouvoir modifier la réponse à tout moment même si le bot restart etc
Peut-être fetch le message directement et récupérer l'intéraction directement dessus ?
message.fetch().then( (newMsg) => {
console.log(newMsg.interaction);
})
J'ai tester vite fait comme ça, mais ça me renvoie toujours la même chose avec l'id de l'intéraction, le type, le nom de la commande et l'user
Mmmm, je sais pas si c'est possible alors
Je connais peut-être pas assez bien la lib
Dac, thx
Malheureusement je ne crois pas que ce soit possible
le mieux serait d'éditer le message ou d'y répondre, sans passer par une interaction
enfn je pense
Bah en fait la seule solution que je vois serait de stocker l'interaction dans une db pour pouvoir y répondre même sle bot se down
Salut à tous, je suis actuellement en train de développer un site E-commerce avec nodeJS.
au moment de l'affichage du panier de l'utilisateur, j'ai une erreur qui est la suivante:
at C:\Users\Dev\Documents\Dev\Exercices\JAVASCRIPT\Ecommerce\routes\main.js:42:10```
j'ai retourné mon code dans tous les sens, je bloque ! à l'aide 🤓 !
- Modèle Cart :
```var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var CartSchema = new Schema({
owner: { type: Schema.Types.ObjectId, ref: "User" },
total: { type: Number, default: 0 },
items: [
{
items: { type: Schema.Types.ObjectId, ref: "Product" },
quantity: { type: Number, default: 1 },
price: { type: Number, default: 0 },
},
],
});
module.exports = mongoose.model("Cart", CartSchema);
- Route Cart:
// On cherche le propriétaire du panier
Cart.findOne({ owner: request.user._id }, function (err, cart) {
// on ajoute le produit au panier
cart.items.push({
item: request.body.product_id,
price: parseFloat(request.body.priceValue),
quantity: parseInt(request.body.quantity),
});
// total du panier est incrémenté du prix des produits ajoutés
cart.total = (cart.total + parseFloat(request.body.priceValue)).toFixed(2);
// sauvegarde du panier dans la bdd
cart.save(function (err) {
if (err) return next(err);
// Si ok, on redirige l'utilisateur vers la page CART
return response.redirect("/cart");
});
});
});
// Route CART
router.get("/cart", function (request, response, next) {
Cart.findOne({ owner: request.user._id })
.populate("items.item")
.exec(function (err, foundCart) {
if (err) return next(err);
response.render("main/cart", {
foundCart: foundCart,
message: request.flash("remove"),
});
});
});
déjà pour commencer fais gaffe dans ton schema tu déclares items en array et dedans un objet items
et dans ta route cart tu as
cart.items.push({
item: request.body.product_id,
price: parseFloat(request.body.priceValue),
quantity: parseInt(request.body.quantity),
});
au singulier le item
Et tu peux placer un console.log(cart) avant ton push ?
Ah et d'ailleurs, le token de l'interaction qui te permet d'y répondre (edit, reply) est seulement valable pour 15 minutes, donc inutilisable pour quelque chose sur la durée
Merci pour tes réponses Enzo.
J'ai changé pour le singulier, ça ne fonctionne pas
et le console.log(cart) ne m'affiche rien dans la console 😫
le log apparait pas ou c'est un log a undefined ou autre ?
il n'apparaît pas
car du coup le soucis viens de là, il doit surement pas trouver l'élément
tu l'as mis avant le .push ?
oui
et la ligne 42 de ton main.js c'est bien le cart.items.push() ?
tu peux juste faire console.log('here : ', cart)
car ça se trouve il retourne un truc empty
oui c'est bien ça 🙂
donc ca s'affiche juste pas, au moins avec la string on verra si c'est bien call
Je n'ai toujours rien avec console.log('here : ', cart) placé juste au dessus du push
tu appelles bien la route pour déclencher le log ? 
Il me semble que oui 😋 désolé je débute je n'ai pas encore tous les bons réflexes
// On cherche le propriétaire du panier
Cart.findOne({ owner: request.user._id }, function (err, cart) {
// on ajoute le produit au panier
console.log('here : ', cart)
cart.items.push({
item: request.body.product_id,
price: parseFloat(request.body.priceValue),
quantity: parseInt(request.body.quantity),
});
bah tu as toujours l'erreur lorsque tu test ? logiquement oui avec le log juste au dessus
Ah, bon bah au moins problème réglé 😂 merci beaucoup
oui j'ai toujours la même erreur dans ma console sur mon IDE
tu as bien restart aussi ton api ?
plein de fois 😩
oui dans ma boucle dans mon cart.ejs
<%- include('../layout.ejs'); %>
<div class="container mt-5">
<h1>Mon panier</h1>
<% if(foundCart.total === 0){%>
<h2 class="alert alert-warning">Votre panier est vide !</h2>
<a href="/" class="btn btn-dark">Retour à la boutique</a>
<% } %>
<div class="row">
<div class="col-md-6">
<!--Boucle pour afficher les produits ajoutés au panier-->
<% for (var i = 0 ; i < foundCart.items.length; i++) { %>
<div class="list-group">
<span class="list-group-item">
<div class="row">
<div class="col-md-3">
<span><img src="<%=foundCart.items[i].item.image %>" class="img-fluid" alt="<%= foundCart.items[i].item.name %>"></span>
</div>
<div class="col-md-6">
<p class="list-group-item-heading"><%=foundCart.items[i].item.name %></p>
</div>
<div class="col-md-3">
<p><%=foundCart.items[i].item.quantity %></p>
<p><%=foundCart.items[i].item.price %> €</p>
</div>
</div>
</span>
</div>
<% } %>
</div>
</div>
commente le cart.items.push (tout ce bloc) pour voir ? 🤔 (si tu as toujours l'erreur)
TypeError: Cannot read property 'total' of null
okay tu as un soucis sur le card il est undefined ou autre
si tu regardes dans ta collection
tu as bien l'item qui existe ? 🤔
j'ai bien items qui s'affiche comme un Array, mais vide. Item, price et quantity ne sont pas insérés
et le "cart" est créé lorsqu'un utilisateur s'inscrit:
router.post("/signup", function (request, response, next) {
async.waterfall([
function (callback) {
var user = new User();
user.profile.firstname = request.body.firstname;
user.profile.lastname = request.body.lastname;
user.email = request.body.email;
user.password = request.body.password;
user.profile.picture = user.gravatar();
//fait une requête vers la BDD
User.findOne({ email: request.body.email }, function (err, existingUser) {
if (existingUser) {
// console.log(request.body.email + "Déja enregistré dans la BDD");
request.flash(
"errors",
"Email déjà présent dans la base de données."
);
return response.redirect("/signup");
} else {
// On enregistre alors dans la BDD
user.save(function (err) {
if (err) return next(err);
// response.json("Nouvel utilisateur créé");
callback(null, user);
}); // fin de save
}
}); // fin de findOne
},
function (callback, user) {
var cart = new Cart();
cart.owner = user._id;
cart.save(function (err) {
if (err) return next(err);
// return response.redirect("/");
request.logIn(user, function (err) {
if (err) return next(err);
return response.redirect("/profile");
});
});
},
]);
});
je regarde juste après
Bonsoir
je voudrais savoir si c'est possible de mettre des ligne au milieux dans un embed =
j'ai essayé les caractère invisible, sans résultat.
Pouvez vous m'aider ?
sa fonctionne, mais sur téléphone on vois des truc
hmm
Tu auras toujours un problème entre PC et portable à mon avis
ha
Oublie pas aussi qu'en fonction de la taille des écrans, faire des petits tricks comme ça, ça rendra pas toujours bien
j'ai fait autrement merci beaucoup
j'ai une autre petite question
ici, je voudrai qu'il supprime le crea#### après 3 seconde imaginons, j'ai essayé message.delete(3000) aucun résultat vous pouvez m'aider s'il vous plaît ?
merci
Le crea### ?
C'est-à-dire ?
se que je met apres le prefix
enfaite
je fait ^crea7834
je voudrais qu'il dellete crea7834
Tu es en v13?
normalement message.delete({ timeout: 3000 }) dans ta condition alors
Bonjour,
Je veux exécuter un truc et après faire le reste parce que le forEach prend du temps a s'exécuter ducoup ça fait les autres trucs et mon code bug sans le forEach exécuté en premier.
Comment on exécute un truc et après on fait le reste du code ? (les async/await marche pas)
Tu veux utiliser les promesses
Genre Promise.all
Ou alors utiliser une boucle for basique
ça marche pas:
let backupLenght = 0;
new Promise(async (resolve, reject) => {
await this.client.managers.backup.list().then(async back => {
back.forEach(async backk => {
await this.client.managers.backup.fetch(backk).then(async backkk => {
if (backkk.data.guildID != message.guild.id) return;
backupLenght++;
console.log(backupLenght);
});
});
});
});
je sais pas comment on fait et je sais pas si c'est possible avec mon code
Car t'as pas appliqué ce que je t'ai dit 😏
t'as pas l'air de savoir ce qu'est une promise Mime, donc t'emmerdes pas trop et remplace juste ton forEach par un for
comment on fait un for ? 😅
avec mon code
The for...of statement creates a loop iterating over iterable
objects, including: built-in String, Array, array-like
objects (e.g., arguments
or NodeList), TypedArray, Map,
Set, and user-defined iterables. It invokes a custom iteration hook with
statements to be executed for the value of each distinct property of the object.
Hello les amis, je sais pas trop ou mettre ca mais j'aurais besoin d'un conseil...
Quel est le meilleur moyen ( meilleur langage / api / méthode ) pour gérer les données d'un site web ?
PS : Je souhaite faire un système de login + informations utilisateurs, et permettre aux administrateurs du site de modifier les données de certaines pages via un formulaire par exemple, pour entrer les nouvelles données qui apparaitront sur la page, si ce n'est pas clair n'hésitez pas à me poser des question et je vous donnerais tous les détails possible !
Ya pas de " meilleur moyen ", ça va dépendre de ton besoin
Te faut un front, qui sera forcément en HTML / CSS avec du javascript pour faire un truc propre
Une base de données
Et pour le back, soit du PHP ou alors du nodejs selon tes prefs
Perso j'ai une grosse pref pour le JS, je fais tout en JS
Genre un front avec React (angular ou vue) et un back avec un truc comme NestJS
Je ne connais pas tout ca... En fait je débute, j'apprends !
Node JS j'ai regardé un peu et ca m'a l'air quand même très compliqué
Non en vrai ça va
Et en Node JS c'est quel style de base de donnée ?
Ce n'est pas faisable avec juste Javascript et du JSON je suppose ?
NodeJS c'est pas une base de données
Oui mais après quand tu fais ca avec Node JS
Tu peux mettre ce que tu veux en bdd, mais encore une fois, en fonction du besoin (SQL, NoSQL, etc ..)
Tu peux save dans du json si c'est de la petite données
Sinon c'pas fiable
Préférence oue mais c'est aussi en fonction du besoin aussi derrière
Genre la pour ce que j'ai expliqué au dessus tu me conseillerais plutôt quel langage et type de bdd ? 😕
Désolé pour toutes les questions, j'apprends petit à petit en autodidacte donc j'veux voir sur quoi me lancer avant de bosser
Pour mettre en place un système de connexion / informations d'utilisateurs, et des informations modifiables pour certaines pages, depuis un formulaire sur une autre page ( un titre, ou une date par exemple )
Un projet + Apprendre ! 🙃
Si tu veux vraiment apprendre quelque chose, je te conseille le full JS
C'est ce qui se fait le plus dans le web
Javascript ? Et c'est quelle méthode qu'il faut utiliser avec pour gérer une base de donnée ?
Et dans le cas ou je veux faire simple / rapide, le PHP je suppose qui est le plus simple non ?
Renseigne toi sur Express, un framework nodejs
Oui généralement le PHP a une courbe d'aprentissage plus rapide
D'accord... 🙃
Tu fais ton .php et t'as tout dedans, donc ça va plus vite
Mais c'moins moderne que le JS
Yep j'vais voir, Node JS ca a l'air quand même plus complexe / long à apprendre
Donc j'vais check un peu Express, voir si ca me motive, sinon j'irais sur du PHP
Ca va, c'pas ultra compliqué je trouve
Après ça va dépendre de ton expérience et de ta capacité à apprendre
Quand tu débute sur tout ca, c'est compliqué XD
Oue mais tu débuteras sur des technos modernes :p
Bah écoute j'vais voir, si j'ai la foi de le faire XD
J'suis en train de check Express sur le net
Les trucs de npm et tout ca m'donne mal au crane
Jamais fait de Node JS, j'ai toujours trouvé ca chiant mdr
J'pense que j'vais le faire en php et en faire une copie pour bosser sur le Node JS et m'entrainer après
Hello ! Je suis entrain de faire un système de total d'heures et de minutes, et j'aimerais que quand j'arrive à 60 minutes, ça me rajoute une heure. En gros.
Je précise que je suis sur du NoCode, j'ai juste besoin de la logique de calcul, après je sais comment faire avec mon outil de no code.
Quelqu'un pourrait-il m'aider ?
Pour obtenir l’heure tu divises ta valeur par 60 et pour les minutes c’est ta valeur modulo 60
Logiquement
du coup Arrondi le hour évidemment
@hollow cairn
houla j'ai dis un truc qui fallait pas pour avoir ce drapeau ? x)
oui c’est pas très TOS de scraper un site
ahhh mais après y avais rien de malveillant dedans c'était juste pour récup des info sur des perso de LoL
j'voulais tester un bot sur ça mais du coup si c'est pas ouf de faire ça je vais abandonner l'idée x)
Ils ont pas une API pour ça lol ?
non mais après si c’est scrappé ça , ça va
Mais ils ont peut être une API public pour récupérer les infos d’user (enfin les infos public du moins)
je vais aller vérifier ça merci
Ducoup
envoie ton fichier json en question
Je n'arrive pas à créer mon bot Discord en Discord.js par Pilot2_#7896
Pour l'étape avec le fichier config.json sa ne me permet pas de lancer le Bot comme si il y avait une erreur
ah ok bah change le après
Je les changer de toute façon
tu as quoi comme message d'erreur ?
Je regarde en attendant je peut juste pas le lancer
ça doit pas venir de ton code je pense
Je sais pas, outils de vérification dit qu'il n'y a pas d'erreur et en plus je les copier coller du tuto.
Après le fichier config.json n'est n'a pas la même "image" que celui de index.js
je pense que ça doit venir de ton téléphone
c'est une hypothèse j'en suis pas sur mais pour moi ça doit venir de là
je ne pense pas que ça vienne du tel mais plutot du fait que manifestement tu ne require pas le fichier JSON et que du coup le token est undefined
my bad je dis de la merde
mais tu peut quand m^me le tracer avant pour etre sur
Moi je pense que ça vient de la
Tu devrais exports le json ou alors faire un fs.read du json
Et dans tous les cas le tracer pour etre sur qu'il soit bon
Ce serait bien aussi de voir l'erreur dans la console
Oui ?
Regarde tes mp
Merci quand même !
Comment ont fait déjà pour stopper sont bot sur vsc 😂
J'ai trouvé ptdrr
Va te coucher mdr
Je sais pas trop ou le mettre mais comment je peux passer une variable de Javascript à PHP ?
Pour afficher ou non dynamiquement un élément en vérifiant si une variable sessionStorage existe ou non
Il existait pas un autre moyen ?
Peut être
Je trouve que c'est le plus propre
J'apporte une solution, pas la solution
Je pense que le meilleur moyen c'est ça, si tu es d'un autre avis propose ta solution
Le but c'est qu'on partage des solutions après tout
Je trouve que c’est une bonne solution, simple et efficace
après à voir le contexte peut-être qu’il y a une manière plus simple de faire
Ou alors tu utilise juste du javascript directement pour modifier le dom ;/
Tu peux aussi utiliser AJAX
Ouais mais du coup ça passe pas vers php
C'est l'autre solution mais du coup ça fait créer une api
Ouais bah après php quoi 
Bah ouais mais ça répond pas à la question du coup mdrr
Il est vrai mais en même temps si c'est JUSTE pour faire de la génération de dom php est pas tellement utile... (ce n'est que mon avis après tout)
Les deux avis se valent
j'avoue que j'ai un peu de mal à comprendre aussi le passage de JS à PHP pour modifier le DOM
Si pour générer sa vue il utilise php cela dit ça me paraît plus cohérent de le faire là
l'inverse j'aurai trouvé ca plus logique
Mais du coup si tu as la valeur en JS pourquoi l'envoyer au PHP ? 🤔
(si c'est pour update le dom) @iron kettle
compliquer de donner une soluce implicite sans le contexte après..
Les cookies ont très bien fonctionné
Et c'est pour définir si un élément a une classe ou non avant que la page s'affiche, pour activer ou non une transition
Salut les hackerman, j'ai besoin d'un petit conseil, alors voilà je bosse sur un truc en ce moment et je dois faire un petit chat en ligne en temp réel. Je connais déjà socket.io mais je voit plein d'autre truc sympas aussi alors pour ce qui ont déjà fait ça vous me conseiller de use quoi ?
De ce que j’ai vu socket.io reste un bon choix pas la peine de se casser la tête à chercher un autre truc
Tu peux y combiner avec express et node
Tu trouveras pas mieux pour de la communication en temps réel
okay okay alors je reste sur ça merci 🙂
cc, est-ce que quelqu'un est déjà resté bloqué avec ce message sur nodejs?
c'est très chiant, ça doit bien faire 3H que je suis bloqué dessus
même en réinstallant le serveur ça persiste
t’as quelle version de node? et npm?
mh 🤔
Tu as essayer de delete le fichier package lock +node_modules et de redémarrer ?
j'ai tout essayé, ça reste bloqué :((
j'ai du copier le dossier nod_modules et le package-file.lock d'un autre bot x)
NOTE: Ca ne marche pas xD
ce n'est plus le même déso mais voici les dépendances
discord.js @discordjs/rest discord-api-types sequelize mariadb colors dotenv nconf moment @discordjs/opus discord-music-player ffmpeg fluent-ffmpeg
ça foire avec discord-music-player (ou discordjs/opus)
Normal
Discord bloque les bots musique maintenant
Essaye d’y enlever et de relancer ton bot
A cause des droits d’auteurs et tout le bordel
nan ce n'est pas à cause de ça :p
Tu as essayé de refaire un dossier de 0 au pire ?
Désinstaller réinstaller nodejs ?
je re-essaierai dans quelques jours
nan je ne peux pas le réinstaller
c'est sur pterodactyl
Quelqu'un fait du reverse d'apk ?
J'avais réglé ce soucis en faisant un : npm ci sur la nouvelle version
J'avais tenté de regen le package-lock.json mais ça semblait pas corriger le problème
Yep
Hello
Comment je peux envoyer les emojis flags comme 🇫🇷 via du discord.js
Parce que l'unicode ne le permet pas (idk why)
Par exemple 🇫🇷 --> \🇫🇷 (\🇫:regional_indicator_r:)
Ba si
Sa fonctionne pour moi
Mais j'ai réussi d'une autre manière, fallait prendre l'unicode
Avec \ devant lemojis ?
Non parce qu'il marche pas justement ce \
avec les flags
Ca donne un truc qui n'a rien à voir
Au final j'ai réussi, mais avec un package quoi
Non ça c'est un émoji donc si tu rentres dans le code ça ne marche pas
Sur la page discord ils disent qu'il faut utiliser le \ pour les avoir
mais du coup vu que c'est fucked up avec les flags tant pis
Il faut utiliser le \ quand ce n'est pas une emote Discord
Même avec une emote Discord, si tu copies 😄 par exemple, sur ton code tu vas avoir :smile: plutôt que l'émoji
Tu le copie depuis où ?
Généralement moi je vais sur ce site : https://getemoji.com/
Je copie direct de là dans mon code et j'ai aucun soucis
Copy and paste every emoji with 👍 no apps required. 😊🥺😉😍😘😚😜😂😝😳😁😣😢😭😰🥰
Oui ça prend l'unicode directement, je préfère, plus lisible au niveau du code
Sinon :
- Pour une emote Discord, suffit d'écrire le nom de l'emote
- Pour une emote server, utiliser l'ID directement. Pour avoir l'ID, mettre un anti slash devant l'emote
Hello j'essaie de faire une requête sql pour récupérer des informations dans une colonne, j'ai donc fait ma requête sql SELECT identifier FROM users WHERE firstname AND lastname = '${name}' ou name est le pseudo affiché sur un serveur discord, firstname et lastname sont deux colonnes différentes avec l'une le prénom et l'autre le nom de famille mais je ne sais pas trop si la requête va marcher ?
bah là tu demandes que le nom et le prénom sois la même chose
or là ça ne fonctionnera pas
SELECT identifier FROM users WHERE firstname = '${name}' AND lastname = '${name}'
fin d'après ce que tu veux faire je dirais plutôt
SELECT identifier FROM users WHERE firstname = '${name}' OR lastname = '${name}'
ouaip, si par contre il veut les deux égaux il peut faire : WHERE firstname, lastname = ${name} je sais plus si c’est good les , mais je crois sinon tu mets un AND
J'ai essayé comme tu ma dit mais la requête me renvoie rienn 😦
Enfin elle me renvoie []
name = ?
c'est normal car d'après ta requête pour avoir un résultat il faut que la personne ai la même chose comme nom et prénom
si tu n'as que le prénom ou le nom alors il faut utiliser la requête de Taink
Nann moi je veux que le prénom et le nom soient égaux à name
J'ai essaye ça sql SELECT identifier FROM users WHERE firstname, lastname = ${name} comme la dit @oak turret mais marche pas
let name = message.member.displayName;```
bah
SELECT identifier FROM users WHERE firstname AND lastname = ${name}
forcément que ça te renvoie rien, message.member.displayName c'est le nom du mec sur Discord on est d'accord?
et toi la avec la requête de Taink tu veux récupérer les utilisateurs pour lesquels le prénom ou le nom est égal au nom Discord donc c'est logique que ça te renvoie rien
Ouii voilà
Tu sais comment régler ton soucis du coup avec ce que je t'ai dit ou tu veux encore de l'aide?
dcp je peux faire cmt ?
Je sais pas du tout comment faire je connais pas du tout le sql, si tu pourrais m'aider stp?
Bah juste
SELECT identifier FROM users WHERE pseudo = '${name}'
le truc c'est que je vois pas la forme de ta base de données
Donc on est d'accord dans la table de ta base de données tu as 2 champs (firstname et lastname) et les deux ont toujours exactement la même chose à l'intérieur
oui
C'est étrange mais pourquoi pas
Dans ce cas ta condition c'est WHERE firstname = '${name}' AND lastname = '${name}'
Et si ça ne fonctionne pas c'est que tu t'es trompé dans tes explications
Ouepp pour le coup ça marche pas je vais essayé d'expliqué ça clairement
Tu es sur d'envoyer la bonne variable x) ?
Ouii quand je console log name j'ai bien le nickname discord
Ça c'est évident
C'est dans ta base de données que c'est pas comme ça
Ou alors c'est que tu n'as pas utilisé les backquotes pour écrire ta requête sql donc le ${name} n'est pas interprété
backquote = `
En gros je veux récuperer l'identifier grâce au firstname et lastname le seul problème c'est que ma variable name est une seule string
genre name = "Ruben Adams" alors que firstname et lastname sont 2 strings différentes genre firstname = "Ruben" et lastname = "Adams"
Si pour le coup je les utilisent
Bah c'est ce qu'on te dit
Toi tu demandes à ce que lastname = firstname
tu dois split ton name x)
Étant donné que c'est jamais le cas dans ta base de données tu n'auras jamais de résultat
Oui mais dans ce cas le je dois faire 2 requêtes
ah oui pr le coup c'est pas bon
tu vas faire
const [firstname, lastname] = name.split(' ');
Je suis oas dev js de base
var args = name.split(" ");
Okk Eno je te laisse faire x)
Et ensuite tu vas utiliser les variables firstname et lastname dans ta requête sql
WHERE firstname = '${firstname}' AND lastname = '${lastname}'
okk j'essaye ça mercii !
Si tu veux comprendre la syntaxe pour récupérer firstname et lastname il faut regarder du côté de la déstructuration
ça marche niquel merci
ok ok merci je vais check ça !
Bonjour j'ai essayé de créer une commande de kick pour mon bot discord mais dès que je l'essaye rien ne se passe, quelqu'un aurait une solution ?
Code :
module.exports.config = {
name: "kick",
execute(client, message, args) {
if (!message.member.hasPermission("KICK_MEMBERS")) {
return message.reply(Tu n'as pas la permission d'effectuer cette commande !)
}
let member = message.mentions.members.first();
if (!member) {
return message.reply(`Merci de dire quel utilisateur je dois expulser !`)
}
if (member.id == message.author.id) {
return message.reply(`Tu ne peux pas t'auto expulser !`)
}
let reason = args.slice(1).join(" ") || "Expulsé par la modération"
member.kick({ days: 0, reason: reason }).then(() => message.reply(`L'utilisateur a été expulsé !`))
}
}
Bonsoir
j'ai une erreur que je ne peux pas comprendre/fix
Si quelqu'un peut m'aider
Je peux lui send 2$ PayPal
dans ton member.kick mets juste ({ reason })
ton days: 0 ne sert à rien vu que ton kick n'est pas permanent
et aussi rajoute des "" dans tes return message.reply()
Bonjour je connais parfaitement html et CSS mais pas du tout js
Quelqu'un pourrait me dire comment faire un les truc qui descend ou qui monte sur le cote
pas besoin 🤔
il y a des `
c'est juste l'affichage discord
ah oui ok j'ai pas fais attention
@grizzled cedar pas la peine de spam si quelqu'un de qualifier peut t'aider quelqu'un le fera
Spam ?
tu l'envoies une fois et tu attends que quelqu'un te viennes en aide
Je l'ai remis une deuxième fois au cas ou les gens pensent que ca dêjà été fix
ou que j'ai plus besoins d'aide
y a pas besoin t'inquiète quelqu'un va venir t'aider et si le problèmes est déjà réglé et bah tant mieux
T'as t'Es règles ?
Calme toi frrot
Je l'ai send juste une deuxième fois
pas besoins de forcer
tu me l'as dêjà dis
Ecoute on va clôturer cette discussion ici ce n'est pas le sujet principal du salon ^^
J'préfèrerais oui
Quelqu'un qui s'y connaît en react native ? j'ai une erreur mais je comprends pas le pourquoi du comment
Fin si mais l’erreur n’est pas cohérente
Bonsoir, j'ai un petit problème je suis souhaite aller dans cette branche ci dessous mais je ne sais comment :
console.log(message.reactions.cache)
C'est une map*
Regarde la Doc, t'as tout ce qu'il faut pour travailler avec
Je ne sais pas ce qu'est la doc
la documentation javascript
JavaScript (souvent abrégé en « JS ») est un langage de script léger, orienté objet, principalement connu comme le langage de script des pages web. Mais il est aussi utilisé dans de nombreux environnements extérieurs aux navigateurs web tels que Node.js, Apache CouchDB voire Adobe Acrobat. Le code JavaScript est interprété ou compilé à la volée ...
Je dois chercher quoi dessus ?
Ça
Sinon
Je dois chercher quoi ? je ne voie pas de [[Entries]]
Tu cherches à faire quoi ?
console log ton array [[Entries]] ?
Je veux entrer dans la branche [[Entries]] avec sa console.log(this.msg.reactions.cache...)
envoie ton code je veux essayer un truc voir si c'est ce que je pense
nextPage() {
if (!this.msg) throw new Error("Tried to go to next page but embed pages havn't been created yet.");
this.currentPageNumber++;
if (this.currentPageNumber >= this.pages.length) this.currentPageNumber = 0;
const embed = this.pages[this.currentPageNumber];
if (this.pageFooter) embed.setFooter(`Page: ${this.currentPageNumber + 1} / ${this.pages.length}`);
this.msg.edit({ embed: embed }).catch(() => null);
const autre = new db.table('autre')
// ICI
console.log(this.msg.reactions.cache)
const usersss = this.pages[0].description
const userssss = usersss.slice(2, 20)
let url = autre.get(`chemin_${userssss}.chemin`)
console.log(url)
chemin = cheminfond[this.currentPageNumber]
if (this.msg.embeds[0].title === "Opte pour un fond d'écran") {
if (chemin !== url) {
let niv = true
this.msg.react(":white_check_mark:")
}
if (chemin === url) {
let niv = true
this.msg.reactions.resolve(":white_check_mark:").users.remove("570498423732699147");
}
}
if (this.msg.embeds[0].title === "Opte pour un fond d'écran") {
if (chemin === url) {
let niv = true
this.msg.react(":x:")
}
if (chemin != url) {
let niv = true
this.msg.reactions.resolve(":x:").users.remove("570498423732699147");
}
}
}
non aucun des deux
bas j'ai pas compris
Je suis pas un expert du JS mais en gros le fonctionnement d'un array tu le connais j'pense
un map va parcourir ton array et afficher toutes les valeurs stocker dedans
donc là pour que ta map parcours ton array je pense que tu dois faire console.log(this.msg.reactions.cache.map([ton array]))
@signal marsh
@keen narwhal sa ne marche pas
tu as bien mis les deux [[]] ?
oui oui
et si tu enlèves le .cache ?
Donc comme ceci ? console.log(this.msg.reactions.map([[[Entries]]]))
Si oui, non plus
Toujours indefined
console.log(this.msg.reactions.cache.map([[Entries]]))
ReferenceError: Entries is not defined
cette-à-dire ?
ton tableau d'émoji tu l'initialise où dans ton code ?
createPages() {
if (!this.pages[0]) throw new Error("Tried to create embed pages with no pages in the pages array.");
if (this.pageFooter) this.pages[0].setFooter(`Page: 1/${this.pages.length}`);
this.channel.send({ embed: this.pages[0] }).then(msg => {
this.msg = msg;
const autre = new db.table('autre')
const usersss = this.pages[0].description
const userssss = usersss.slice(2, 20)
console.log(userssss)
console.log(this.msg)
let url = autre.get(`chemin_${userssss}.chemin`)
chemin = cheminfond[this.currentPageNumber]
console.log(url)
msg.react(":arrow_backward:").catch(() => null);
msg.react(":arrow_forward:").catch(() => null);
msg.react(":stop_button:").catch(() => null);
if (msg.embeds[0].title === "Opte pour un fond d'écran") {
if (chemin !== url) {
let niv = true
msg.react(":white_check_mark:")
}
}
if (msg.embeds[0].title === "Opte pour un fond d'écran") {
if (chemin === url) {
let niv = true
this.msg.react(":x:")
}
}
const filter = (reaction, user) => {
if (user.bot) return false;
if (!this.restricted) return true;
else if (this.restricted instanceof Function) return this.restricted(user);
else if (Array.isArray(this.restricted) && this.restricted.includes(user.id)) return true;
else if (typeof this.restricted === "string" && this.restricted === user.id) return true;
};
const collector = msg.createReactionCollector(filter, { time: this.duration });
collector.on("collect", async (reaction) => {
switch (reaction.emoji.name) {
case "▶️":
return this.nextPage();
case "✅":
return this.nivchoice();
case "❌":
return this.pasnivchoice();
case "◀️":
return this.previousPage();
case "⏹":
return this.delete();
}
});
collector.on("end", async () => {
this.msg.reactions.removeAll().catch(() => null);
});
});
}
tu as que ça comme code ?
nn
oui c'est dans le même
essaye de console log à la fin de ton switch
regarde tes mp
d'accord c'est quoi le switch pour toi ?
const collector = msg.createReactionCollector(filter, { time: this.duration });
collector.on("collect", async (reaction) => {
switch (reaction.emoji.name) {
case "▶️":
return this.nextPage();
case "✅":
return this.nivchoice();
case "❌":
return this.pasnivchoice();
case "◀️":
return this.previousPage();
case "⏹":
return this.delete();
}
console.log(this.msg.reactions.cache.map([[Entries]]))
});
ou
const collector = msg.createReactionCollector(filter, { time: this.duration });
collector.on("collect", async (reaction) => {
switch (reaction.emoji.name) {
case "▶️":
return this.nextPage();
case "✅":
return this.nivchoice();
case "❌":
return this.pasnivchoice();
case "◀️":
return this.previousPage();
case "⏹":
return this.delete();
}
console.log(this.msg.reactions.cache.map(reaction.emoji))
});
@signal marsh
sa ne fait rien
Hello, je rencontre un problème avec discord.js, j'ai l'impression que la permission 'SEND_MESSAGES_IN_THREADS' n'existe tout simplement pas,et je ne comprends pas comment faire
en fait j'ai l'impression que le bitfield existe mais pas le flags
pourquoi t'as besoin de les console.log d'ailleurs ?
mais par contre je comprends vraiment pas la structure de ton bot du coup j'vais pas pouvoir t'aider là j'ai plus de solution en tête
Essaye de voir avec Calypso demain si il peut t'aider mais là je vois vraiment pas quoi faire
Ok merci quand même @keen narwhal
j'crois que les bots ont pas encore la possibilité d'envoyer des messages dans les threads
ah si si x)
là est pas le problème
le problème en gros
c'est que si j'essaye de mettre la permission 'SEND_MESSAGES_IN_THREADS' dans un channel, il me sortira une erreur. Pire encore, elle n'est même pas affiché dans les flags, l'unique différence est dans les bitfields
ah bizarre j'ai jamais eu l'occasion de rencontrer cette erreur je vais pas pouvoir t'aider sorry
pas de soucis 👀
C'est pas un intent c'est une permission de rôle
J'ai dit que c'était un intent ?
Erreur de ma.part si c'est le cas
Mais j'ai trouvé
Je suis juste pas dans la bonne version de discordjs@v13
Les nouveaux panels ?
Les boutons tu veux dire ?
oui effectivement merci mdr
excuse moi du ping , tu t'en est deja servis ? car jarrive pas a recup le faite que quelqun appuie dessus pour lui donner un role
perso g un fichier interactionCreate et je retrouve quand la personne click sur le bouton
je comprend rien mdr
ah
j'y suis depuis hier soir mdr
yes
const { SlashCommandBuilder } = require('@discordjs/builders');
const { CommandInteraction,MessageButton,MessageActionRow,client } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('br1')
.setDescription('5 premier role'),
/**
*
* @param {CommandInteraction} Interaction
*/
async execute(Interaction) {
const row = new MessageActionRow()
.addComponents(
new MessageButton()
.setCustomId('info')
.setLabel('Informatiques')
.setStyle('SECONDARY')
.setEmoji('899297990102093834'),
new MessageButton()
.setCustomId('periph')
.setLabel('Périphériques')
.setStyle('SECONDARY')
.setEmoji('899298168351645756'),
new MessageButton()
.setCustomId('bote')
.setLabel('Beauté & Soins')
.setStyle('SECONDARY')
.setEmoji('899298355241422909'),
new MessageButton()
.setCustomId('audio')
.setLabel('Audiovisuels')
.setStyle('SECONDARY')
.setEmoji('899252415210070057'),
new MessageButton()
.setCustomId('bouffe')
.setLabel('Nourriture')
.setStyle('SECONDARY')
.setEmoji('899303352033218571')
.addComponents('')
);
await Interaction.reply({ content: 'Cliquez sur les boutons pour recopier les rôles qui correspondent !', components: [row] });
if (!Interaction.isButton()) return;
console.log(Interaction);
}
}
j'utilise ca
ca fais spawn mes bouton
normale
c'est quoi mdr ?
dans un autre fichier js g sa
const { readdirSync } = require('fs')
const { MessageEmbed, MessageActionRow, MessageButton, MessageAttachment } = require('discord.js')
if (interaction.isButton()) {
if (interaction.customId === 'Music') {
const embed = new MessageEmbed()
.setTitle('Musique')
.setDescription('Quelle musique voulez-vous jouez ?')
.setFooter(`Demandée par ${interaction.user.username}`, interaction.user.displayAvatarURL())
.setColor("1C86D3")
.setThumbnail('https://i.ibb.co/tXbvbM1/PP-Muzikae.png')
.setImage('https://i.ibb.co/MGyvMJ4/Banni-re-Muzikae.gif')
.setTimestamp();
interaction.reply({embeds: [embed]}).catch(err => console.log("Une erreur est survenue ! \n \n" + err))
}
}
@pulsar fiber
whut
ouaip
Salut je suis sur React et je cherche a savoir si il est possible de changer une state dans un autre fichier
Fichier bouton
Fichier principale
Si c'est le parent oui tu peux passer par tes props
Si aucune liaison tu passes par un Store
(redux par exemple)
Justement enfaite le props j'arrive pas a faire en sorte de pouvoir le modifier dans le bouton ensuite
Je vous envoie demain la soluce, je vous expliquerais en même temps comment s’utilise les boutons, l’event, et les row + les components
Ta fonction n'est jamais déclenchée sous cette forme
tu dois soit faire onClick={() => ChangeMyState()} ou onClick={ChangemyState}
Merci mdr
np 🙂
Juste ? La réponse est con et j'en suis pas loin ou je suis vraiment a l'écart ?
Une mauvaise utilisation en parti, après sinon t’as mis un .addComponents() dans un MessageButton or ca n’a rien à faire là, ça doit se mettre dans un MessageActionRow mais je t’explique demain
Ouai je m'en suis rendu compte mdrrr enfaite j'étais entrain de tester plein de truc et je sais pas pourquoi vsc ma proposé ça
Il prend pas en compte si ça fait parti de la classe vsc mais je t’explique plus en détail demain
puis maintenant les boutons doivent s’init dans le row fin bref je t’explique demain
Bonsoir comment mettre cette espèce de brochure dans un embed ?
> le msg
Donc comme ceci ? @queen ocean
help_embed.addField(>"❯ :tada: Commandes Fun [7]:", ">-``c/emoji``: Vous affiche les emojis du discord. \n -``c/amour [@personne1] [@personne2]``: Permet de faire un test d'amour entre 2 personnes. \n -``c/iss``: Donne la position de l'ISS. \n -``c/nasa``: Donne la photo du jour du site de la nasa. \n -``c/espace``: Donne une photo de l'espace \n -``c/meteo [Ville]``: Vous permet de voir la méteo de la ville défini. \n -``c/meme``: Permet de mettre un meme.")
Euh non
Non dans ton string
Trop fast
haha
Sans vouloir juger, mettre un > sur le name et sur la value de ton field, ça va pas être très beau
tkt je vais d'abord essayer
mmh
Cependant
On peut mettre en citation tout un paragraphe juste en mettant >>> devant
Oui
Du coup je t'explique ! Désolé du retard
Donc voici mon code que je vais t'expliquer :
let row = new this.row()
.addComponents( new this.button()
.setCustomId("lartaxx_button_verif")
.setLabel("[✔️] - Me vérifier")
.setStyle("SUCCESS"));
let embed_captcha = new this.embed()
.setColor("#2f3136")
.setImage("attachment://file_img_captcha.png");
return message.channel.send({components: [row], embeds: [embed_captcha], content: "Suivez les instructions pour pouvoir accéder au discord !", files: [f_img_captcha]});
}
Le row sert à compacter tes boutons, tu peux très bien faire 20 boutons et foutre un array de 20 élements dans ton .addComponents() ou bien en mettre qu'un.
Je t'explique pas le code du bouton qui est assez clair
Pour l'envoyer c'est très simple, l'objet components attend ton row, donc ton array, donc comme dans mon code l'objet "components" sera un tableau de 20 élements et plus préciséments 20 boutons
Si t'as des questions, j'y répondrais
le this.row(), c'est perso car j'exporte mes libs dans mon client et que je re-use dans mes commandes, mais si tu require juste les boutons, t'auras juste new MessageButton() et new MessageActionRow()
Ouais en effet, 5 boutons par actionRow et 5 actionRow sois 25 boutons max par message
Oula alors j'ai a moitié compris mdr
Mais merci de m'éclairer je commence à comprendre le bordel , moyen ce weekend de voc pour que j'essaie de mettre ça en place ?
Pas de soucis sinon après c'est les vacances donc quand tu pourras ^^
hey, j'ai une petite question.
j'aimerais check si l'id du channel du message fait partit d'un des channels dans mon array, comment je peux faire ?
[
{
channel: { id: '900463707560243240', owner: '697865724051587142' }
},
{
channel: { id: '900463706171932754', owner: '437930993182310401' }
}
]
j'aurais penser à un if (message.channel.id == a ton array) {} ou direct ton ton id du channel
mais pas sure
const idExist = array.find(item => item.channel.id === message.channel.id)
Si tu veux un Boolean, tu as la fonction .some()
j’suis dispo cet après-midi si tu veux et ce soir
Hey , Je rentre chez moi vers 16h si tu est encore dispo pourquoi pas et ce soir sans problème
Pas de soucis
@oak turret je suis dispo si tu veut
désolé je récupérais mon repos qui me manque 
Pas de soucis ^^
J'arriverai vers 21h40 sûrement pour ce soir ping moi quand tu est dispo ^^
Pas dispo ce soir sorry ^^
Hey, j'ai une question comment je pourrais faire pour rester connecter sur un site via un http.request j'arrive a me login sur le site mais quand je fait un get par la suite c'est déconnecter ? merci d'avance
Les cookies ou localStorage
Bonsoir
j'ai un problème
sur visual studio mon bot fonctionne
mais quand je le met sur l'hébergeur, sa bloque
pouvez vous m'aider ?
Est-ce que la version de node de ton serveur est la même que celle de ton PC ?
@cyan iron le problème des ptero personnellement c'est que la console marche pas mdr
Comment ça ?
Le bot restant bloquer en démarrage d'après le ptero
Les commandes effectuées dans la console ne s'exécute pas
😉
Vous avez de bonne hébergeur a conseillé pour vraiment pas chère l'histoire de 1 ou 2€ qui marche vraiment pas juste une partition de ptero ou le mec peut voler votre code a tout moment ?
Bon bah du coup oui contactes ton hébergeur @keen narwhal
Sinon go heroku
bot-hosting.net c'est à un pote
Hello, je souhaite changer uniquement le titre de la fenêtre modale du bouton s'inscrire du bas, je sèche. J'ai besoin de vos lumières s'il vous plaît.
Je vais aller voir Merci ^^
mon code :
En gros tu regardes des vidéos et t'as des points
Avec les points t'as de quoi host
C'est gratuit et c'est plutôt stable si tu veux un petit bot
Sinon bah payes un VPS bg
Tu veux juste changer le nom ici ?
yep, c'est ça
En cliquant sur le bouton ?
changer en "Atelier fleurs sèches" au click
oui au click sur le bouton s'inscrire du bas
Aaaah j'ai compris ce que tu veux faire okay
Met un identifiant à ton element
Puis tu getElementById et tu changes le innerHTML
Je vais mieux expliquer attends
je vais déclarer une nouvelle variable avec ce nouvel id ?
En gros tu dois avoir un truc du genre
<h2 id="popupName">Atelier fleurs fraîches</h2>
et dans ton event button click :
document.getElementById('popupName').innerHTML = "Atelier fleurs sèches"
En gros ton innerHTML c'est tout ce qui est entre tes balises
Merci 🙂 je vais tester ça
@cyan iron ça ne fonctionne pas, je ne sais plus comment on fait 😩
Tu es sûr que ton titre a pour ID modalName
oui,
C'est censé fonctionner, il y a forcément une erreur quelque part, le bouton c'est bien le bon ?
Et comment tu différencies si c'est le bouton du haut ou le bouton du bas là
fallait mettre l'id sur le bouton du bas ?
Bah en tout cas sur ton screen je ne vois aucun endroit où tu utilise un id
👀
Non non
Ouais je suis bigleux mdr
Il faudrait l'erreur dans la console oui
Effectivement s'il y a une erreur
Bonsoir a tous !, comment je peux recuperer le message id de l'embed qui a été envoyer ?
merci d'avance
@cyan iron nope il n'y aucun problème dans la console 😕
Je ne sais pas pourquoi ça fait ça, c'est censé fonctionner pourtant
Inverse la ligne 10 et 11
ça ne change rien ^^
Je m'en doutais
C’est quoi le soucis
Remonte la conv tu vas bien voir, c'est bizarre que ça fonctionne pas
un peu la flemme je suis sur tel
juste me faire un récapitulatif code et le but ce serait parfait pour quand je rentre 
Vous avez 2 heures
En gros @queen quiver a un seul et même pop up d'inscription pour 2 boutons différents
Elle veut juste faire en sorte que le titre soit changé en cliquant sur le deuxième bouton
le résumé ici ^^
Donc j'ai proposé de modifier le innerHTML pour ça, c'est simple et efficace, mais visiblement ça fonctionne pas
Soit tu mets un .then(msg => {...}) après, soit tu créés une variable qui prend la valeur de l'objet du message une fois qu'il est envoyé (oublie pas d'await pour pas avoir de Promise<pending>
(fixe)
aaaaaaa
j'adore la manière dont tu dois créer les permissions des slash commands globales 
Enzo t'es sérieux mdrr

Salut, pour un bot, Js v12, comment on vois sa ?
Et quand il dit manquer ? Comment on les rajoutes ?
si il te manque une lib t’aurais des erreurs
tu regardes ton package.json
mais oui si tu avais import un package manquant tu aurais logiquement des erreurs
Bonjour est-ce que quelqu'un serait ou il y a une erreur je ne la trouve pas ^^
const Discord = require('discord.js');
const botconfig = require('../botconfig.json');
const fs = require('fs');
module.exports.config = {
name: "kick",
execute(client, message, args) {
if (!message.member.hasPermission("KICK_MEMBERS")) {
return message.reply(Tu n'as pas la permission d'effectuer cette commande !)
}
let member = message.mentions.members.first();
if (!member) {
return message.reply(`Merci de dire quel utilisateur je dois expulser !`)
}
if (member.id == message.author.id) {
return message.reply(`Tu ne peux pas t'auto expulser !`)
}
let reason = args.slice(1).join(" ") || "Expulsé par la modération"
member.kick({ reason }).then(() => message.reply(`L'utilisateur a été expulsé !`))
}
}
hey, tu es en v13 ou en v12 ?
V12
je suis encore débutant, c'est à quelle niveau/ligne que quelque chose ne va pas (désolé je comprend pas encore tout) ^^
un peux oui, je commence, je m'entraine en faisant des bots discord
Pour faire simple, tu as plusieurs types de données en javascript, les string (chaines de caractères), les nombres (int, float), les boolean, les array, les object etc.
Chaque type a ses caractéristiques : méthodes, définition, propriétés... et des utilités précises
Lorsque tu kick quelqu'un, selon la doc de discord.js@v12, tu prends en option la raison du kick, de type string (https://discord.js.org/#/docs/main/v12/class/GuildMember?scrollTo=kick)
Donc ce n'est logiquement pas un objet que tu vas utiliser, mais un string, donc par exemple
// With "
"@gmail"
// With '
'Game'
// With `
`InsertVar`
D'ailleurs, avant de te lancer dans la création de bot discord, je te conseille d'apprendre les bases du javascript, ce n'est pas très compliqué 👀
Tu as ta disposition la doc du mdn : https://developer.mozilla.org/en-US/docs/Web/JavaScript
et la doc de node.js : https://nodejs.org/en/docs/
- la doc de discord.js : https://discord.js.org/#/
- le guide de discordjs : https://discordjs.guide/#before-you-begin
Merci énormément, beh je vais aller commencer pas ca alors ^^ merci
Pas de soucis ! 👀 de très bons tutoriels youtube peuvent t'aider également en cas de besoin pour apprendre
Bonne chance soldat
Un objet n’a pas besoin de key si la key a le même nom que la variable
kick({reason: reason})
C’est la même chose que js kick({ reason })
Ah ?
Chavais pas
Autant pour moi
Merci
Enfin bon en tout cas en v12 le type attendu est manifestement un string x)
c'est pour ban la key
@thick basin soucis régler?
Yo, je vais péter mon crâne mais d'une manière très sale, je sais pas pourquoi ni comment ma ligne 49 s'exécute avant ma ligne 37
J'ai tout essayé j'ai mis des await partout j'ai enlevé les await
C'est la première fois que ça m'arrive c'est un délire le machin
Pardon j'ai mal screen
Bah parce que tu peux pas await un .filter
donc il est useless ton await
et donc le reste de ton code est exécuté en amont
Tu peux en faire une promise
c'est le forEach que je await nan ?
mais ce n'est pas magique await
suffit pas de mettre await devant n'importe quoi pour que ça fonctionne, il faut que ce soit une Promise pour que ton await recoive une validation ou une erreur pour passer à la suite ou non
(resolve et reject)
Normalement quand je met un await devant une fonction qui ne retourne pas de promise ça me met une erreur mais là non, j'aurais du vérifier au lieu de le mettre bêtement
Alors ça c'était une tentative desespérée 
je vois ça
Bon je fais une fonction du coup car même sans await ça me met le problème
j'ai essayé de le mettre asynchrone mais ça n'a pas fonctionné non plus
ton code va attendre l'execution de ta boucle pour passer à la suite mais le mieux c'est de te faire une Promise que tu viens resolve lorsque tout est finit
et comme ça tu call ta fonction avec ton fameux await
le foreach
tu peux me le screen stp
merde c'est moins drole que je l'esperai
tu iras pas dans mon dossier "les pépites" 
là ton async il a pas de rapport avec ton forEach
enfin je m'explique c'est pas ton forEach qui devient asynchrone
c'est le retour de ton forEach
c'est pas très clair comment je le dis
Je crois que j'ai compris
Mais sache que non ce n'est pas une solution ce que tu viens de faire
Fais toi juste une fonction pour venir executer tout ton code
Ok merci 👍
@cyan iron tiens si jamais tu ne comprend pas trop
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
tu peux regarder cet exemple
Comme ça dans ton Promise.all par exemple tu vas pouvoir envoyer ton embed car tout sera éxécuté
(que ça te serve d'exemple)
montre ton truc
En fait j'ai trouvé le problème
en fait ça vient de là
ça sort pas du then
je vais mettre un await plutôt qu'un then
ça changera rien ta boucle n'est pas asynchrone
si tu faisais juste un push dans ton forEach ca passerait car ta boucle irait assez vite
mais là c'est juste qu'elle est pas encore executé en entière car tu fais des requêtes etc
ça
c'est juste un exemple
de te dire que si ta boucle ne comprenait aucun traitement lourd ça passerait
ah ok je pensais que c'était une solution
Bon j'ai réussi bilan du truc j'ai juste utilisé un for
oui fallait m'écouter ici 
qui pourrais m'aider ? j'ai crée un systeme de vote tout simple mais le proleme c'est que ont voter autant de fois que l'on veut, qui c'est mettre en js une limite de click ou un truc comme ca
Salut j'aimerais savoir si c'est possible d'ajouter des balises dans du HTML grâce à du JS (une fonction lancée grâce à un button oninput par exemple)
(J'ai hésité entre ce salon et #html-css lol)
Hello!
Ce serait pour le rajouter comment ? (limite un screen du code html avec la ligne ou ça doit etre rajouté)
Par exemple on a un <table> et pour rajouter une tr et des td avec du contenu dedans
J'ai pas de code à montrer spécialement
Simplement un bouton pour rajouter des lignes dans un tableau
imaginons que ta structure html soit
<body>
<div class="container">
<table id="masupertable">
</table>
</div>
</body>```tu peux faire
```js
const table = document.getElementById('masupertable')
const tr = document.createElement('tr')
tr.textContent = 'Hello'
table.appendChild(tr)
Au lieu du .textContent, tu peux avoir .innerHtml et là carrement refaire du html sans avoir à créer d'element en plus
C'est à dire ?
Ben comme ça:
const table = document.getElementById('masupertable')
const tr = document.createElement('tr')
tr.innerHTML = '<td>Yop!</td>'
table.appendChild(tr)```
Du coup le premier exemple ça donnait ça:
<table id="masupertable">
<tr>Hello</tr>
</table>
Et le deuxieme:
<table id="masupertable">
<tr>
<td>Yop!</td>
</tr>
</table>```
Ok merci
Ok nice ça marche
Donc là mon code HTML c'est ça :
<table id="table-test">
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
</tr>
<tr>
<td>Donnée 1</td>
<td>Donnée 2</td>
</tr>
</table>
<button type="button" onclick="addRowandData('valeur')">Cliquez pour ajouter une donnée !</button>
Et en JS ça donne
function addRowandData(text) {
const table = document.getElementById('table-test')
const tr = document.createElement('tr')
tr.innerHTML = '<td>' + text + '</td>'
table.appendChild(tr)
}```
Maintenant j'aimerais bien utiliser la valeur d'un input text pour ajouter une donnée
Genre au HTML au lieu de faire addRowandData('valeur'), j'aimerais bien faire addRowandData(var), en ayant obtenu cette variable var d'un input text
Je finis de manger et je t’explique ça
Pas de soucis :)
Re @heavy path
Si l'input est voué a toujours etre le même tu peux directement faire comme ça:
<table id="table-test">
<tr>
<th>Colonne 1</th>
<th>Colonne 2</th>
</tr>
<tr>
<td>Donnée 1</td>
<td>Donnée 2</td>
</tr>
</table>
<button type="button" onclick="addRowandData()">Cliquez pour ajouter une donnée !</button>
function addRowandData() {
const table = document.getElementById('table-test')
const input = document.getElementById('inputId')
const tr = document.createElement('tr')
tr.innerHTML = '<td>' + input.value + '</td>'
table.appendChild(tr)
}```
et faut un submit ou pas ?
Comment ça ?
Non rien enft ça marche
Hello ptit prob mon bot met ça
encaught TypeError: message.guild.channels.find is not a function
Mon code
exports.run = (client, message, args) => {
var Discord = require("discord.js");
let reportUser = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!reportUser) return message.reply("Impossible de trouver cet user.");
let reportreason = args.join(" ").slice(22);
let reportEmbed = new Discord.MessageEmbed()
.setDescription("Reports")
.setColor("#D50A0A")
.addField("❯ Report User", `${reportUser} ID ${reportUser.id}`)
.addField("❯ Report par", `${message.author} ID ${message.author.id}`)
.addField("❯ Report depuis le channel", message.channel)
.addField("❯ Date", message.createdAt)
.addField("❯ Raison(s)", reportreason);
var reportschannel = message.guild.channels.find(reportschannel => reportschannel.name === "reports")
if (!reportschannel) return message.channel.send("Impossible de trouver le salon reports.");
message.delete().catch(O_o => {});
reportschannel.send(reportEmbed);
console.log(`Commande ${message.author.lastMessage} executé sur le serveur ${message.guild.name} dans le salon ${message.channel.name} par le membre ${message.author.username} le ${message.createdAt}`)
}
@peak cedar tu as oublier le .cache
et tu feras gaffe tu slice(22) au lieu de 2 je pense
je met .cache apres ça message.guild.channels.find(reportschannel => reportschannel.name === "reports")
apres le find ?
juste avant
avant le find ?
message.guild.channels.cache.find(reportschannel => reportschannel.name === "reports")
ok ouais c bien ce que je me disais
c'est pour un objet
sa marche du coup ?
ouep Merci ❤️
Hello ! J’ai une question, faut-il mettre tous les scripts dans un seul fichier JS, ou je peux créer un fichier JS par fichier HTML (J’ai appliqué cette dernière) ?
Comme tu veux !
Le mieux reste de bien séparer tes fichiers pour t'y retrouver
Ok super merci ! 🙂
Qui connaît de finnaly

🤔
un cours carrément
Pour t'expliquer que le finally etait appelé que ce soit un success ou une error ? 
mais oui c'est super pratique et mieux de s'en servir en fonction des cas, ca peut éviter des doublons de code ou autre le finally
Oui mais quand tu connais pas c'est galère 
Je suis lvl -1 en 
Mais donne moi un cas ou c'est important d'utiliser un finnaly plutot que de mettre le code après le try catch x)
Et oui je vais faire le crâneur car j'ai appris un truc en js 
Bah typiquement, imaginons que tu appelles un formulaire avec button
tu vas passer ton button en loading
Et bah au lieu de loading = false a la fin de ton try et dans ton catch
tu le fais juste dans ton finally
car dans tous les cas tu veux que ton button stop le loading
c'est un exemple tout bête, mais il est assez parlant
Quand tu sais par exemple que tu dois absolument couper une connection (imaginons avec un bdd) et que tu essaye d'avoir un code un minimum agnostique pour éviter les répétitions c'est assez utile d'utiliser un finally plutot que de le retaper à chauqe fois
Et un exemple où tu es "obligé" d'utiliser un finally c'est genre ça
function retrieveNumberFromFile() {
const filename = 'file.txt'
// ce code fonctionne pas mais ça illustre bien
const fileStream = Stream.open(filename)
try {
// imaginons ça peut throw une exception
return fileStream.unsafeRead()
} catch(e) {
return -1;
} finally {
fileStream.close()
}
}
Genre dans ce cas on veut quoi qu'il arrive fermer le fileStream
mais si tu return tu pourrais pas aller close après et ça t'évite de répéter deux fois le close()
Hello, Vous avez des avis sur l'utilisation que Sequelize ? Je voyais ça, cette ORM est sympa et utile dans l'ensemble mais je voulais savoir, pensez-vous qu'il est réellement fiable pour une utilisation type API REST pour un site de commercialisation, traitement de données ?
Moi ce qui me fait un peu peur avec celui-ci c'est les injections SQL
Puis est-ce que c'est réellement utile d'utiliser une lib qui pourrait générer des erreurs ou des failles au lieu du package mysql de base ?
Notifier moi SVP
Bonsoir, j'avez une question car je suis bon développeur php mais concernant JS c'est une autre histoire , je suis sur le développement d'un panel web , mais j'aimerais avec l'aide de JS , faire une genre d'actualisation de div toute les x minute si possible invisible pour l'utilisateur , pour qu'ils recharge les donnée si une autre personne ajoute du contenue bas qu'ils n'est pas besoin d'actualiser ça page
Si possible une function qui puisse étre réutiliser sur d'autre page car j'ai beaucoup de page ou je vais l'utilisez




