From 49df4b6eed1d2888769e34065aa6d3c593ad6200 Mon Sep 17 00:00:00 2001 From: Xiangyuan Liu Date: Fri, 29 Mar 2024 16:48:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20/mj-{mode}=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/distributor.go | 2 +- router/relay-router.go | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/middleware/distributor.go b/middleware/distributor.go index a5e40b0..10696a9 100644 --- a/middleware/distributor.go +++ b/middleware/distributor.go @@ -44,7 +44,7 @@ func Distribute() func(c *gin.Context) { // Select a channel for the user var modelRequest ModelRequest var err error - if strings.HasPrefix(c.Request.URL.Path, "/mj") { + if strings.Contains(c.Request.URL.Path, "/mj/") { relayMode := relayconstant.Path2RelayModeMidjourney(c.Request.URL.Path) if relayMode == relayconstant.RelayModeMidjourneyTaskFetch || relayMode == relayconstant.RelayModeMidjourneyTaskFetchByCondition || diff --git a/router/relay-router.go b/router/relay-router.go index 4addee0..2d8e7b3 100644 --- a/router/relay-router.go +++ b/router/relay-router.go @@ -43,7 +43,16 @@ func SetRelayRouter(router *gin.Engine) { relayV1Router.DELETE("/models/:model", controller.RelayNotImplemented) relayV1Router.POST("/moderations", controller.Relay) } + relayMjRouter := router.Group("/mj") + registerMjRouterGroup(relayMjRouter) + + relayMjModeRouter := router.Group("/:mode/mj") + registerMjRouterGroup(relayMjModeRouter) + //relayMjRouter.Use() +} + +func registerMjRouterGroup(relayMjRouter *gin.RouterGroup) { relayMjRouter.GET("/image/:id", relay.RelayMidjourneyImage) relayMjRouter.Use(middleware.TokenAuth(), middleware.Distribute()) { @@ -61,5 +70,4 @@ func SetRelayRouter(router *gin.Engine) { relayMjRouter.POST("/task/list-by-condition", controller.RelayMidjourney) relayMjRouter.POST("/insight-face/swap", controller.RelayMidjourney) } - //relayMjRouter.Use() } From 2e595bdafb2705fb9dec2db201b8d13366e4cf50 Mon Sep 17 00:00:00 2001 From: Xiangyuan Liu Date: Fri, 29 Mar 2024 16:58:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=20/mj-{mode}=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/relay-mj.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/relay/relay-mj.go b/relay/relay-mj.go index 3cd42cb..7b3a4e2 100644 --- a/relay/relay-mj.go +++ b/relay/relay-mj.go @@ -180,7 +180,7 @@ func RelaySwapFace(c *gin.Context) *dto.MidjourneyResponse { Description: "quota_not_enough", } } - requestURL := c.Request.URL.String() + requestURL := getMjRequestPath(c.Request.URL.String()) baseURL := c.GetString("base_url") fullRequestURL := fmt.Sprintf("%s%s", baseURL, requestURL) mjResp, _, err := service.DoMidjourneyHttpRequest(c, time.Second*60, fullRequestURL) @@ -260,7 +260,7 @@ func RelayMidjourneyTaskImageSeed(c *gin.Context) *dto.MidjourneyResponse { c.Set("channel_id", originTask.ChannelId) c.Request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", channel.Key)) - requestURL := c.Request.URL.String() + requestURL := getMjRequestPath(c.Request.URL.String()) fullRequestURL := fmt.Sprintf("%s%s", channel.GetBaseURL(), requestURL) midjResponseWithStatus, _, err := service.DoMidjourneyHttpRequest(c, time.Second*30, fullRequestURL) if err != nil { @@ -440,7 +440,7 @@ func RelayMidjourneySubmit(c *gin.Context, relayMode int) *dto.MidjourneyRespons } //baseURL := common.ChannelBaseURLs[channelType] - requestURL := c.Request.URL.String() + requestURL := getMjRequestPath(c.Request.URL.String()) baseURL := c.GetString("base_url") @@ -605,3 +605,15 @@ type taskChangeParams struct { Action string Index int } + +func getMjRequestPath(path string) string { + requestURL := path + if strings.Contains(requestURL, "/mj-") { + urls := strings.Split(requestURL, "/mj/") + if len(urls) < 2 { + return requestURL + } + requestURL = "/mj/" + urls[1] + } + return requestURL +} From 3065bf92ae4ccff27c9b164e0a3816f2dff2a974 Mon Sep 17 00:00:00 2001 From: Xiangyuan Liu Date: Fri, 29 Mar 2024 17:36:44 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=20/mj-{mode}=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- relay/constant/relay_mode.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/relay/constant/relay_mode.go b/relay/constant/relay_mode.go index 1790c57..2e94bc0 100644 --- a/relay/constant/relay_mode.go +++ b/relay/constant/relay_mode.go @@ -56,29 +56,29 @@ func Path2RelayMode(path string) int { func Path2RelayModeMidjourney(path string) int { relayMode := RelayModeUnknown - if strings.HasPrefix(path, "/mj/submit/action") { + if strings.HasSuffix(path, "/mj/submit/action") { // midjourney plus relayMode = RelayModeMidjourneyAction - } else if strings.HasPrefix(path, "/mj/submit/modal") { + } else if strings.HasSuffix(path, "/mj/submit/modal") { // midjourney plus relayMode = RelayModeMidjourneyModal - } else if strings.HasPrefix(path, "/mj/submit/shorten") { + } else if strings.HasSuffix(path, "/mj/submit/shorten") { // midjourney plus relayMode = RelayModeMidjourneyShorten - } else if strings.HasPrefix(path, "/mj/insight-face/swap") { + } else if strings.HasSuffix(path, "/mj/insight-face/swap") { // midjourney plus relayMode = RelayModeSwapFace - } else if strings.HasPrefix(path, "/mj/submit/imagine") { + } else if strings.HasSuffix(path, "/mj/submit/imagine") { relayMode = RelayModeMidjourneyImagine - } else if strings.HasPrefix(path, "/mj/submit/blend") { + } else if strings.HasSuffix(path, "/mj/submit/blend") { relayMode = RelayModeMidjourneyBlend - } else if strings.HasPrefix(path, "/mj/submit/describe") { + } else if strings.HasSuffix(path, "/mj/submit/describe") { relayMode = RelayModeMidjourneyDescribe - } else if strings.HasPrefix(path, "/mj/notify") { + } else if strings.HasSuffix(path, "/mj/notify") { relayMode = RelayModeMidjourneyNotify - } else if strings.HasPrefix(path, "/mj/submit/change") { + } else if strings.HasSuffix(path, "/mj/submit/change") { relayMode = RelayModeMidjourneyChange - } else if strings.HasPrefix(path, "/mj/submit/simple-change") { + } else if strings.HasSuffix(path, "/mj/submit/simple-change") { relayMode = RelayModeMidjourneyChange } else if strings.HasSuffix(path, "/fetch") { relayMode = RelayModeMidjourneyTaskFetch