Commit 3fe04ac98e899864642e96efc9d1dd1892361862

Authored by cherishsince
1 parent defe6280

抽离 常用key到 mj constants 里面

yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/midjourney/constants/MjConstants.java
... ... @@ -2,7 +2,36 @@ package cn.iocoder.yudao.framework.ai.midjourney.constants;
2 2  
3 3 public final class MjConstants {
4 4  
5   - public static final String CHANNEL_ID = "channel_id";
  5 + /**
  6 + * 消息 - 编号
  7 + */
  8 + public static final String MSG_ID = "id";
  9 + /**
  10 + * 消息 - 类型
  11 + * 现在已知:
  12 + * 0:我们发送的消息,和指令
  13 + * 20: mj生成图片发送过程中
  14 + * 19: 选择了某一张图片后的通知
  15 + */
  16 + public static final String MSG_TYPE = "type";
  17 + /**
  18 + * 平道id
  19 + */
  20 + public static final String MSG_CHANNEL_ID = "channel_id";
  21 + /**
  22 + * 内容
  23 + *
  24 + * "**南极应该是什么样子? --v 6.0 --style raw** - <@972721304891453450> (32%) (fast, stealth)",
  25 + */
  26 + public static final String MSG_CONTENT = "content";
  27 + /**
  28 + * 组件(图片生成好之后才有)
  29 + */
  30 + public static final String MSG_COMPONENTS = "components";
  31 + /**
  32 + * 附件(生成中比较模糊的图片)
  33 + */
  34 + public static final String MSG_ATTACHMENTS = "attachments";
6 35  
7 36  
8 37 }
... ...
yudao-module-ai/yudao-spring-boot-starter-ai/src/main/java/cn/iocoder/yudao/framework/ai/midjourney/webSocket/listener/MjMessageListener.java
... ... @@ -12,12 +12,9 @@ import cn.iocoder.yudao.framework.ai.midjourney.constants.MjGennerateStatusEnum;
12 12 import cn.iocoder.yudao.framework.ai.midjourney.constants.MjMessageTypeEnum;
13 13 import cn.iocoder.yudao.framework.ai.midjourney.util.MjUtil;
14 14 import com.alibaba.fastjson.JSON;
15   -import com.google.common.collect.Lists;
16 15 import lombok.extern.slf4j.Slf4j;
17 16 import net.dv8tion.jda.api.utils.data.DataObject;
18 17  
19   -import java.io.UnsupportedEncodingException;
20   -import java.util.Arrays;
21 18 import java.util.List;
22 19  
23 20 @Slf4j
... ... @@ -39,25 +36,28 @@ public class MjMessageListener {
39 36 return;
40 37 }
41 38  
  39 + // 转换几个重要的信息
42 40 MjMessage mjMessage = new MjMessage();
43   - mjMessage.setId(data.getString("id"));
44   - mjMessage.setType(data.getInt("type"));
  41 + mjMessage.setId(data.getString(MjConstants.MSG_ID));
  42 + mjMessage.setType(data.getInt(MjConstants.MSG_TYPE));
45 43 mjMessage.setRawData(StrUtil.str(raw.toJson(), "UTF-8"));
46   - mjMessage.setContent(MjUtil.parseContent(data.getString("content")));
47   -
48   - if (!data.getArray("components").isEmpty()) {
49   - String componentsJson = StrUtil.str(data.getArray("components").toJson(), "UTF-8");
  44 + mjMessage.setContent(MjUtil.parseContent(data.getString(MjConstants.MSG_CONTENT)));
  45 + // 转换 components
  46 + if (!data.getArray(MjConstants.MSG_COMPONENTS).isEmpty()) {
  47 + String componentsJson = StrUtil.str(data.getArray(MjConstants.MSG_COMPONENTS).toJson(), "UTF-8");
50 48 List<MjMessage.ComponentType> components = JSON.parseArray(componentsJson, MjMessage.ComponentType.class);
51 49 mjMessage.setComponents(components);
52 50 }
53   - if (!data.getArray("attachments").isEmpty()) {
54   - String attachmentsJson = StrUtil.str(data.getArray("attachments").toJson(), "UTF-8");
  51 + // 转换附件
  52 + if (!data.getArray(MjConstants.MSG_ATTACHMENTS).isEmpty()) {
  53 + String attachmentsJson = StrUtil.str(data.getArray(MjConstants.MSG_ATTACHMENTS).toJson(), "UTF-8");
55 54 List<MjMessage.Attachment> attachments = JSON.parseArray(attachmentsJson, MjMessage.Attachment.class);
56 55 mjMessage.setAttachments(attachments);
57 56 }
58   -
59 57 // 转换状态
60 58 convertGenerateStatus(mjMessage);
  59 + //
  60 + log.info("message 信息 {}", JSONUtil.toJsonPrettyStr(mjMessage));
61 61 System.err.println(JSONUtil.toJsonPrettyStr(mjMessage));
62 62 }
63 63  
... ... @@ -72,7 +72,7 @@ public class MjMessageListener {
72 72 }
73 73  
74 74 private boolean ignoreAndLogMessage(DataObject data, MjMessageTypeEnum messageType) {
75   - String channelId = data.getString(MjConstants.CHANNEL_ID);
  75 + String channelId = data.getString(MjConstants.MSG_CHANNEL_ID);
76 76 if (!CharSequenceUtil.equals(channelId, midjourneyConfig.getChannelId())) {
77 77 return true;
78 78 }
... ...