#javascript-typescript

1 messages · Page 89 of 1

sharp grail
#

waa alors je pense que c'est possible mais aucune idée de comment le realiser

oak turret
#

compresse le plutôt

sharp grail
#

ah yes meilleure idée mdrr

oak turret
#

t’as des libs pour ça, tu le compresse et tu l’envoies en tant qu’attachement dans ton message ou autre

wheat onyx
#

Bonsoir j'aimerais savoir comment faire pour régler ces problèmes

ashen rapids
#

Tu nous montres pas toute l'erreur là

wheat onyx
#

la c'est tout ce que j'ai

#

Je n'avais pas vu qu'il manquait des lignes :/

ashen rapids
wheat onyx
ashen rapids
#

Il te print pas tout 😂

wheat onyx
#

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

ashen rapids
#

Montre la ligne du dessus aussi

#

A mon avis t'as oublié une virgule

wheat onyx
#

ah je pense

#

Oui c'était ça :/

ashen rapids
#

Voilà 😅

wheat onyx
#

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

ashen rapids
#

Ya pas toute l'erreur non plus

wheat onyx
#

pourtant c'est sur vs code la

#

ah ok c bon att

ashen rapids
#

Tout est dit dans ton erreur pour le coup

wheat onyx
#

AbortController ?

ashen rapids
#

Oui

#

Qui n'estp as défini

wheat onyx
#

Maintenant j'ai aucune erreurs mais le statut ne marche pas

red torrent
#

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

sinful bone
#

super node-fetch

red torrent
sinful bone
#

Label ?

inner escarp
#

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é)

sinful bone
#

Juste le module qui avait des problèmes x)

civic dragon
#

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,
  },
});
trail trellis
#

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)

inner escarp
#

Il y a un tiret dans ta clé json donc utilise info["origin-network"] à la place de info.origin-network

inner escarp
trail trellis
ornate rune
#

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

ashen rapids
#

member.user.toString() pour mentionner

#

Mais le semble que dans le titre de l'embed, on peut pas mentionner

ashen rapids
# ornate rune

Et suffit que tu mettes un string vide. Et si ça passe pas, un caractère invisible

ornate rune
#

ah pas con merci je vais test

#

@ashen rapids comme ça ?

ashen rapids
#

Oui mais ça fonctionnera pas car comme je t'ai dit, me semble que tu peux pas dans le titre

ornate rune
#

ç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 ?

slim anvil
#

C’est ton content tu mets justes des retours à la ligne

ornate rune
#

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

slim anvil
ornate rune
#

hmmm je vois plus qu'a comprendre comment le mettre en oeuvre

#

c'est bon j'ai réussi merci à vous les gars

ashen rapids
#

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 ?

sharp grail
#

alors

#

yep je crois bien

ashen rapids
# sharp grail c'est à dire ?

Quand un utilisateur rejoint un Stage Channel via le Stage Discovery, tu peux pas récup l'utilisateur dans ton voiceStateUpdate

sharp grail
#

ça te renvoie l'id du user

ashen rapids
#

Du member non ?

sharp grail
#

dans après tu le fetch ou get depuis la guild ou depuis ton client

ashen rapids
#

The id of the member of this voice state

sharp grail
ashen rapids
#

Justement, s'il rejoint dans le Stage Discovery, il n'est pas mamber

#

Yep c'vrai

sharp grail
#

je vois ce que tu veux dire 🤔

ashen rapids
#

Mais relou de fetch à chaque fois, ça peut être une bonne feature request

sharp grail
#

c'est vrai bonne idée

ashen rapids
#

Bon bah le Stage Discovery va être supprimé de Discord lundi

sharp grail
#

what ?

ashen rapids
sharp grail
#

ah nan stage discovery x)

ashen rapids
#

Because of this, we’ve made the decision to sunset Stage Discovery starting on October 4, 2021.

sharp grail
#

ah ok je vois, merci de l'info 👀

sharp grail
#

mmh

#

Hello, es tu sur que ton code s'exécute

civic finch
#

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())

sharp grail
#

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 🤔

ashen rapids
#

Ceux qui ont déjà utilisé quickdb, je suppose qu'il y a des limites quand t'as beaucoup de data ?

keen narwhal
#

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

bright relic
#

tu as bien fais un "npm install dotenv" dans ta console ?

keen narwhal
#

oui

#

euh j'ai fais npm i dot

bright relic
#

dot et dotenv c'est pas la même chose

