Discord.js 在嵌入链接中将 api 连接到不和谐机器人
- 作者: 亖呉?盀
- 来源: 51数据库
- 2022-10-21
问题描述
我一直在尝试编写一个机器人来发布和嵌入链接,以根据用户输入的数字显示漫画的标题、标签等.我正在查看的 api 是
I've been trying to code a bot that will post and embed link to show the title of manga, tags, etc. based on what digits user input. The api that I'm looking at is This and I want to know what's the best way of connecting it to my discord bot?
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}`)
}
}
});
解决方案
The package you chose has a really simple API. All you need is the nhentai.exists() and nhentai.getDoujin() methods. With the first one you can check if the user submitted ID exists, and with the second one you can fetch a JSON object that you can use to populate your embed.
Check out the example below:
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?!');
}
}
});
;
推荐阅读
热点文章
检查拆分键盘
0
带有“上一个"的工具栏和“下一个"用于键盘输入AccessoryView
0
Activity 启动时显示软键盘
0
UIWebView 键盘 - 摆脱“上一个/下一个/完成"酒吧
0
在 iOS7 中边缘滑动时,使键盘与 UIView 同步动画
0
我的 iOS 应用程序中的键盘在 iPhone 6 上太高了.如何在 XCode 中调整键盘的分辨率?
0
android:inputType="textEmailAddress";- '@' 键和 '.com' 键?
0
禁用 iPhone 中键盘的方向
0
Android 2.3 模拟器上的印地语键盘问题
0
keyDown 没有被调用
0
