UNPKG

api-interface

Version:
50 lines (49 loc) 2.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; const body_data_1 = __importDefault(require("body-data")); const main_1 = __importDefault(require("./main")); const utils_1 = require("./utils"); const package_json_1 = require("../package.json"); const routers = { '/site': main_1.default.site, '/img/bing': main_1.default.bing, '/qq/avatar': main_1.default.qqAvatar, '/qq/nick': main_1.default.qqNick, '/qq/status': main_1.default.qqStatus, '/video/douyin': main_1.default.videoDouyin, '/video/huoshan': main_1.default.videoHuoshan, '/video/weishi': main_1.default.videoPipixia, '/video/pipixia': main_1.default.videoWeishi, '/video/zuiyou': main_1.default.videoZuiyou }; const types = ['image', 'mp4']; module.exports = async (req, res) => { try { const { pathname } = new URL(req.url || '/', 'http://127.0.0.1'); if (pathname === '/favicon.ico') return res.end(); res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Cache-Control', 'no-store, max-age=0, must-revalidate'); res.setHeader('Content-Type', 'application/json;charset=utf-8'); const data = (await (0, body_data_1.default)(req)); const fun = routers[pathname]; if (!fun) { res.statusCode = 404; res.end((0, utils_1.stringify)({ code: res.statusCode, message: 'Not Found', source: package_json_1.homepage })); return; } const result = await fun(data); if (types.includes(data.type)) { res.writeHead(302, { Location: result.redirect }); } res.end((0, utils_1.stringify)(result, !!data.format)); } catch (error) { // eslint-disable-next-line no-console console.error(error); res.statusCode = 500; res.end((0, utils_1.stringify)({ code: res.statusCode, message: '' })); } };