keen narwhal
#

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

bright relic
#

il faut mettre un
client.on('ready' => {})

keen narwhal
#

a la 4e ligne ?

#

ou 3e

slim anvil
#

t'as pas une erreur ?

keen narwhal
#

si

slim anvil
#

l'event ready ne changera rien

#

c'est quoi l'erreur

keen narwhal
dire latch
#

Il te manque les intents

#

Car tu es en V13

keen narwhal
#

Ah

#

Moi je regarde un tutoriel de 2020

#

24 aout 2020

dire latch
#

Il est en v12 sur le tuto sûrement

#

Faut regarder pour la v13 🙂

#

Ou sois, tu installes la v12

keen narwhal
#

c'est mieux la v12 ?

dire latch
#

Peu importe

keen narwhal
#

Ah oui ? Mais y'a une difference entre les deux nn ?

dire latch
#

Oui et non

#

Je te conseille d'aller check la doc ou autres

keen narwhal
#

ok

#

attends mais c'est oui que j'installe la version 12

#

Moi j'ai tout fait sur le terminal

dire latch
#

npm i discord.js@12.5.1

#

Par exemple

keen narwhal
#

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

dire latch
#

Yes

keen narwhal
#

Ok bon

#

C'est qu'un début

boreal edge
#

Yop !
Est ce que vous savez comment je peux faire pour récupérer une intéraction depuis son ID svp ?

ashen rapids
#

C'quoi le besoin de base ?

keen narwhal
#

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

slim anvil
#

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

keen narwhal
#

npm i nodemon ?

#

dans le terminal

boreal edge
# ashen rapids C'quoi le besoin de base ?

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

boreal edge
#

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

timid loom
#

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

boreal edge
#

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

ashen rapids
boreal edge
#

Ah ouais

#

Faut voir

#

J'vais test et je te dis

boreal edge
ashen rapids
#

Mmmm, je sais pas si c'est possible alors

#

Je connais peut-être pas assez bien la lib

boreal edge
#

Dac, thx

sharp grail
#

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

keen narwhal
#

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"),
      });
    });
});
slim anvil
#

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 ?

sharp grail
keen narwhal
# slim anvil au singulier le item

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 😫

slim anvil
#

le log apparait pas ou c'est un log a undefined ou autre ?

keen narwhal
slim anvil
#

car du coup le soucis viens de là, il doit surement pas trouver l'élément

#

tu l'as mis avant le .push ?

keen narwhal
slim anvil
#

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

keen narwhal
#

oui c'est bien ça 🙂

slim anvil
#

donc ca s'affiche juste pas, au moins avec la string on verra si c'est bien call

keen narwhal
slim anvil
#

tu appelles bien la route pour déclencher le log ? harold

keen narwhal
#

  // 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),
    });
slim anvil
#

bah tu as toujours l'erreur lorsque tu test ? logiquement oui avec le log juste au dessus

boreal edge
keen narwhal
slim anvil
#

tu as bien restart aussi ton api ?

keen narwhal
slim anvil
#

🤔 t'es sur que tu le loupes pas dans ta console ? 🤔

#

T'as un .items autre part ?

keen narwhal
# slim anvil T'as un .items autre part ?

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>
slim anvil
#

commente le cart.items.push (tout ce bloc) pour voir ? 🤔 (si tu as toujours l'erreur)

keen narwhal
slim anvil
#

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 ? 🤔

keen narwhal
#

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");
        });
      });
    },
  ]);
});
slim anvil
#

je regarde juste après

keen narwhal
#

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 ?

hazy mirage
#

👋 Essaye avec ce caractère à la place de tes \u2008

#

keen narwhal
hazy mirage
#

Ah :/

#

Essaye d’en trouver un autre

keen narwhal
#

hmm

ashen rapids
#

Tu auras toujours un problème entre PC et portable à mon avis

keen narwhal
#

ha

ashen rapids
#

Oublie pas aussi qu'en fonction de la taille des écrans, faire des petits tricks comme ça, ça rendra pas toujours bien

keen narwhal
#

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

keen narwhal
#

se que je met apres le prefix

#

enfaite

#

je fait ^crea7834

#

je voudrais qu'il dellete crea7834

hazy mirage
#

Tu es en v13?

keen narwhal
#

nan

#

v12

hazy mirage
#

normalement message.delete({ timeout: 3000 }) dans ta condition alors

keen narwhal
#

juste après {

#

okay merci

hazy mirage
civic finch
#

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)

