소스 검색

fix 上传图片到discord

zwhui 2 년 전
부모
커밋
83ce8c0820

+ 20 - 0
midjourney/src/main/java/com/yhlxj/dao/model/dto/SubmitUploadDTO.java

@@ -0,0 +1,20 @@
+package com.yhlxj.dao.model.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @author zwhui
+ * @date 2024/4/23 13:49
+ */
+@Data
+public class SubmitUploadDTO {
+    /**
+     * 垫图base64数组
+     */
+    @NotBlank(message = "请上传至少一张图片")
+    private List<String> base64Array;
+
+}

+ 2 - 0
midjourney/src/main/java/com/yhlxj/service/midjourney/MidjourneyService.java

@@ -2,6 +2,7 @@ package com.yhlxj.service.midjourney;
 
 
 import com.yhlxj.dao.model.dto.BlendDimensions;
+import com.yhlxj.dao.model.dto.SubmitUploadDTO;
 import com.yhlxj.dao.model.entity.MidjourneyUser;
 import com.yhlxj.dao.model.entity.MidjourneyUserConversation;
 import com.yhlxj.dao.model.response.SubmitResult;
@@ -39,4 +40,5 @@ public interface MidjourneyService {
 
     void syscConversation();
 
+    SubmitResult uploadFile(SubmitUploadDTO uploadDTO) throws Exception;
 }

+ 17 - 2
midjourney/src/main/java/com/yhlxj/service/midjourney/impl/MidjourneyServiceImpl.java

@@ -21,6 +21,7 @@ import com.yhlxj.dao.mapper.midjourney.MidjourneyUserConversationMapper;
 import com.yhlxj.dao.mapper.midjourney.MidjourneyUserMapper;
 import com.yhlxj.dao.model.dto.BlendDimensions;
 import com.yhlxj.dao.model.dto.MessageButton;
+import com.yhlxj.dao.model.dto.SubmitUploadDTO;
 import com.yhlxj.dao.model.entity.GroupsRelation;
 import com.yhlxj.dao.model.entity.MidjourneyAccount;
 import com.yhlxj.dao.model.entity.MidjourneyUser;
@@ -70,6 +71,8 @@ public class MidjourneyServiceImpl implements MidjourneyService {
     private static final String FAST_HOST = "https://api.bltcy.ai";
     private static final String FAST_TOKEN = "Bearer sk-YTg6N3QH6PLTFLbM9291B1Ae12754bC4B26225F1B95f442c";
 
+    private static final String RELAX_TOKEN = "5a9a3e9b-5a5e-4b6b-9a5a-9a5a5a5a5a5a";
+
     private static final Map<Long, ImgSize> TASK_IMG_SIZE_MAP = new ConcurrentHashMap<>();
 
     private final MidjourneyUserConversationMapper conversationMapper;
@@ -403,7 +406,9 @@ public class MidjourneyServiceImpl implements MidjourneyService {
         }
         url = url + getActionUrl(action);
         param.put("notifyHook",midjourneyHost +(EnvCommonService.active.equals(envCommonService.getEnv()) ? "/8083":"/8082") + "/api/applets/midjourney/notifyHook");
-        String body = HttpRequest.post(url).body(Jsons.toJson(param)).header("Authorization", FAST_TOKEN).execute().body();
+        HttpRequest request = HttpRequest.post(url).body(Jsons.toJson(param));
+        request = mode == 1 ? request.header("Authorization", FAST_TOKEN) : request.header("mj-api-secret", RELAX_TOKEN);
+        String body = request.execute().body();
         log.info("action body:{}", body);
         SubmitResult submitResult = Jsons.parseObject(body, SubmitResult.class);
         int code = submitResult.getCode();
@@ -666,7 +671,9 @@ public class MidjourneyServiceImpl implements MidjourneyService {
     }
     public JSONArray listByIds(Integer mode, List<Long> ids) throws Exception {
         Map<String, Object> param = MapUtil.builder(new HashMap<String, Object>()).put("ids", ids).build();
-        String body = HttpRequest.post((mode == 1 ? FAST_HOST : RELAX_HOST) + "/mj/task/list-by-condition").header("Authorization", FAST_TOKEN).body(Jsons.toJson(param)).execute().body();
+        HttpRequest request = HttpRequest.post((mode == 1 ? FAST_HOST : RELAX_HOST) + "/mj/task/list-by-condition");
+        request = mode == 1 ? request.header("Authorization", FAST_TOKEN) : request.header("mj-api-secret", RELAX_TOKEN);
+        String body = request.body(Jsons.toJson(param)).execute().body();
         log.info("listByIds body:{}", body);
         return JSONUtil.parseArray(body);
     }
@@ -867,4 +874,12 @@ public class MidjourneyServiceImpl implements MidjourneyService {
             }
         });
     }
+
+    @Override
+    public SubmitResult uploadFile(SubmitUploadDTO uploadDTO) throws Exception {
+        HttpRequest request = HttpRequest.post(RELAX_HOST + "/mj/submit/upload-discord-images").body(Jsons.toJson(uploadDTO));
+        String body = request.execute().body();
+        log.info("action body:{}", body);
+        return Jsons.parseObject(body, SubmitResult.class);
+    }
 }

+ 10 - 0
midjourney/src/main/java/com/yhlxj/web/mirror/MidjourneyController.java

@@ -472,4 +472,14 @@ public class MidjourneyController {
     public void syscConversation() {
         midjourneyService.syscConversation();
     }
+
+
+    /**
+     * 上传文件到discord
+     */
+    @PostMapping("/upload")
+    public Result<SubmitResult> upload(@RequestBody SubmitUploadDTO uploadDTO) throws Exception {
+        log.info("上传文件到discord");
+        return GatewayResponse.SUCCESS.newBuilder().toResult(midjourneyService.uploadFile(uploadDTO));
+    }
 }