首先,我仍然不熟悉所有这些,但是我仍然决定尝试一下,因此请耐心等待我。
我在这里使用的软件包是discord.js Commando和discord-youtube-api。在添加播放功能之前,我决定看看是否可以正确找到搜索功能。但是每次我尝试搜索时,结果都是胡说八道(甚至与我尝试搜索的视频都没有任何关联),并且只给了我一个结果(watch?v = -yDd2D5OHyc),而没有其他结果。
class SearchCommand extends Commando.Command {
constructor(client){
super(client,{
name: 'search',
group:'music',
memberName:'search',
description: 'Search a Youtube video',
args: [
{
key: 'text',
prompt: 'Input the video name?',
type: 'string'
}
]
});
}
async run (message, args, {text})
{
message.channel.send(args)
message.channel.send(text)
var video = await youtube.searchVideos(args.toString().replace(/,/g,' '));
message.channel.send(video.url);
message.channel.send(video.thumbnail);
message.channel.send(video.length);
}
}
module.exports = SearchCommand;
...它[']只给我一个结果...
这是根据searchVideos()
的package's page方法的预期行为。
[T]结果是胡说八道...
Array.toString()
将用逗号连接数组的元素。这可能会导致您出乎意料的结果。
您可以将Array.toString()
数组与args
结合在一起,并使用空格作为定界符而不是逗号。考虑这个例子...
感谢懒散地回答我的问题。当您的解决方案对于有疑问的问题是正确的时,发生了另一个错误
Array.join()
但是,提出的解决方案没有错。只是不完整。幸运的是,我已经找到了新错误的解决方案,并与您的解决方案结合使用,可以使它像这样工作
const text = 'baby shark 10 hours';
const args = text.split(/ +/g);
console.log(args.toString()); // Your current search query
console.log(args.join(' ')); // The expected search query