ashen rapids
#

Genre Promise.all

#

Ou alors utiliser une boucle for basique

civic finch
#

ç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);
                    });
                });
            });
        });
civic finch
ashen rapids
slim anvil
civic finch
#

avec mon code

slim anvil
iron kettle
#

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 !

ashen rapids
#

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

iron kettle
#

Node JS j'ai regardé un peu et ca m'a l'air quand même très compliqué

ashen rapids
#

Non en vrai ça va

iron kettle
#

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 ?

ashen rapids
#

NodeJS c'est pas une base de données

iron kettle
#

Oui mais après quand tu fais ca avec Node JS

ashen rapids
#

Tu peux mettre ce que tu veux en bdd, mais encore une fois, en fonction du besoin (SQL, NoSQL, etc ..)

iron kettle
#

D'accord !

#

Et le langage du coup pareil c'est vraiment selon les préférences ?

ashen rapids
#

Sinon c'pas fiable

ashen rapids
iron kettle
#

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

iron kettle
ashen rapids
#

C'est pour quoi ?

#

Un projet vite fait ?

#

Tu veux vraiment apprendre un langage ?

iron kettle
ashen rapids
#

C'est ce qui se fait le plus dans le web

iron kettle
#

Javascript ? Et c'est quelle méthode qu'il faut utiliser avec pour gérer une base de donnée ?

iron kettle
ashen rapids
#

Renseigne toi sur Express, un framework nodejs

ashen rapids
iron kettle
#

D'accord... 🙃

ashen rapids
#

Tu fais ton .php et t'as tout dedans, donc ça va plus vite

#

Mais c'moins moderne que le JS

iron kettle
#

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

ashen rapids
#

Ca va, c'pas ultra compliqué je trouve

#

Après ça va dépendre de ton expérience et de ta capacité à apprendre

iron kettle
#

Quand tu débute sur tout ca, c'est compliqué XD

ashen rapids
#

Oue mais tu débuteras sur des technos modernes :p

iron kettle
#

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

misty pulsar
#

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 ?

slim anvil
#

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

keen narwhal
#

@hollow cairn

keen narwhal
#

houla j'ai dis un truc qui fallait pas pour avoir ce drapeau ? x)

slim anvil
#

oui c’est pas très TOS de scraper un site

keen narwhal
#

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)

slim anvil
#

Ils ont pas une API pour ça lol ?

keen narwhal
#

ah c'est pas con ça j'ai pas vérifier

#

j'y avais pas du tout pensé

slim anvil
#

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)

keen narwhal
#

je vais aller vérifier ça merci

tacit orchid
#

Ducoup

keen narwhal
#

envoie ton fichier json en question

tacit orchid
#

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

keen narwhal
#

en cachant ton token

#

tu le supprimes quoi

tacit orchid
keen narwhal
#

ah ok bah change le après

tacit orchid
#

Je les changer de toute façon

keen narwhal
#

tu as quoi comme message d'erreur ?

tacit orchid
#

Je regarde en attendant je peut juste pas le lancer

keen narwhal
#

ça doit pas venir de ton code je pense

tacit orchid
#

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

keen narwhal
#

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à

inner escarp
#

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

keen narwhal
#

ah ouais bien vu

#

j'avais pas remarqué

inner escarp
#

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

hollow cairn
keen narwhal
tacit orchid
#

Merci quand même !

still scroll
#

Comment ont fait déjà pour stopper sont bot sur vsc 😂

still scroll
#

J'ai trouvé ptdrr

worldly plank
iron kettle
#

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

timid loom
#

via les cookies

worldly plank
timid loom
#

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

oak turret
#

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

inner escarp
#

Ou alors tu utilise juste du javascript directement pour modifier le dom ;/

ashen rapids
#

Tu peux aussi utiliser AJAX

timid loom
timid loom
inner escarp
#

Ouais bah après php quoi kappo

timid loom
#

Bah ouais mais ça répond pas à la question du coup mdrr

inner escarp
#

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)

timid loom
#

Les deux avis se valent

slim anvil
#

j'avoue que j'ai un peu de mal à comprendre aussi le passage de JS à PHP pour modifier le DOM

timid loom
#

Si pour générer sa vue il utilise php cela dit ça me paraît plus cohérent de le faire là

slim anvil
#

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

timid loom
#

Ça doit être une session

#

Jsp

oak turret
#

compliquer de donner une soluce implicite sans le contexte après..

iron kettle
#

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

