acb-api
Version:
a api that uses the animecharacterdatabase and access information from there
55 lines • 2.24 kB
JavaScript
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
}