我无法让我的新机器人“imagesearch”工作,正在寻求帮助

Posted

技术标签:

【中文标题】我无法让我的新机器人“imagesearch”工作,正在寻求帮助【英文标题】:I cannot get my new bot "imagesearch" to work and am seeking some assistance 【发布时间】:2021-01-12 06:54:14 【问题描述】:

所以,我正在尝试为 discord 上的机器人编写代码,以在 Google 上搜索所需的图像。我能够让机器人使用一个代码版本(A1)响应简单的命令,只有更多选项,但是我无法让图像搜索代码(A2)工作,也无法结合两个代码在一起。我将非常感谢一些关于我哪里出错的建议。 :-) 谢谢。

(A1): const Discord = require('discord.js'); const client = new Discord.Client();

client.on('ready', () => 
  console.log(`Logged in as $client.user.tag!`);
);

client.on('message', msg => 
  if (msg.content === 'ping') 
    msg.reply('pong');

);

client.login('insert discord code here');

(A2) var Cheerio = 要求(“cheerio”); var request = require("request");

var discord = require("discord.js");
var client = new discord.Client();


client.login("insert discord code here");

client.on("ready", function() 
    console.log("logged in");
);

client.on("message", function(message) 

    var parts = message.content.split("search.", "search query");
    /* Simple command manager */
    if (parts[0] === "search.")  //I want to check this, but I am not sure how as I want to start the message with the command

        image(message, parts);

    

);

功能图像(消息,部分)

var search = parts.slice(1).join(["search."]);

var options = 
    url: "http://results.dogpile.com/serp?qc=images&q=" + search,
    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[0] );
);

【问题讨论】:

【参考方案1】:

我已更正错误:

var cheerio = require("cheerio"); /* Used to extract html content, based on 
jQuery || install with npm install cheerio */
var request = require("request"); /* Used to make requests to URLs and fetch 
response  || install with npm install request */

var discord = require("discord.js");
var client = new discord.Client();




client.on("ready", function() 
    console.log("logged in");
);

client.on("message", function(message) 

    var parts = message.content.split(" "); 


    /* Simple command manager */
    if (parts[0] === "search.")  


        image(message, parts); 

    

);

function image(message, parts) 

/* extract search query from message */

var search = parts.slice(1).join(" "); 
var options = 
    url: "http://results.dogpile.com/serp?qc=images&q=" + search,
    method: "GET",
    headers: 
        "Accept": "text/html",
        "User-Agent": "Chrome"
    
;
request(options, function(error, response, responseBody) 
    if (error) 
        // handle error
        return;
    

    /* Extract image URLs from responseBody using cheerio */

    $ = 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;
    

    // Send result
    message.channel.send( urls[0] );
);

client.on('message', msg => 
  if (msg.content === 'ping') 
    msg.reply('pong');
 else if (msg.content === '') 
  msg.reply('');
 else if (msg.content === '') 
  msg.reply('');
 else if (msg.content === '') 
  msg.reply('');
 else if (msg.content === '') 
  msg.reply('');

);


【讨论】:

以上是关于我无法让我的新机器人“imagesearch”工作,正在寻求帮助的主要内容,如果未能解决你的问题,请参考以下文章

不和谐和机器人制作:我似乎无法让我的机器人发布网络解析材料

我该怎么做才能让我的机器人再次工作? discord.py [关闭]

我无法让我的 javascript 函数工作?

让我的 Telegram 机器人使用我的凭据转发消息

我无法让我的 get 请求工作

discord.js 机器人在本地工作,但不在 Heroku 上