burnt perch
#

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 ?

keen narwhal
#

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

ashen rapids
#

Tu trouveras pas mieux pour de la communication en temps réel

burnt perch
#

okay okay alors je reste sur ça merci 🙂

jovial turret
#

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

oak turret
#

t’as quelle version de node? et npm?

jovial turret
#

j'ai nodejs 16, je ne sais pas pour npm

#

sûrement la dernière version

oak turret
#

mh 🤔

hazy mirage
jovial turret
#

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

hazy mirage
#

🤔

#

Envoie le package json

jovial turret
#

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)

keen narwhal
#

Discord bloque les bots musique maintenant

#

Essaye d’y enlever et de relancer ton bot

keen narwhal
jovial turret
#

nan ce n'est pas à cause de ça :p

keen narwhal
jovial turret
#

ouep

#

mais je pense que c'est une màj de quelque chose qui foire

keen narwhal
#

Désinstaller réinstaller nodejs ?

jovial turret
#

je re-essaierai dans quelques jours

#

nan je ne peux pas le réinstaller

#

c'est sur pterodactyl

keen narwhal
#

Ah

#

Ouais bah réessaye plus tard

sage folio
#

Quelqu'un fait du reverse d'apk ?

ashen rapids
#

J'avais tenté de regen le package-lock.json mais ça semblait pas corriger le problème

jovial turret
#

Yep

lone flax
#

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:)

dire latch
#

@lone flax

#

Tu peut explique pas compris 😅

lone flax
#

Bah

#

J'ai expliqué

#

Avec Discord.JS, tu peux pas envoyer d'émojis drapeaux

dire latch
#

Ba si

lone flax
#

Parce que

#

ca donne ça

dire latch
#

Tu met ceci

lone flax
#

Non mais je suis pas con non plus mdr

#

J'ai déjà mis ça

#

Justement ça marche pas

dire latch
#

Sa fonctionne pour moi

lone flax
#

Mais j'ai réussi d'une autre manière, fallait prendre l'unicode

dire latch
#

Avec \ devant lemojis ?

lone flax
#

Non parce qu'il marche pas justement ce \

#

avec les flags

#

Ca donne un truc qui n'a rien à voir

dire latch
#

\🇫🇷

#

Ah oui ok

lone flax
#

Au final j'ai réussi, mais avec un package quoi

dire latch
#

🇫🇷

#

Sa fonctionne si tu copie ça ?

lone flax
#

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

ashen rapids
lone flax
#

Même avec une emote Discord, si tu copies 😄 par exemple, sur ton code tu vas avoir :smile: plutôt que l'émoji

ashen rapids
#

Tu le copie depuis où ?

lone flax
#

Là c'est en unicode direct j'crois

#

Moi je copie depuis discord tout simplement

ashen rapids
#

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
unborn knot
#

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 ?

oak turret
#

bah là tu demandes que le nom et le prénom sois la même chose

#

or là ça ne fonctionnera pas

timid loom
#
SELECT identifier FROM users WHERE firstname = '${name}' AND lastname = '${name}'
oak turret
#

c’est plus : WHERE firstname = ${name} AND lastname = ${name}

#

ah bah voilà

timid loom
#

fin d'après ce que tu veux faire je dirais plutôt

#
SELECT identifier FROM users WHERE firstname = '${name}' OR lastname = '${name}'
oak turret
#

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

unborn knot
#

Enfin elle me renvoie []

spring dock
#

name = ?

red torrent
#

si tu n'as que le prénom ou le nom alors il faut utiliser la requête de Taink

unborn knot
#

J'ai essaye ça sql SELECT identifier FROM users WHERE firstname, lastname = ${name} comme la dit @oak turret mais marche pas

unborn knot
spring dock
#

bah

oak turret
spring dock
#

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

spring dock
#

Tu sais comment régler ton soucis du coup avec ce que je t'ai dit ou tu veux encore de l'aide?

unborn knot
#

Je sais pas du tout comment faire je connais pas du tout le sql, si tu pourrais m'aider stp?

spring dock
#

Bah juste

SELECT identifier FROM users WHERE pseudo = '${name}'
timid loom
#

le truc c'est que je vois pas la forme de ta base de données

red torrent
unborn knot
#

oui

red torrent
#

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

unborn knot
#

Ouepp pour le coup ça marche pas je vais essayé d'expliqué ça clairement

latent lynx
#

Tu es sur d'envoyer la bonne variable x) ?

