UNPKG

hentaifox

Version:
81 lines (79 loc) 2.16 kB
const fetch = require('node-fetch'); const ttc = require('try-to-catch'); const { Color } = require('custom-console-colors'); const {API} = require('./options.json'); const $ = {_get, _e, _tags} = { _e: function(e) { e?console.log(Color.red('Error:')+Color.magenta(`${e}`)):'' }, _get: async function(pathname) { const [e, d] = await ttc(fetch, API + pathname); _e(e); return !e ? d.json() : e; }, Homepage: async function(p) { const [e, d] = await ttc(_get, p ? `${p==2 ? 'page/' : 'pag/'}${p}` : '/'); _e(e); return !e ? d : { status: 500, message: e };; }, TagLists: async function(type, abjad, page) { const typeList = ['tags','parodies','characters','artists','languanges','categories']; if(typeList.includes(type)) { const [e, d] = await ttc(_get, `${type?type:'tags'}/${abjad?abjad+'/':''}pag/${page?page:1}`); _e(e); return !e ? d : { status: 500, message: e }; } else { return { status: 404, message: `Tags Type ${type} Not found` } } }, ByTags: async function(type, value, page, popular) { const typeList = ['tag','parody','character','artist','languange','category']; if(typeList.includes(type)) { const [e, d] = await ttc(_get, `${type?type:'tag'}/${value?value+'/':''}${popular?'popular'+'/':''}pag/${page?page:1}`); _e(e); return !e ? d : { status: 500, message: e }; } else { return { status: 404, message: `Tags Type ${type} Not found` } } }, Gallery: async function(id) { if(id) { const [e, d] = await ttc(_get, `gallery/${id?id:''}`); _e(e); return !e ? d : { status: 500, message: e } } else { return { status: 404, message: `Gallery ID not Found` } } }, Search: async function(query, page, sort) { const url = `search/?q=${query}${sort?`&sort=${sort}`:''}&page=${page?page:1}`; const [e, d] = await ttc(_get, url); _e(e); return !e ? d : { status: 500, message: e } } } module.exports = $;