UNPKG

acb-api

Version:

a api that uses the animecharacterdatabase and access information from there

55 lines 2.24 kB
const axios = require('axios').default, c = require('cheerio'); const opt = { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36" } } async function get_character_by_id(id){ if(!id)return null; const url = `http://www.animecharactersdatabase.com/api_series_characters.php?character_id=${id}`; const res = await axios({url: url, method: 'get', opt}); return res.data; } async function get_character_by_search(query){ if(!query)return null; const url = `http://www.animecharactersdatabase.com/api_series_characters.php?character_q=${query.split(/ +/).join('%20')}`; const res = await axios({url: url, method: 'get', opt}); return res.data.search_results; } async function get_anime_by_id(id){ if(!id)return null; const url = `http://www.animecharactersdatabase.com/api_series_characters.php?anime_id=${id}`; const res = await axios({url: url, method: 'get', opt}); return res.data; } async function get_anime_by_search(query){ if(!query)return null; const url = `http://www.animecharactersdatabase.com/api_series_characters.php?anime_q=${query.split(/ +/).join('%20')}`; const res = await axios({url: url, method: 'get', opt}); return res.data.search_results; } async function get_character_amount(){ const res = await axios({url: 'https://www.animecharactersdatabase.com/charactershub.php?load=c_latest', method: 'get'}), $ = c.load(res.data); let number = 0; $('h3').each((idx, el) => { if(el.children[0].data){ if(el.children[0].data.toLowerCase().includes('characters')){ const new_number = parseInt(el.children[0].data.split(/ +/)[0]); number = new_number; } } }); return number; } async function get_random_character(){ const allIDs = await get_character_amount(), url = `http://www.animecharactersdatabase.com/api_series_characters.php?character_id=${Math.floor(Math.random() * allIDs)}`; const res = await axios({url: url, method: 'get', opt}); return res.data; } module.exports = { get_character_by_id, get_anime_by_id, get_character_by_search, get_anime_by_search, get_random_character }