red torrent
#

C'est bizarre d'avoir le displayName en firstname et en lastname

#

Ça n'a pas de sens

unborn knot
#

Ouii quand je console log name j'ai bien le nickname discord

red torrent
#

Ç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 = `

unborn knot
#

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"

unborn knot
red torrent
#

Toi tu demandes à ce que lastname = firstname

latent lynx
#

tu dois split ton name x)

red torrent
#

Étant donné que c'est jamais le cas dans ta base de données tu n'auras jamais de résultat

unborn knot
latent lynx
#

non

#

Att

#

tu as bien dit que name = "Ruben Adams" ?

unborn knot
red torrent
#

tu vas faire

const [firstname, lastname] = name.split(' ');
latent lynx
#

Je suis oas dev js de base


var args = name.split(" ");

#

Okk Eno je te laisse faire x)

red torrent
#

Et ensuite tu vas utiliser les variables firstname et lastname dans ta requête sql

#

WHERE firstname = '${firstname}' AND lastname = '${lastname}'

unborn knot
#

okk j'essaye ça mercii !

red torrent
#

Si tu veux comprendre la syntaxe pour récupérer firstname et lastname il faut regarder du côté de la déstructuration

unborn knot
#

ça marche niquel merci

unborn knot
thick basin
#

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é !`))
}

}

grizzled cedar
#

Bonsoir

#

j'ai une erreur que je ne peux pas comprendre/fix

#

Si quelqu'un peut m'aider

#

Je peux lui send 2$ PayPal

keen narwhal
#

ton days: 0 ne sert à rien vu que ton kick n'est pas permanent

#

et aussi rajoute des "" dans tes return message.reply()

twilit galleon
#

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

sharp grail
#

