javascript - 当机器人托管在 heroku 上时如何制作 discord.js 图像搜索命令
问题描述
我的 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
解决方案
也许是因为您从 repl.it 转移到 Heroku,因为 repl.it 会自动安装任何缺少的模块,而 Heroku 不会因此确保您已Cheerio
安装模块。
推荐阅读
- sql-server - 数据库恢复模型更新
- html - 如何创建一个只是轮廓的盒子阴影?
- oracle - Oracle Peoplesoft 和 SQL 开发人员
- xamarin.ios - 我正在尝试与 WKWebView 中的现有用户代理一起发送自定义字符串, - Xamarin iOS
- css - Bootstrap 4链接悬停下划线
- exoplayer - ExoPlayer 仅在 HLS 流上使用最低再现
- c# - 并发集合的最快迭代?
- sql-server - SQL Server:如何在存储过程中创建表?
- pyspark - 在 pyspark 中动态添加小时到时间戳
- javascript - 将文件类型限制为多个文件上传器