此代码的目的是在Discord服务器上运行机器人。现在它可以搜索图像,但是我想将结果随机化。
我有以下变量- var rnd = Math.floor(Math.random()* search.results.length); 但我不确定它的格式是否正确或放置位置正确。
这是我的代码:
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();
// Login into discord using bot token (do not share token with anyone!).
client.login("");
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.") {
// call the image function
image(message, parts); // Pass requester message to image function
}
});
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;
}
$ = cheerio.load(responseBody);
var urls = new Array(links.length).fill(0).map((v, i) => links.eq(i).attr("href"));
console.log(urls);
if (!urls.length) {
// Handle no results
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('');
}
});
}
谢谢
答案 0 :(得分:0)
我想您正在尝试从获取并存储在 var urls 中的结果中获取随机图像。 (如果有所不同,请扩大您的问题)
因为您已经生成了限制为 rnd 的变量,其结果长度的最大值为最大值。
您可以通过更改以下行来返回随机结果。
message.channel.send( urls [rnd] );
答案 1 :(得分:0)
我能够使其与以下产品一起使用:
message.channel.send( urls[Math.floor((Math.random() * 50) + 1)] );