【发布时间】:2021-08-10 06:39:16
【问题描述】:
我的 Discord.js 机器人中有一个命令应该从 dogpile 中获取图片并发布,但自从我开始在 Heroku 上托管我的机器人(我免费使用它)它就完全停止工作了,我没有收到任何错误,这是代码:
var cheerio = require("cheerio");
var request = require("request");
const Discord = require('discord.js');
module.exports = {
name: 'image',
description: 'sends an image based on your search query',
execute(message, args){
image(message, args);
function image(message, parts) {
var search = parts.slice(0).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) {
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;
}
const embed = new Discord.MessageEmbed()
.setTitle("Image of a(n) " + search)
.setImage(urls[Math.floor(Math.random() * urls.length)])
.setFooter('Searched by ' + message.author.username)
.setColor("#43B581");
message.channel.send(embed)
})
}
}
}
这也可能有帮助,但我不确定:
Heroku Dyno Information
【问题讨论】:
-
一定有什么东西会导致你的机器人崩溃,然后尝试将你的代码包装在
try{...}catch(e){...}中,然后如果没有发现错误。如果过度使用或导致 dyno 停止的原因,请查看 dyno 日志 -
我没有收到任何错误,但我注意到它记录了一个空白数组,通常它会充满图像链接
-
添加更多调试日志并添加 Heroku 日志。您可能会看到一些您认为不相关但实际上相关的内容。
标签: javascript heroku discord discord.js