如何从一组 youtube 视频链接中获取一组 youtube 视频名称?
How can I get an array of youtube video names from an array of youtube video links?
我正在制作一个不和谐的音乐机器人(我在这些问题中已经说过很多次)并且我正在专门处理队列命令,到目前为止我遇到的唯一问题是获取数组我已经从音乐队列中获得的 youtube 链接数组中的 youtube 名称。我能想到的最好的显示队列之类的东西是这样的
var server = servers[message.guild.id];
console.log('QUEUE:')
if(server === undefined || !server.queue[i]){
message.channel.send("No songs in the queue");
return;
}
for(let i = 0; i < server.queue.length; i++) {
YTDL.getInfo(server.queue[i], function(err,info) {
message.channel.send(info.title)
console.log(info.title)
})
}
唯一的问题是它在发送队列时可能会被打断,而且看起来不太好。如果你们中的任何人可以帮助我,将不胜感激
我在 "The Coding Den" discord 服务器上得到了某人的帮助。他告诉我的解决方案是 async 和 await。
var server = servers[message.guild.id];
var queueTitles = []
function queueCheck(queueSpot) {
return new Promise((resolve, reject) => {
YTDL.getInfo(server.queue[queueSpot], (err, info) => {
if (err) reject(err);
resolve(info);
});
});
}
async function queueWait(queueWaitSpot) {
let info = await queueCheck(queueWaitSpot);
queueTitles.push(info.title)
}
console.log('QUEUE:')
if(server === undefined) {
console.log("No songs in the queue");
messagesend("No songs in the queue");
return;
}
for(let i = 0; i < server.queue.length; i++) {
await queueWait(i)
}
if(queueTitles.length === 0) {
console.log("No songs in the queue")
messagesend("No songs in the queue");
return;
}
console.log("```\n" + queueTitles.join('\n') + "\n```");
message.channel.send(queueTitles.join('\n'));
我正在制作一个不和谐的音乐机器人(我在这些问题中已经说过很多次)并且我正在专门处理队列命令,到目前为止我遇到的唯一问题是获取数组我已经从音乐队列中获得的 youtube 链接数组中的 youtube 名称。我能想到的最好的显示队列之类的东西是这样的
var server = servers[message.guild.id];
console.log('QUEUE:')
if(server === undefined || !server.queue[i]){
message.channel.send("No songs in the queue");
return;
}
for(let i = 0; i < server.queue.length; i++) {
YTDL.getInfo(server.queue[i], function(err,info) {
message.channel.send(info.title)
console.log(info.title)
})
}
唯一的问题是它在发送队列时可能会被打断,而且看起来不太好。如果你们中的任何人可以帮助我,将不胜感激
我在 "The Coding Den" discord 服务器上得到了某人的帮助。他告诉我的解决方案是 async 和 await。
var server = servers[message.guild.id];
var queueTitles = []
function queueCheck(queueSpot) {
return new Promise((resolve, reject) => {
YTDL.getInfo(server.queue[queueSpot], (err, info) => {
if (err) reject(err);
resolve(info);
});
});
}
async function queueWait(queueWaitSpot) {
let info = await queueCheck(queueWaitSpot);
queueTitles.push(info.title)
}
console.log('QUEUE:')
if(server === undefined) {
console.log("No songs in the queue");
messagesend("No songs in the queue");
return;
}
for(let i = 0; i < server.queue.length; i++) {
await queueWait(i)
}
if(queueTitles.length === 0) {
console.log("No songs in the queue")
messagesend("No songs in the queue");
return;
}
console.log("```\n" + queueTitles.join('\n') + "\n```");
message.channel.send(queueTitles.join('\n'));