Discord.JS随机图像搜索

时间:2020-09-07 10:28:11

标签: javascript node.js discord.js

我正在尝试在discord.js中编写一个生成随机图像的漫游器。到目前为止,我对被诅咒的图像进行了此操作,但是当我复制并粘贴代码并将“ mcimage”和url的大小写更改为+“ minecraft image”时,mcimage确实可以工作。但是,cursedimage也可以显示我的世界图像。我如何使cursedimage仅显示被诅咒的图像而mcimage仅显示我的世界?这是我的代码:

client.on('message', (message) => {
 let args = message.content.substring(prefix.length).split(' ');

 switch (args[0]) {
  case 'cursedimage':
   image(message);

   break;
 }
});

function image(message) {
 var options = {
  url: 'http://results.dogpile.com/serp?qc=images&q=' + 'cursed image',
  method: 'GET',
  headers: {
   Accept: 'text/html',
   'User-Agent': 'Chrome',
  },
 };

 request(options, function(error, response, responseBody) {
  if (error) {
   return;
  }

  $ = cheerio.load(responseBody);

  var links = $('.image a.link');

  var urls = new Array(links.length)
   .fill(0)
   .map((v, i) => links.eq(i).attr('href'));

  console.log(urls);

  if (!urls.length) {
   return;
  }

  message.channel.send(urls[Math.floor(Math.random() * urls.length)]);
 });
}

1 个答案:

答案 0 :(得分:0)

您只需为两个命令传递带有搜索词的变量,如下所示:

switch (args[0]) {
  case "cursedimage":
    image(message, "cursed image");
    break;
  case "mcimage":
    image(message, "minecraft image");
    break;
}

然后在图像功能上,您可以将搜索字词传递给选项中的网址

function image(message, searchTerm) {
  var options = {
    url: "http://results.dogpile.com/serp?qc=images&q=" + searchTerm,
    method: "GET",
    headers: {
      Accept: "text/html",
      "User-Agent": "Chrome",
    },
  };

  // ...

}