il y a des `

#

c'est juste l'affichage discord

keen narwhal
#

ah oui ok j'ai pas fais attention

grizzled cedar
#

Si quelqu'un peut m'aider

keen narwhal
#

@grizzled cedar pas la peine de spam si quelqu'un de qualifier peut t'aider quelqu'un le fera

grizzled cedar
#

Spam ?

keen narwhal
#

tu l'envoies une fois et tu attends que quelqu'un te viennes en aide

grizzled cedar
#

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

keen narwhal
#

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

grizzled cedar
#

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

keen narwhal
#

Ecoute on va clôturer cette discussion ici ce n'est pas le sujet principal du salon ^^

grizzled cedar
#

J'préfèrerais oui

keen narwhal
#

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

signal marsh
#

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)
ashen rapids
#

Regarde la Doc, t'as tout ce qu'il faut pour travailler avec

signal marsh
keen narwhal
#

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 ...

signal marsh
#

Je dois chercher quoi dessus ?

ashen rapids
#

Ça

#

Sinon

signal marsh
#

Je dois chercher quoi ? je ne voie pas de [[Entries]]

keen narwhal
#

console log ton array [[Entries]] ?

signal marsh
keen narwhal
signal marsh
#
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");
            }
        }

    }
keen narwhal
#

tu suis un tuto ?

#

écrit ou vidéo

signal marsh
#

non aucun des deux

keen narwhal
#

ok

#

tu as regarder la doc pour la map function ?

signal marsh
#

bas j'ai pas compris

keen narwhal
#

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

signal marsh
#

@keen narwhal sa ne marche pas

keen narwhal
signal marsh
#

oui oui

keen narwhal
#

et si tu enlèves le .cache ?

signal marsh
#

Donc comme ceci ? console.log(this.msg.reactions.map([[[Entries]]]))

#

Si oui, non plus

keen narwhal
#

console.log(this.msg.reactions.map([[Entries]]))

#

essaye avec ça

signal marsh
#

ok

#

non

#

Entries is not defined

keen narwhal
#

console.log(this.msg.reactions.map([Entries]))

#

et comme ça ?

signal marsh
#

Toujours indefined

keen narwhal
#

tu as besoin d'y accéder pour quoi ?

#

envoie un screen de ce qu'il y a dedans

signal marsh
#

pour get les emoji

#

@keen narwhal

keen narwhal
#

console.log(this.msg.reactions.cache.map([[Entries]]))

signal marsh
#

ReferenceError: Entries is not defined

keen narwhal
#

ah bah oui il est pas défini dans ton code

#

tu les définis où tes emojis ?

signal marsh
#

cette-à-dire ?

keen narwhal
#

ton tableau d'émoji tu l'initialise où dans ton code ?

signal marsh
#
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);
            });
        });
    }
keen narwhal
#

tu as que ça comme code ?

signal marsh
#

nn

keen narwhal
#

envoie ton fichier ou tu définis ton array d'émoji

#

ah mais c'est dans celui là ok

signal marsh
#

oui c'est dans le même

keen narwhal
#

essaye de console log à la fin de ton switch

signal marsh
#

regarde tes mp

keen narwhal
#

le fichier est trop long je vois pas tout le code

#

essaye ce que je t'ai dis

signal marsh
#

d'accord c'est quoi le switch pour toi ?

keen narwhal
#
            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

signal marsh
#

sa ne fait rien

sharp grail
#

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

keen narwhal
#

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

signal marsh
#

Ok merci quand même @keen narwhal

keen narwhal
sharp grail
#

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

keen narwhal
#

ah bizarre j'ai jamais eu l'occasion de rencontrer cette erreur je vais pas pouvoir t'aider sorry

sharp grail
#

pas de soucis 👀

red torrent
sharp grail
#

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

pulsar fiber
#

hey hey quelqun a un tuto pour faire les nouveau panel discord ?

ashen rapids
#

Les nouveaux panels ?

ashen rapids
pulsar fiber
pulsar fiber
oak turret
#

yes

#

c’est un event

#

clickButton c’est l’event

onyx gull
pulsar fiber
#

je comprend rien mdr

onyx gull
#

ah

pulsar fiber
#

j'y suis depuis hier soir mdr

onyx gull
#

yes

pulsar fiber
#
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

onyx gull
#

normale

pulsar fiber
#

et apres

#

bas jen sais rien mdrrrr

onyx gull
#

g la meme

#

mais un truc en plus

pulsar fiber
onyx gull
#

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

pulsar fiber
#

whut

onyx gull
#

c pas tout le fichier js

#

ta pas compris ??

pulsar fiber
#

non

#

mdr

#

je suis perdu

#

@onyx gullmoyen de voc ?

onyx gull
#

ouaip

floral bolt
#

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

slim anvil
#

Si c'est le parent oui tu peux passer par tes props

#

Si aucune liaison tu passes par un Store

#

(redux par exemple)

floral bolt
#

Justement enfaite le props j'arrive pas a faire en sorte de pouvoir le modifier dans le bouton ensuite

oak turret
flat sandal
#

tu dois soit faire onClick={() => ChangeMyState()} ou onClick={ChangemyState}

oak turret
pulsar fiber
# oak turret np 🙂

Juste ? La réponse est con et j'en suis pas loin ou je suis vraiment a l'écart ?

oak turret
pulsar fiber
oak turret
#

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

pulsar fiber
#

Oula

#

C'est chinois pour moi tout ça mdr

signal marsh
#

Bonsoir comment mettre cette espèce de brochure dans un embed ?

queen ocean
#

> le msg

signal marsh
#

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.")
cyan iron
#

Euh non

ashen rapids
#

Non dans ton string

cyan iron
#

Trop fast

ashen rapids
#

Mais il a un problème ton embed là non ? 😂

#

Ou problème de couleur discord

cyan iron
#

Non il a surligné

#

Moi aussi j'ai bugé

signal marsh
#

haha

cyan iron
#

Sans vouloir juger, mettre un > sur le name et sur la value de ton field, ça va pas être très beau

signal marsh
#

tkt je vais d'abord essayer

sharp grail
#

mmh
Cependant

#

On peut mettre en citation tout un paragraphe juste en mettant >>> devant

pulsar fiber
#

Oui

oak turret
#

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()

sharp grail
#

Par contre

#

C'est pas 5 buttons maxi par actionRow

oak turret
#

Ouais en effet, 5 boutons par actionRow et 5 actionRow sois 25 boutons max par message

pulsar fiber
#

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 ?

oak turret
#

Je bosse ce week-end sorry

#

quoi que non dimanche je bosse pas

pulsar fiber
#

Pas de soucis sinon après c'est les vacances donc quand tu pourras ^^

snow apex
#

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' }
  }
]
onyx gull
#

mais pas sure

slim anvil
flat sandal
#

Si tu veux un Boolean, tu as la fonction .some()

oak turret
pulsar fiber
oak turret
#

Je le serais ouais

#

à moins que je dorme

pulsar fiber
#

Pas de soucis

pulsar fiber
#

@oak turret je suis dispo si tu veut

oak turret
pulsar fiber
#

Pas de soucis ^^

#

J'arriverai vers 21h40 sûrement pour ce soir ping moi quand tu est dispo ^^

oak turret
#

Pas dispo ce soir sorry ^^

trail trellis
#

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

flat sandal
#

Les cookies ou localStorage

keen narwhal
#

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 ?

cyan iron
#

Est-ce que la version de node de ton serveur est la même que celle de ton PC ?

keen narwhal
#

Bonne question

#

il faut que je demande à l'hébergeur pour leurs version ?

cyan iron
#

Pas du tout

#

Tu fais node -v

pulsar fiber
#

@cyan iron le problème des ptero personnellement c'est que la console marche pas mdr

pulsar fiber
#

Le bot restant bloquer en démarrage d'après le ptero

#

Les commandes effectuées dans la console ne s'exécute pas

cyan iron
#

Ah ouais c'est pété

#

lmao

pulsar fiber
#

😉

#

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 ?

cyan iron
#

Bon bah du coup oui contactes ton hébergeur @keen narwhal

pulsar fiber
#

Sinon go heroku

queen quiver
#

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.

pulsar fiber
queen quiver
#

mon code :

cyan iron
#

C'est gratuit et c'est plutôt stable si tu veux un petit bot

#

Sinon bah payes un VPS bg

queen quiver
#

yep, c'est ça

cyan iron
#

En cliquant sur le bouton ?

queen quiver
#

changer en "Atelier fleurs sèches" au click

#

oui au click sur le bouton s'inscrire du bas

cyan iron
#

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

queen quiver
#

je vais déclarer une nouvelle variable avec ce nouvel id ?

cyan iron
#

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

queen quiver
#

Merci 🙂 je vais tester ça

cyan iron
#

Alors ? 🙂

queen quiver
#

@cyan iron ça ne fonctionne pas, je ne sais plus comment on fait 😩

cyan iron
queen quiver
cyan iron
# queen quiver 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à

queen quiver
#

fallait mettre l'id sur le bouton du bas ?

inner escarp
#

Bah en tout cas sur ton screen je ne vois aucun endroit où tu utilise un id

cyan iron
inner escarp
#

Ouais je suis bigleux mdr

cyan iron
#

T'es sûr que ça fonctionne pas ?

#

C'est très bizarre

inner escarp
#

Il faudrait l'erreur dans la console oui

cyan iron
#

Effectivement s'il y a une erreur

trail trellis
#

Bonsoir a tous !, comment je peux recuperer le message id de l'embed qui a été envoyer ?

#

merci d'avance

queen quiver
#

@cyan iron nope il n'y aucun problème dans la console 😕

cyan iron
#

Inverse la ligne 10 et 11

queen quiver
#

ça ne change rien ^^

cyan iron
#

Je m'en doutais

slim anvil
#

C’est quoi le soucis

cyan iron
slim anvil
#

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 kappo

#

Vous avez 2 heures

cyan iron
#

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

cyan iron
slim anvil
#

Oki tu peux m’envoyer ton truc en mp ça ira plus vite @queen quiver

#

Please

queen quiver
#

un jsfiddle ?

#

merci

fading glacier
slim anvil
#

(fixe)

sharp grail
#

aaaaaaa

#

j'adore la manière dont tu dois créer les permissions des slash commands globales notlikethis

sharp grail
slim anvil
#

de toute façon les bots c'est nul

sharp grail
cyan iron
#

J'AI PAS VU

keen narwhal
#

Salut, pour un bot, Js v12, comment on vois sa ?

#

Et quand il dit manquer ? Comment on les rajoutes ?

oak turret
#

si il te manque une lib t’aurais des erreurs

slim anvil
#

tu regardes ton package.json

#

mais oui si tu avais import un package manquant tu aurais logiquement des erreurs

thick basin
#

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é !`))
}

}

