UNPKG

whistle.nohost

Version:

Nohost plugin for whistle

77 lines (74 loc) 3.69 kB
const bodyParser = require('koa-bodyparser'); const list = require('./cgi/list'); const proxyNetwork = require('./cgi/proxyNetwork'); const selectEnv = require('./cgi/selectEnv'); const checkAdminLogin = require('./cgi/admin/login'); const getAllAccounts = require('./cgi/admin/allAccounts'); const addAccount = require('./cgi/admin/addAccount'); const moveAccount = require('./cgi/admin/move'); const activeAccount = require('./cgi/admin/activeAccount'); const removeAccount = require('./cgi/admin/removeAccount'); const getSettings = require('./cgi/admin/getSettings'); const setJsonData = require('./cgi/admin/setJsonData'); const setEntryRules = require('./cgi/admin/setEntryRules'); const setPluginRules = require('./cgi/admin/setPluginRules'); const setRulesTpl = require('./cgi/admin/setRulesTpl'); const setTestRules = require('./cgi/admin/setTestRules'); const setDefaultRules = require('./cgi/admin/setDefaultRules'); const setAuthKey = require('./cgi/admin/setAuthKey'); const changePassword = require('./cgi/admin/changePassword'); const proxy = require('./cgi/proxy'); const getEntryRules = require('./cgi/entryRules'); const getPluginRules = require('./cgi/pluginRules'); const changeUserPassword = require('./cgi/account/changePassword'); const exportSessions = require('./cgi/sessions/export'); const importSessions = require('./cgi/sessions/import'); const openAPI = require('./openAPI'); const follow = require('./cgi/follow'); const unfollow = require('./cgi/unfollow'); const redirect = require('./cgi/redirect'); const forwardCapture = async (ctx, next) => { ctx.url = '/capture.html'; await next(); }; module.exports = (router) => { router.all('/cgi-bin/**', bodyParser({ formLimit: '6mb' })); router.all('/public-api/**', bodyParser({ formLimit: '1mb' })); router.get('/cgi-bin/list', list); router.get('/public-api/list', list); router.get('/cgi-bin/entry-rules', getEntryRules); router.get('/cgi-bin/remote-rules', getPluginRules); router.get('/cgi-bin/plugin-rules', getPluginRules); router.all('/network/**', proxyNetwork); router.post('/cgi-bin/sessions/export', exportSessions); router.get('/cgi-bin/sessions/import', importSessions); router.get('/data.html', forwardCapture); router.get('/admin.html', checkAdminLogin); router.get('/cgi-bin/select', selectEnv); router.get('/public-api/select', selectEnv); router.all('/cgi-bin/admin/**', checkAdminLogin); router.get('/cgi-bin/admin/all-accounts', getAllAccounts); router.post('/cgi-bin/admin/add-account', addAccount); router.post('/cgi-bin/admin/move', moveAccount); router.post('/cgi-bin/admin/active-account', activeAccount); router.post('/cgi-bin/admin/remove-account', removeAccount); router.post('/cgi-bin/admin/change-password', changePassword); router.get('/cgi-bin/admin/get-settings', getSettings); router.post('/cgi-bin/admin/set-json-data', setJsonData); router.post('/cgi-bin/admin/set-rules-tpl', setRulesTpl); router.post('/cgi-bin/admin/set-entry-rules', setEntryRules); router.post('/cgi-bin/admin/set-plugin-rules', setPluginRules); router.post('/cgi-bin/admin/set-test-rules', setTestRules); router.post('/cgi-bin/admin/set-default-rules', setDefaultRules); router.post('/cgi-bin/admin/set-auth-key', setAuthKey); router.all('/account/:name/**', proxy); router.post('/cgi-bin/account/change-password', changeUserPassword); router.all('/open-api/:cgiName', openAPI); router.get('/follow', follow); router.get('/unfollow', unfollow); router.get('/redirect', redirect); router.all('/user/:name', (ctx) => { const { name } = ctx.params; ctx.redirect(`../data.html?name=${name.replace(/\..*$/, '')}`); }); };