feat(release): migrate GeekAI v4.3.0 to open source

- Sync backend and frontend from GeekAI Plus v4.3.0

- Remove commercial License flows and update open-source deployment defaults

- Preserve Docker Compose deployment and bump image tags to v4.3.0

BREAKING CHANGE: commercial License configuration and related endpoints are removed
This commit is contained in:
RockYang
2026-08-11 14:51:20 +08:00
parent 37e024acea
commit 9ccff4efbc
219 changed files with 29212 additions and 10802 deletions
+28 -5
View File
@@ -12,17 +12,20 @@ import (
"errors"
"fmt"
"geekai/core/types"
logger2 "geekai/logger"
"geekai/log"
"geekai/store/model"
"geekai/utils"
"github.com/imroc/req/v3"
"gorm.io/gorm"
"io"
"time"
"github.com/imroc/req/v3"
"gorm.io/gorm"
"github.com/gin-gonic/gin"
)
var logger = log.GetLogger()
// Client MidJourney client
type Client struct {
client *req.Client
@@ -73,8 +76,6 @@ type QueryRes struct {
SubmitTime int `json:"submitTime"`
}
var logger = logger2.GetLogger()
func NewClient(db *gorm.DB) *Client {
return &Client{
client: req.C().SetTimeout(time.Minute).SetUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"),
@@ -182,6 +183,28 @@ func (c *Client) Variation(task types.MjTask) (ImageRes, error) {
return c.doRequest(body, apiPath, task.ChannelId)
}
// Modal 提交局部重绘(inpaint/ ZOOM,请求体 taskId 必填(提交成功返回的 taskId,不是查询结果里的 messageId),prompt、maskBase64 可选
func (c *Client) Modal(task types.MjTask) (ImageRes, error) {
apiPath := fmt.Sprintf("mj-%s/mj/submit/modal", task.Mode)
taskId := task.TaskId
if taskId == "" {
taskId = task.MessageId
}
if taskId == "" {
return ImageRes{}, fmt.Errorf("modal 任务缺少原图 taskId(提交成功返回的 ID")
}
body := map[string]any{
"taskId": taskId,
}
if task.Prompt != "" {
body["prompt"] = task.Prompt
}
if task.MaskBase64 != "" {
body["maskBase64"] = task.MaskBase64
}
return c.doRequest(body, apiPath, task.ChannelId)
}
func (c *Client) doRequest(body interface{}, apiPath string, channel string) (ImageRes, error) {
var res ImageRes
session := c.db.Session(&gorm.Session{}).Where("type", "mj").Where("enabled", true)
+3
View File
@@ -97,6 +97,9 @@ func (s *Service) Run() {
case types.TaskSwapFace:
res, err = s.client.SwapFace(task)
break
case types.TaskModal:
res, err = s.client.Modal(task)
break
}
if err != nil || (res.Code != 1 && res.Code != 22) {