| 
					
				 | 
			
			
				@@ -4,13 +4,13 @@ package cn.iocoder.yudao.framework.ai.midjourney.webSocket.listener; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.collection.CollUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.text.CharSequenceUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.util.StrUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import cn.hutool.json.JSONUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.MidjourneyMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.constants.MidjourneyConstants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.constants.MidjourneyGennerateStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.constants.MidjourneyMessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.ai.midjourney.util.MidjourneyUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.iocoder.yudao.framework.ai.midjourney.webSocket.MidjourneyMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import net.dv8tion.jda.api.utils.data.DataObject; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,11 +21,18 @@ import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class MidjourneyMessageListener { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MidjourneyConfig midjourneyConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private MidjourneyMessageHandler midjourneyMessageHandler = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public MidjourneyMessageListener(MidjourneyConfig midjourneyConfig) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.midjourneyConfig = midjourneyConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public MidjourneyMessageListener(MidjourneyConfig midjourneyConfig, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                     MidjourneyMessageHandler midjourneyMessageHandler) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.midjourneyConfig = midjourneyConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.midjourneyMessageHandler = midjourneyMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void onMessage(DataObject raw) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MidjourneyMessageTypeEnum messageType = MidjourneyMessageTypeEnum.of(raw.getString("t")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (messageType == null || MidjourneyMessageTypeEnum.DELETE == messageType) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,7 +42,6 @@ public class MidjourneyMessageListener { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (ignoreAndLogMessage(data, messageType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 转换几个重要的信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MidjourneyMessage mjMessage = new MidjourneyMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         mjMessage.setId(data.getString(MidjourneyConstants.MSG_ID)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,9 +62,10 @@ public class MidjourneyMessageListener { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 转换状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         convertGenerateStatus(mjMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        log.info("message 信息 {}", JSONUtil.toJsonPrettyStr(mjMessage)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        System.err.println(JSONUtil.toJsonPrettyStr(mjMessage)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // message handler 调用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (midjourneyMessageHandler != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            midjourneyMessageHandler.messageHandler(mjMessage); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void convertGenerateStatus(MidjourneyMessage mjMessage) { 
			 |