Kaynağa Gözat

feat: 允许开关mj回调

CaIon 2 yıl önce
ebeveyn
işleme
4917e5a92f

+ 2 - 0
constant/midjourney.go

@@ -1,5 +1,7 @@
 package constant
 
+var MjNotifyEnabled = false
+
 const (
 	MjErrorUnknown = 5
 	MjRequestError = 4

+ 4 - 0
model/option.go

@@ -2,6 +2,7 @@ package model
 
 import (
 	"one-api/common"
+	"one-api/constant"
 	"strconv"
 	"strings"
 	"time"
@@ -88,6 +89,7 @@ func InitOptionMap() {
 	common.OptionMap["DataExportInterval"] = strconv.Itoa(common.DataExportInterval)
 	common.OptionMap["DataExportDefaultTime"] = common.DataExportDefaultTime
 	common.OptionMap["DefaultCollapseSidebar"] = strconv.FormatBool(common.DefaultCollapseSidebar)
+	common.OptionMap["MjNotifyEnabled"] = strconv.FormatBool(constant.MjNotifyEnabled)
 
 	common.OptionMapRWMutex.Unlock()
 	loadOptionsFromDatabase()
@@ -181,6 +183,8 @@ func updateOptionMap(key string, value string) (err error) {
 			common.DataExportEnabled = boolValue
 		case "DefaultCollapseSidebar":
 			common.DefaultCollapseSidebar = boolValue
+		case "MjNotifyEnabled":
+			constant.MjNotifyEnabled = boolValue
 		}
 	}
 	switch key {

+ 3 - 1
service/midjourney.go

@@ -163,7 +163,9 @@ func DoMidjourneyHttpRequest(c *gin.Context, timeout time.Duration, fullRequestU
 		return MidjourneyErrorWithStatusCodeWrapper(constant.MjErrorUnknown, "read_request_body_failed", http.StatusInternalServerError), nullBytes, err
 	}
 	delete(mapResult, "accountFilter")
-	delete(mapResult, "notifyHook")
+	if !constant.MjNotifyEnabled {
+		delete(mapResult, "notifyHook")
+	}
 	//req, err := http.NewRequest(c.Request.Method, fullRequestURL, requestBody)
 	// make new request with mapResult
 	reqBody, err := json.Marshal(mapResult)

+ 21 - 8
web/src/components/OperationSetting.js

@@ -23,6 +23,7 @@ const OperationSetting = () => {
         LogConsumeEnabled: '',
         DisplayInCurrencyEnabled: '',
         DisplayTokenStatEnabled: '',
+        MjNotifyEnabled: '',
         DrawingEnabled: '',
         DataExportEnabled: '',
         DataExportDefaultTime: 'hour',
@@ -229,7 +230,6 @@ const OperationSetting = () => {
                         />
                     </Form.Group>
                     <Form.Group inline>
-
                         <Form.Checkbox
                             checked={inputs.DisplayInCurrencyEnabled === 'true'}
                             label='以货币形式显示额度'
@@ -242,12 +242,6 @@ const OperationSetting = () => {
                             name='DisplayTokenStatEnabled'
                             onChange={handleInputChange}
                         />
-                        <Form.Checkbox
-                            checked={inputs.DrawingEnabled === 'true'}
-                            label='启用绘图功能'
-                            name='DrawingEnabled'
-                            onChange={handleInputChange}
-                        />
                         <Form.Checkbox
                           checked={inputs.DefaultCollapseSidebar === 'true'}
                           label='默认折叠侧边栏'
@@ -257,7 +251,26 @@ const OperationSetting = () => {
                     </Form.Group>
                     <Form.Button onClick={() => {
                         submitConfig('general').then();
-                    }}>保存通用设置</Form.Button><Divider/>
+                    }}>保存通用设置</Form.Button>
+                    <Divider/>
+                    <Header as='h3'>
+                        绘图设置
+                    </Header>
+                    <Form.Group inline>
+                        <Form.Checkbox
+                            checked={inputs.DrawingEnabled === 'true'}
+                            label='启用绘图功能'
+                            name='DrawingEnabled'
+                            onChange={handleInputChange}
+                        />
+                        <Form.Checkbox
+                            checked={inputs.MjNotifyEnabled === 'true'}
+                            label='允许回调(会泄露服务器ip地址)'
+                            name='MjNotifyEnabled'
+                            onChange={handleInputChange}
+                        />
+                    </Form.Group>
+                    <Divider/>
                     <Header as='h3'>
                         日志设置
                     </Header>