Discord.js 在嵌入链接中将 api 连接到不和谐机器人
Posted
技术标签:
【中文标题】Discord.js 在嵌入链接中将 api 连接到不和谐机器人【英文标题】:Discord.js connecting api to discord bot in an embed link 【发布时间】:2021-09-26 07:18:10 【问题描述】:我一直在尝试编写一个机器人来发布和嵌入链接,以根据用户输入的数字显示漫画的标题、标签等。我正在查看的 api 是 This,我想知道将它连接到我的不和谐机器人的最佳方式是什么?
client.on("message", (message) =>
if (!message.content.startsWith(prefix)) return;
if (message.content.startsWith(prefix))
let chosenNum = message.content.match(/\d+/)?.[0].slice(0);
if (chosenNum.length > 6)
message.channel.send("**1-6 digits only**")
else
message.channel.send(`$chosenNum`)
);
【问题讨论】:
您到底有什么问题?您已经从用户输入中获得了数字。该软件包有一个很好的文档。您现在可以检查nhentai.exists(id)
是否,然后使用 nhentai.getDoujin(id)
获取可以在嵌入中使用的 JSON 对象。
嗨,很抱歉不清楚。我似乎不明白如何获取嵌入的 JSON 对象。
@ZsoltMeszaros ^
【参考方案1】:
您选择的包有一个非常简单的 API。您所需要的只是nhentai.exists()
和nhentai.getDoujin()
方法。第一个可以检查用户提交的 ID 是否存在,第二个可以获取 JSON 对象,用于填充嵌入。
看看下面的例子:
const Client, MessageEmbed = require('discord.js');
const nhentai = require('nhentai-js');
const client = new Client();
const prefix = '!';
client.on('message', async (message) =>
if (!message.content.startsWith(prefix)) return;
// create an args variable that slices off the prefix and splits it into an array
const args = message.content.slice(prefix.length).split(/ +/);
// create a command variable by taking the first element in the array
// and removing it from args
const command = args.shift().toLowerCase();
if (command === 'hen')
const chosenNum = args[0]?.match(/\d+/)?.[0];
if (!chosenNum)
return message.channel.send('You need to provide a number');
if (chosenNum.length > 6)
return message.channel.send('**1-6 digits only**');
try
if (!(await nhentai.exists(chosenNum)))
return message.channel.send(`No results found for "$chosenNum".`);
// res is your JSON object, feel free to console.log its content
const res = await nhentai.getDoujin(chosenNum);
const embed = new MessageEmbed()
.setColor('#ed2553')
.setTitle(res.title)
.setImage(res.pages[0])
.setURL(res.link)
.addField('Pages', res.details.pages[0], true)
.addField('Uploaded', res.details.uploaded[0], true);
if (res.details.languages)
embed.addField('Languages', res.details.languages.join(', '), true);
if (res.details.characters)
embed.addField('Top characters', res.details.characters.slice(0, 3).join(', '), true);
if (res.details.tags)
embed.addField('Top tags', res.details.tags.slice(0, 3).join(', '), true);
return message.channel.send(embed);
catch (err)
console.log(err);
return message.channel.send('Oops, there was an error. Maybe try again?!');
);
【讨论】:
以上是关于Discord.js 在嵌入链接中将 api 连接到不和谐机器人的主要内容,如果未能解决你的问题,请参考以下文章