Partage
  • Partager sur Facebook
  • Partager sur Twitter

Passage de variable et sortie de fonction

    22 juillet 2017 à 15:05:14

    Bonjour,

    Depuis peu, je suis en train de créer un bot Discord en JS (en utilisant node.js).

    Lors de la création d'une de mes commandes, je suis confronté a un problème de passage de variable pour retourner une variable:

    const Command = require('./command')
    const YoutubeSearch = require('youtube-simple-search')
    
    module.exports = class Search extends Command{
    
    //Detection de la commande
      static match(message) {
          return message.content.startsWith('!search')
      }
    
    //Execution du script après avoir détécté la commande
      static action(message) {
        let msg_recieved = message.content.substring(8) //On supprime le !search du message (8 caractères avec l'espace)
        YoutubeSearch({ //Execution du script de recherche Youtuve
          key: "*****",
          query: msg_recieved,
          maxResults: 5
        },
        callback //On appelle la fonction callback
        );
    
        function callback(result) {
          let msg_sended = ""
          let searchList = []
          
          for(let i=0; i < 5; i++) {
            let titre = result[i].snippet.title //On recupere le titre de la i-ème recherche
            let lienID = result[i].id.videoId //On recupère l ID du lien YouTube de la i-ème recherche
            msg_sended += i+1 + '. ' + result[i].snippet.title + '\n' //On crée une char permettant d'afficher les resultats de la recherche
            searchList.push({titre, lienID}) //On crée une liste sous la fomre [{titre, lienID}, {titre, lienID}, ...]
          }
          message.channel.send(msg_sended) //On affiche les resultats trouvés
          console.log(searchList)
        }
      }
    }

    Ici, mon but est de pouvoir exploiter ma searchList, le problème est que je ne trouve pas le moyen de pouvoir récupérer cette variable...

    Mon fichier command est celui çi:

    module.exports = class command {
    
      static parse(message) {
        if(this.match(message)){
          this.action(message)
          return true
        }
        return false
      }
    
      static match(message) {
          return false
      }
    
      static action(message) {
      }
    
    }
    

    Et mon index comme ceci:

    const Discord = require('discord.js')
    const bot = new Discord.Client()
    const Google = require('./commands/google')
    const Ping = require('./commands/ping')
    const Play = require('./commands/play')
    const Search = require('./commands/search')
    
    
    //Connection
    bot.on('ready', function(message) {
      console.log("Bot connected");
    })
    bot.login('*****')
    
    //Ping-Pong
    bot.on('message', function(message) {
      let commandUsed =
        Google.parse(message) ||
        Ping.parse(message) ||
        Play.parse(message) ||
        Search.parse(message)
    
    })

    Je voudrais pouvoir utiliser cette liste dans ma commande Play, et je ne vois pas comment faire...

    Merci d'avance (même si j'ai pas l'impression d'avoir bien été clair dans mes explications, désolé)


    -
    Edité par AntoineFarel 22 juillet 2017 à 15:07:07

    • Partager sur Facebook
    • Partager sur Twitter

    Passage de variable et sortie de fonction

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown