chatgpt-plugin/server/modules/web_route.js
HalcyonAlcedo 03e3094c15
更新后台面板 (#684)
* fix: 修复星火api上下文

* 将无星火ck的情况降低为warn

* feat: 添加星火设定自定义代码功能

* 修复星火api模式的一些问题

* 修复导出配置问题

* feat:添加工具箱快捷登录接口

* 添加工具箱快捷登录指令

* 阻止群聊使用快捷登录

* 添加Azure配置支持,修复重复的配置项冲突

* 移除旧版本渲染和新版本帮助

* 添加工具箱

* 更新工具箱替换原有后台

* 更新工具箱适配代码

* 后台适配Trss

* 修复trss不支持sendPrivateMsg的问题

* 优化路由

* 修复路由

* 适配其他uin

* 添加bing第三方绘图

* 修复bing绘图第三方调用错误

* 添加bing第三方绘图采样配置

* 修复错误

* 添加bing第三方绘图图片大小配置

* 修复视图错误

* 使用ap替换第三方绘图

* 适配trss

* server 适配trss

* 修复错误的后台版本更新

* 添加锅巴用户数据

* 修复server初始化消息错误

* 添加锅巴插件适配

* 更新后台页面

* 添加锅巴代理接口

* 优化锅巴接口代理

* 修复锅巴代理参数

* 删除调试信息

* 修复headers

* 更新后台锅巴插件支持

* 适配星火v3

* 适配星火v3

* 修复星火domain错误

* 修复更新后trss无法快捷登陆面板问题

* 奇怪的错误,忽略提示不影响使用

* 添加后台配置项

* 添加后台星火v3.5模式选项

* 添加后台缺少的部分配置项

* 增加后台对缺少的锅巴配置自动读取,将后台登陆信息添加到redis

* 后台适配trss,更新web

* 更新后台
2024-05-05 23:57:40 +08:00

78 lines
No EOL
3 KiB
JavaScript

import { UserInfo } from './user_data.js'
import fs from 'fs'
async function routes(fastify, options) {
fastify.get('/page/*', async (request, reply) => {
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/version', async (request, reply) => {
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/auth/*', async (request, reply) => {
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/admin*', async (request, reply) => {
const token = request.cookies.token || request.body?.token || 'unknown'
const user = UserInfo(token)
if (!user) {
reply.redirect(301, '/auth/login')
}
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/admin/dashboard', async (request, reply) => {
const token = request.cookies.token || request.body?.token || 'unknown'
const user = UserInfo(token)
if (!user) {
reply.redirect(301, '/auth/login')
}
if (user.autho === 'admin') {
reply.redirect(301, '/admin/settings')
}
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/admin/settings', async (request, reply) => {
const token = request.cookies.token || request.body?.token || 'unknown'
const user = UserInfo(token)
if (!user || user.autho != 'admin') {
reply.redirect(301, '/admin/')
}
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/page.html')
reply.type('text/html').send(stream)
return reply
})
fastify.get('/prompt/*', async (request, reply) => {
const { raw } = request
const newPath = raw.url.replace(/^\/prompt/, '')
const response = await fetch(`https://chatgpt.roki.best${newPath}`,
{
method: 'GET',
headers: {
'FROM-CHATGPT': 'ikechan8370'
}
})
if (response.ok) {
const data = await response.json()
reply.send(data)
} else reply.code(500).send(new Error('Api Server Error'))
})
fastify.setNotFoundHandler((request, reply) => {
if (request.method == 'GET') {
const stream = fs.createReadStream('plugins/chatgpt-plugin/server/static/index.html')
reply.type('text/html').send(stream)
} else {
reply.code(404).send(new Error('Not Found'))
}
})
}
export default routes