Skip to content Skip to sidebar Skip to footer

Discord.js Connecting Api To Discord Bot In An Embed Link

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

Solution 1:

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 = newClient();
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 arrayconst args = message.content.slice(prefix.length).split(/ +/);
  // create a command variable by taking the first element in the array// and removing it from argsconst 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 contentconst res = await nhentai.getDoujin(chosenNum);
      const embed = newMessageEmbed()
        .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?!');
    }
  }
});

enter image description here

Post a Comment for "Discord.js Connecting Api To Discord Bot In An Embed Link"