thick basin
#

V12

sharp grail
#

ah voilà

#

regarde ton kick

#

ton objet n'a pas de sens 🤔

#

y a pas de key

thick basin
#

je suis encore débutant, c'est à quelle niveau/ligne que quelque chose ne va pas (désolé je comprend pas encore tout) ^^

sharp grail
#

pas de soucis ^^

#

tu connais les bases du javascript ?

thick basin
#

un peux oui, je commence, je m'entraine en faisant des bots discord

sharp grail
#

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`
thick basin
#

Merci énormément, beh je vais aller commencer pas ca alors ^^ merci

sharp grail
cyan iron
#

Bonne chance soldat

flat sandal
#
kick({reason: reason})
#

C’est la même chose que js kick({ reason })

sharp grail
#

Ah ?

#

Chavais pas

#

Autant pour moi

#

Merci

#

Enfin bon en tout cas en v12 le type attendu est manifestement un string x)

keen narwhal
#

c'est pour ban la key

dire latch
#

@thick basin soucis régler?

cyan iron
#

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

slim anvil
#

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

cyan iron
#

c'est le forEach que je await nan ?

slim anvil
#

mais ce n'est pas magique await

cyan iron
#

je vois ça kapp

#

je vais faire une fonction

slim anvil
#

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)

cyan iron
#

mais normalement avec le foreach c'est le cas non ?

#

ah non c'est pas le cas

#

🤡

slim anvil
#

^^

#

pareille ton await sur le .push il sert à rien

cyan iron
#

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

cyan iron
slim anvil
#

je vois ça

cyan iron
#

Bon je fais une fonction du coup car même sans await ça me met le problème

slim anvil
#

bah oui

#

le forEach n'est pas asynchrone

#

le for l'est je crois

cyan iron
#

j'ai essayé de le mettre asynchrone mais ça n'a pas fonctionné non plus

slim anvil
#

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

cyan iron
#

le foreach

slim anvil
#

juste pour rire stp

#

t'as mis quoi

cyan iron
#

bah

#

async mdr

slim anvil
#

tu peux me le screen stp

cyan iron
#

c'est le but du truc non

#

ça sert à quoi ça alors dans un foreach

slim anvil
#

merde c'est moins drole que je l'esperai

#

tu iras pas dans mon dossier "les pépites" kapp

#

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

cyan iron
#

Je crois que j'ai compris

slim anvil
#

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

cyan iron
#

Ok merci 👍

slim anvil
#

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)

cyan iron
#

Je connaissais pas le Promise.all

#

merci

#

ça fait la même chose 🤡

slim anvil
#

montre ton truc

cyan iron
#

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

slim anvil
#

ç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

cyan iron
#

ok j'ai compris suicide

#

Bon je vais tester le push sinon je fais une autre promise

#

mdr

slim anvil
#

Bon je vais tester le push

#

?????

slim anvil
#

c'est juste un exemple

#

de te dire que si ta boucle ne comprenait aucun traitement lourd ça passerait

cyan iron
#

ah ok je pensais que c'était une solution

cyan iron
#

Bon j'ai réussi bilan du truc j'ai juste utilisé un for

slim anvil
median sundial
#

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

heavy path
#

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)

hazy mirage
#

Hello!
Ce serait pour le rajouter comment ? (limite un screen du code html avec la ligne ou ça doit etre rajouté)

heavy path
#

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

hazy mirage
#

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

heavy path
#

C'est à dire ?

hazy mirage
#

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>```
heavy path
#

