From c0ee2c2d8e06ff59f5dbc3296906199282411a87 Mon Sep 17 00:00:00 2001 From: RockYang Date: Tue, 7 May 2024 16:41:35 +0800 Subject: [PATCH] remove license code --- api/handler/admin/config_handler.go | 33 +------- api/handler/chatimpl/chat_handler.go | 23 ++---- api/main.go | 3 - api/service/license_service.go | 108 --------------------------- api/service/mj/pool.go | 10 +-- web/src/views/admin/SysConfig.vue | 26 ------- 6 files changed, 11 insertions(+), 192 deletions(-) delete mode 100644 api/service/license_service.go diff --git a/api/handler/admin/config_handler.go b/api/handler/admin/config_handler.go index 5aacb9f2..adb1540e 100644 --- a/api/handler/admin/config_handler.go +++ b/api/handler/admin/config_handler.go @@ -4,24 +4,21 @@ import ( "chatplus/core" "chatplus/core/types" "chatplus/handler" - "chatplus/service" "chatplus/store" "chatplus/store/model" "chatplus/utils" "chatplus/utils/resp" "github.com/gin-gonic/gin" - "github.com/shirou/gopsutil/host" "gorm.io/gorm" ) type ConfigHandler struct { handler.BaseHandler - levelDB *store.LevelDB - licenseService *service.LicenseService + levelDB *store.LevelDB } -func NewConfigHandler(app *core.AppServer, db *gorm.DB, levelDB *store.LevelDB, licenseService *service.LicenseService) *ConfigHandler { - return &ConfigHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, levelDB: levelDB, licenseService: licenseService} +func NewConfigHandler(app *core.AppServer, db *gorm.DB, levelDB *store.LevelDB) *ConfigHandler { + return &ConfigHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, levelDB: levelDB} } func (h *ConfigHandler) Update(c *gin.Context) { @@ -91,27 +88,3 @@ func (h *ConfigHandler) Get(c *gin.Context) { resp.SUCCESS(c, value) } - -// Active 激活系统 -func (h *ConfigHandler) Active(c *gin.Context) { - var data struct { - License string `json:"license"` - } - if err := c.ShouldBindJSON(&data); err != nil { - resp.ERROR(c, types.InvalidArgs) - return - } - info, err := host.Info() - if err != nil { - resp.ERROR(c, err.Error()) - return - } - - err = h.licenseService.ActiveLicense(data.License, info.HostID) - if err != nil { - resp.ERROR(c, err.Error()) - return - } - - resp.SUCCESS(c, info.HostID) -} diff --git a/api/handler/chatimpl/chat_handler.go b/api/handler/chatimpl/chat_handler.go index 4b745d0b..6a70f281 100644 --- a/api/handler/chatimpl/chat_handler.go +++ b/api/handler/chatimpl/chat_handler.go @@ -6,7 +6,6 @@ import ( "chatplus/core/types" "chatplus/handler" logger2 "chatplus/logger" - "chatplus/service" "chatplus/service/oss" "chatplus/store/model" "chatplus/store/vo" @@ -36,17 +35,15 @@ var logger = logger2.GetLogger() type ChatHandler struct { handler.BaseHandler - redis *redis.Client - uploadManager *oss.UploaderManager - licenseService *service.LicenseService + redis *redis.Client + uploadManager *oss.UploaderManager } -func NewChatHandler(app *core.AppServer, db *gorm.DB, redis *redis.Client, manager *oss.UploaderManager, licenseService *service.LicenseService) *ChatHandler { +func NewChatHandler(app *core.AppServer, db *gorm.DB, redis *redis.Client, manager *oss.UploaderManager) *ChatHandler { return &ChatHandler{ - BaseHandler: handler.BaseHandler{App: app, DB: db}, - redis: redis, - uploadManager: manager, - licenseService: licenseService, + BaseHandler: handler.BaseHandler{App: app, DB: db}, + redis: redis, + uploadManager: manager, } } @@ -482,14 +479,6 @@ func (h *ChatHandler) doRequest(ctx context.Context, req types.ApiRequest, sessi return nil, errors.New("no available key, please import key") } - // ONLY allow apiURL in blank list - if session.Model.Platform == types.OpenAI { - err := h.licenseService.IsValidApiURL(apiKey.ApiURL) - if err != nil { - return nil, err - } - } - var apiURL string switch session.Model.Platform { case types.Azure: diff --git a/api/main.go b/api/main.go index 1c7177ad..a1df7ef6 100644 --- a/api/main.go +++ b/api/main.go @@ -164,8 +164,6 @@ func main() { // 邮件服务 fx.Provide(service.NewSmtpService), - // License 服务 - fx.Provide(service.NewLicenseService), // 微信机器人服务 fx.Provide(wx.NewWeChatBot), @@ -290,7 +288,6 @@ func main() { group := s.Engine.Group("/api/admin/") group.POST("config/update", h.Update) group.GET("config/get", h.Get) - group.POST("active", h.Active) }), fx.Invoke(func(s *core.AppServer, h *admin.ManagerHandler) { group := s.Engine.Group("/api/admin/") diff --git a/api/service/license_service.go b/api/service/license_service.go deleted file mode 100644 index 0a7d7a65..00000000 --- a/api/service/license_service.go +++ /dev/null @@ -1,108 +0,0 @@ -package service - -import ( - "chatplus/core" - "chatplus/core/types" - "chatplus/store" - "errors" - "fmt" - "github.com/imroc/req/v3" - "github.com/shirou/gopsutil/host" - "strings" - "time" -) - -type LicenseService struct { - config types.ApiConfig - levelDB *store.LevelDB - license types.License - machineId string -} - -func NewLicenseService(server *core.AppServer, levelDB *store.LevelDB) * LicenseService { - var license types.License - var machineId string - _ = levelDB.Get(types.LicenseKey, &license) - info, err := host.Info() - if err == nil { - machineId = info.HostID - } - return &LicenseService{ - config: server.Config.ApiConfig, - levelDB: levelDB, - license: license, - machineId: machineId, - } -} - -// ActiveLicense 激活 License -func (s *LicenseService) ActiveLicense(license string, machineId string) error { - var res struct { - Code types.BizCode `json:"code"` - Message string `json:"message"` - Data struct { - Name string `json:"name"` - License string `json:"license"` - Mid string `json:"mid"` - ExpiredAt int64 `json:"expired_at"` - UserNum int `json:"user_num"` - } - } - apiURL := fmt.Sprintf("%s/%s", s.config.ApiURL, "api/license/active") - response, err := req.C().R(). - SetBody(map[string]string{"license": license, "machine_id": machineId}). - SetSuccessResult(&res).Post(apiURL) - if err != nil { - return fmt.Errorf("发送激活请求失败: %v", err) - } - - if response.IsErrorState() { - return fmt.Errorf( "发送激活请求失败:%v", response.Status) - } - - if res.Code != types.Success { - return fmt.Errorf( "激活失败:%v", res.Message) - } - - err = s.levelDB.Put(types.LicenseKey, types.License{ - Key: license, - MachineId: machineId, - UserNum: res.Data.UserNum, - ExpiredAt: res.Data.ExpiredAt, - IsActive: true, - }) - if err != nil { - return fmt.Errorf("保存许可证书失败:%v", err) - } - - return nil -} - -// GetLicense 获取许可信息 -func (s *LicenseService) GetLicense() types.License { - return s.license -} - -// IsValidApiURL 判断是否合法的中转 URL -func (s *LicenseService) IsValidApiURL(uri string) error { - // 获得许可授权的直接放行 - if s.license.IsActive { - if s.license.MachineId != s.machineId { - return errors.New("系统使用了盗版的许可证书") - } - - if time.Now().Unix() > s.license.ExpiredAt { - return errors.New("系统许可证书已经过期") - } - return nil - } - - if !strings.HasPrefix(uri, "https://gpt.bemore.lol") && - !strings.HasPrefix(uri, "https://api.openai.com") && - !strings.HasPrefix(uri, "http://cdn.chat-plus.net") && - !strings.HasPrefix(uri, "https://api.chat-plus.net") { - return fmt.Errorf("当前 API 地址 %s 不在白名单列表当中。",uri) - } - - return nil -} \ No newline at end of file diff --git a/api/service/mj/pool.go b/api/service/mj/pool.go index 48243137..bd6eedf2 100644 --- a/api/service/mj/pool.go +++ b/api/service/mj/pool.go @@ -3,7 +3,6 @@ package mj import ( "chatplus/core/types" logger2 "chatplus/logger" - "chatplus/service" "chatplus/service/oss" "chatplus/service/sd" "chatplus/store" @@ -27,7 +26,7 @@ type ServicePool struct { var logger = logger2.GetLogger() -func NewServicePool(db *gorm.DB, redisCli *redis.Client, manager *oss.UploaderManager, appConfig *types.AppConfig, licenseService *service.LicenseService) *ServicePool { +func NewServicePool(db *gorm.DB, redisCli *redis.Client, manager *oss.UploaderManager, appConfig *types.AppConfig) *ServicePool { services := make([]*Service, 0) taskQueue := store.NewRedisQueue("MidJourney_Task_Queue", redisCli) notifyQueue := store.NewRedisQueue("MidJourney_Notify_Queue", redisCli) @@ -36,12 +35,7 @@ func NewServicePool(db *gorm.DB, redisCli *redis.Client, manager *oss.UploaderMa if config.Enabled == false { continue } - err := licenseService.IsValidApiURL(config.ApiURL) - if err != nil { - logger.Error(err) - continue - } - + cli := NewPlusClient(config) name := fmt.Sprintf("mj-plus-service-%d", k) plusService := NewService(name, taskQueue, notifyQueue, db, cli) diff --git a/web/src/views/admin/SysConfig.vue b/web/src/views/admin/SysConfig.vue index 732c4b38..f9abc64d 100644 --- a/web/src/views/admin/SysConfig.vue +++ b/web/src/views/admin/SysConfig.vue @@ -258,19 +258,6 @@ - -
- - - - - - - 立即激活 - - -
-
@@ -344,19 +331,6 @@ const save = function (key) { } } -// 激活授权 -const license = ref("") -const active = () => { - if (license.value === "") { - return ElMessage.error("请输入授权码") - } - httpPost("/api/admin/active", {license: license.value}).then(res => { - ElMessage.success("授权成功,机器编码为:" + res.data) - }).catch(e => { - ElMessage.error(e.message) - }) -} - const configKey = ref("") const beforeUpload = (key) => { configKey.value = key