api-interface
Version:
50 lines (49 loc) • 2.05 kB
JavaScript
"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: '' }));
}
};