Ok merci

heavy path
#

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

hazy mirage
#

Je finis de manger et je t’explique ça

heavy path
#

Pas de soucis :)

hazy mirage
#

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)
}```
heavy path
#

et faut un submit ou pas ?

hazy mirage
#

Comment ça ?

heavy path
#

Non rien enft ça marche

peak cedar
#

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}`)
}
keen narwhal
#

@peak cedar tu as oublier le .cache

#

et tu feras gaffe tu slice(22) au lieu de 2 je pense

peak cedar
#

apres le find ?

peak cedar
keen narwhal
peak cedar
#

ok ouais c bien ce que je me disais

keen narwhal
#

tu comprends pourquoi ?

#

@peak cedar

peak cedar
#

c'est pour un objet

keen narwhal
peak cedar
#

ouep Merci ❤️

queen quiver
#

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) ?

ashen rapids
queen quiver
#

Ok super merci ! 🙂

worldly plank
#

Qui connaît de finnaly

slim anvil
#

finally no ?

#

pourquoi @worldly plank

worldly plank
#

Un gars à mon taff qui m'a fait presque un cours dessus

#

Et c'est...

hazy mirage
slim anvil
#

🤔

#

un cours carrément

#

Pour t'expliquer que le finally etait appelé que ce soit un success ou une error ? harold

#

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

worldly plank
#

Je suis lvl -1 en js

worldly plank
#

Et oui je vais faire le crâneur car j'ai appris un truc en js PepeClown

slim anvil
#

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

inner escarp
#

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

timid loom
#

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()

summer tiger
#

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

ebon shard
#

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