【问题标题】:Discord.JS Random Image SearchDiscord.JS 随机图像搜索
【发布时间】:2020-12-25 18:27:56
【问题描述】:

我正在尝试在discord.js 中编写一个生成随机图像的机器人。到目前为止,我使用受诅咒的图像执行此操作,但是当我复制并粘贴代码并将“mcimage”的大小写和 url 更改为 +“minecraft image”时,mcimage 确实有效。然而,cursedimage 也带来了一个 minecraft 图像。我怎样才能让 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)]);
 });
}

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

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

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

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

    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",
        },
      };
    
      // ...
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-08-10
      • 1970-01-01
      • 2019-03-11
      • 2021-05-02
      • 2021-09-24
      • 1970-01-01
      • 2021-07-07
      • 2021-07-11
      相关资源
      最近更新 更多