JavaScript JavaScript


Using fetch

fetch('https://nekos.best/api/v2/neko')
  .then(response => response.json())
  .then(json => console.log(json.results[0].url))

// https://nekos.best/api/v2/neko/XXXXXX-XXXXX.png

Using async

async function getNeko() {
    const response = await fetch('https://nekos.best/api/v2/neko')
    const json = await response.json()
    console.log(json.results[0].url)
}

await getNeko()

// https://nekos.best/api/v2/neko/XXXXXX-XXXXX.png

Using our Wrapper

Installation

npm install nekos-best.js | yarn add nekos-best.js

Usage

import { Client, fetchRandom } from "nekos-best.js";

// You can use the `fetchRandom()` function to fetch a random neko.
console.log(await fetchRandom("neko")); // { results: [{ artist_href: '···', artist_name: '···', source_url: '···', url: 'https://nekos.best/api/v2/neko/XXXXXX-XXXXX.png' }] }

// Alternatively, you can initialize a new client which offers more features.
const nekosBest = new Client();

// Such as the `<Client>.fetch()` method.
console.log(await nekosBest.fetch("neko", 1)); // { results: [{ artist_href: '···', artist_name: '···', source_url: '···', url: 'https://nekos.best/api/v2/neko/XXXXXX-XXXXX.png' }] }
console.log(await nekosBest.fetch("hug", 10)); // { results: [{ artist_href: '···', artist_name: '···', source_url: '···', url: 'https://nekos.best/api/v2/hug/XXXXXX-XXXXX.gif' }, ···] }

// Or the `<Client>.fetchFile()` method to get a single file.
console.log(await nekosBest.fetchFile("neko")); // { artist_href: '···', ···, data: <Buffer> }

Build a simple Discord Bot with discord.js

import { Client as DiscordClient } from "discord.js";
import { Client } from "nekos-best.js";

const discordClient = new DiscordClient();
const nekosBest = new Client();

discordClient.on("messageCreate", async (message) => {
    if (message.author.bot) return;

    if (message.content.startsWith('!neko')) {
        message.channel.send((await nekosBest.fetch("neko", 1)).results[0].url);
    }
})

discordClient.login("************************.******.***************************");

Migrate from 5.X.X to 6.X.X

❗ For the TypeScript users, the type NbEndpointMetadata will be removed in the 7.X.X version due to recent API changes

<Client>.fetchRandom() & <Client>.fetchMultiple() methods have been removed in favor of the <Client>.fetch(category, amount) method

const nekosBest = new Client();

- nekosBest.fetchRandom("neko")
+ nekosBest.fetch("neko", 1)
const nekosBest = new Client();

- nekosBest.fetchMultiple("neko", 15)
+ nekosBest.fetch("neko", 15)

The <Client>.init() method has been removed

const nekosBest = new Client();

- await nekosBest.init();

Migrate from 4.X.X to 5.X.X

The fetchNeko(category) function has been removed in favor of the <Client>.fetchRandom() method and its shortcut fetchRandom()

- fetchNeko('category')
+ const nekosBest = new Client();
+
+ nekosBest.fetchRandom('category')
- fetchNeko('category')
+ fetchRandom('category')

The optional parameter amount of the fetchNeko() function has been removed in favor of the <Client>.fetchMultiple() method

- fetchNeko('category', 15)
+ const nekosBest = new Client();
+
+ nekosBest.fetchMultiple('category', 15)

Other Changes

  • The optional options max and min of the fetchNeko() function have been removed

About

Created by Thunder04

The source code is available at GitHub

NekosBest NekosBest NekosBest