From e3da640737feb920dd8b0d589f37b6d3db282aa0 Mon Sep 17 00:00:00 2001
From: ageer <ageerle@163.com>
Date: 星期日, 11 五月 2025 18:37:51 +0800
Subject: [PATCH] feat: 代码优化

---
 /dev/null                                                                                                                                                          |   12 ------------
 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java                                                       |    3 ---
 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java |    7 -------
 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java        |    8 +-------
 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java                                                                      |    1 -
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java                                                                       |    2 +-
 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java     |   10 +---------
 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java                                                                          |    3 +--
 ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java                                                                     |    1 -
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java                                                                  |    1 -
 ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java           |    5 +----
 ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java                                                       |    1 -
 12 files changed, 5 insertions(+), 49 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
index 6ad8218..3867ee7 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java
@@ -344,7 +344,6 @@
 
         BillingUsage billingUsage = billingUsage(start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), end.toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
         double totalUsage = billingUsage.getTotalUsage().doubleValue() / 100;
-        System.out.println(totalUsage);
         Subscription subscription = subscription();
         KeyInfo keyInfo = new KeyInfo();
         String start_key = key.substring(0, 6);
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
index 349f5c1..3df000d 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/TestOpenAIAPI.java
@@ -21,7 +21,7 @@
             .build();
 
         try (Response response = client.newCall(request).execute()) {
-            System.out.println(response.body().string());
+
         }
     }
 
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java
deleted file mode 100644
index a275150..0000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdReq.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-
-import lombok.Data;
-import org.ruoyi.common.chat.openai.plugin.PluginParam;
-
-@Data
-public class CmdReq extends PluginParam {
-    /**
-     * 鎸囦护
-     */
-    private String cmd;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java
deleted file mode 100644
index 4e10139..0000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/CmdResp.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import lombok.Data;
-
-@Data
-public class CmdResp {
-
-    /**
-     * 杩斿洖缁撴灉
-     */
-    private String result;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java
deleted file mode 100644
index a40734d..0000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlPlugin.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import org.ruoyi.common.chat.openai.plugin.PluginAbstract;
-
-import java.sql.*;
-
-/**
- * @author ageer
- */
-public class SqlPlugin extends PluginAbstract<SqlReq, SqlResp> {
-
-    public SqlPlugin(Class<?> r) {
-        super(r);
-    }
-
-
-
-    @Override
-    public SqlResp func(SqlReq args) {
-        SqlResp resp = new SqlResp();
-        resp.setUserBalance(getBalance(args.getUsername()));
-        return resp;
-    }
-
-    @Override
-    public String content(SqlResp resp) {
-        return  "鐢ㄦ埛浣欓锛�"+resp.getUserBalance();
-    }
-
-
-    public String getBalance(String userName) {
-        // MySQL 8.0 浠ヤ笅鐗堟湰 - JDBC 椹卞姩鍚嶅強鏁版嵁搴� URL
-        String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
-        String DB_URL = "jdbc:mysql://43.139.70.230:3306/ry-vue";
-        // 鏁版嵁搴撶殑鐢ㄦ埛鍚嶄笌瀵嗙爜锛岄渶瑕佹牴鎹嚜宸辩殑璁剧疆
-        String USER = "ry-vue";
-        String PASS = "BXZiGsY35K523Xfx";
-        Connection conn = null;
-        Statement stmt = null;
-        String balance = "0.1";
-
-        try{
-            // 娉ㄥ唽 JDBC 椹卞姩
-            Class.forName(JDBC_DRIVER);
-
-            // 鎵撳紑閾炬帴
-            System.out.println("杩炴帴鏁版嵁搴�...");
-            conn = DriverManager.getConnection(DB_URL,USER,PASS);
-
-            // 鎵ц鏌ヨ
-            System.out.println(" 瀹炰緥鍖朣tatement瀵硅薄...");
-            stmt = conn.createStatement();
-            String sql;
-            sql = "SELECT user_balance FROM sys_user where user_name ='" + userName + "'";
-            ResultSet rs = stmt.executeQuery(sql);
-            // 灞曞紑缁撴灉闆嗘暟鎹簱
-            while(rs.next()){
-                // 閫氳繃瀛楁妫�绱�
-                balance = rs.getString("user_balance");
-                // 杈撳嚭鏁版嵁
-                System.out.print("浣欓: " + balance);
-                System.out.print("\n");
-            }
-            // 瀹屾垚鍚庡叧闂�
-            rs.close();
-            stmt.close();
-            conn.close();
-        }catch(SQLException se){
-            // 澶勭悊 JDBC 閿欒
-            se.printStackTrace();
-        }catch(Exception e){
-            // 澶勭悊 Class.forName 閿欒
-            e.printStackTrace();
-        }finally{
-            // 鍏抽棴璧勬簮
-            try{
-                if(stmt!=null) stmt.close();
-            }catch(SQLException se2){
-            }// 浠�涔堥兘涓嶅仛
-            try{
-                if(conn!=null) conn.close();
-            }catch(SQLException se){
-                se.printStackTrace();
-            }
-        }
-       return balance;
-    }
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java
deleted file mode 100644
index 481ba72..0000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlReq.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-
-import lombok.Data;
-import org.ruoyi.common.chat.openai.plugin.PluginParam;
-
-@Data
-public class SqlReq extends PluginParam {
-    /**
-     * 鐢ㄦ埛鍚嶇О
-     */
-    private String username;
-}
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java
deleted file mode 100644
index b84b555..0000000
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/plugin/SqlResp.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.ruoyi.common.chat.plugin;
-
-import lombok.Data;
-
-@Data
-public class SqlResp {
-
-    /**
-     * 鐢ㄦ埛浣欓
-     */
-    private String userBalance;
-}
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
index 56cc6d0..f7683af 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/client/DouyuLiveChatClientTest.java
@@ -45,11 +45,7 @@
 
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.io.IOException;
 import java.util.Objects;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -95,12 +91,9 @@
                     .build();
 
             long startTime = System.currentTimeMillis(); // 鑾峰彇寮�濮嬫椂闂寸殑姣鏁�
-            System.out.println("鎵ц鍓�.......");
             Thread.sleep(3000);
-            System.out.println("鎵ц鍚�.......");
             long endTime = System.currentTimeMillis(); // 鑾峰彇缁撴潫鏃堕棿鐨勬绉掓暟
             long timeDiff = endTime - startTime; // 璁$畻鏃堕棿宸�
-            System.out.println("鎵ц鏃堕棿 " + timeDiff / 1000 + " 绉掋��");
 
             try (Response response = okClient.newCall(request).execute()) {
                 if (response.body() != null) {
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
index b4d7260..919995d 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-douyu/src/test/java/tech/ordinaryroad/live/chat/client/douyu/util/DouyuCodecUtilTest.java
@@ -48,7 +48,6 @@
         Map<String, Object> stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(mapkb);
         assertNotNull(stringObjectMap);
         stringObjectMap.forEach((string, o) -> {
-            System.out.println(string);
         });
     }
 
@@ -58,7 +57,6 @@
         Map<String, Object> stringObjectMap = DouyuCodecUtil.parseDouyuSttStringToMap(pdrinfo);
         assertNotNull(stringObjectMap);
         stringObjectMap.forEach((string, o) -> {
-            System.out.println(string);
         });
     }
 
@@ -78,7 +76,6 @@
                 }});
             }});
         }});
-        System.out.println(douyuSttString);
         assertEquals("key1@=value1/key2@=2/key3@=11@AA=11@AS12@AA=12@AS@S22@AA=22@AS21@AA=21@AS@S/".length(), douyuSttString.length());
     }
 
@@ -87,8 +84,6 @@
         String mapkb = "type@=mapkb/pk_time@=600/teams@=team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S/";
         IDouyuMsg iDouyuMsg = DouyuCodecUtil.parseDouyuSttString(mapkb, DouyuCodecUtil.MSG_TYPE_RECEIVE);
         String douyuSttString = DouyuCodecUtil.toDouyuSttString(iDouyuMsg);
-        System.out.println(mapkb);
-        System.out.println(douyuSttString);
         assertEquals(mapkb.length(), douyuSttString.length());
         IDouyuMsg douyuSttStringMsg = DouyuCodecUtil.parseDouyuSttString(douyuSttString, DouyuCodecUtil.MSG_TYPE_RECEIVE);
         assertNotNull(douyuSttStringMsg);
@@ -97,6 +92,5 @@
     @Test
     void unescape() {
         String unescape = DouyuCodecUtil.unescape("team@AA=5@ASres@AA=1@ASsc@AA=660000@ASbf@AA=0@AS@Steam@AA=6@ASres@AA=2@ASsc@AA=600000@ASbf@AA=0@AS@Steam@AA=4@ASres@AA=3@ASsc@AA=456000@ASbf@AA=0@AS@Steam@AA=2@ASres@AA=4@ASsc@AA=302000@ASbf@AA=0@AS@Steam@AA=3@ASres@AA=5@ASsc@AA=100000@ASbf@AA=0@AS@Steam@AA=1@ASres@AA=6@ASsc@AA=200@ASbf@AA=0@AS@S");
-        System.out.println(unescape);
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
index aabfed7..71749f0 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-huya/src/test/java/tech/ordinaryroad/live/chat/client/huya/util/HuyaCodecUtilTest.java
@@ -26,7 +26,6 @@
         ConnectParaInfo wsConnectParaInfo = ConnectParaInfo.newWSConnectParaInfo(ver, exp, appSrc);
         byte[] byteArray = wsConnectParaInfo.toByteArray();
         String s = HuyaCodecUtil.ab2str(byteArray);
-        System.out.println(s);
     }
 
     @Test
@@ -36,7 +35,6 @@
         String s = HuyaCodecUtil.ab2str(byteArray);
 
         String btoa = HuyaCodecUtil.btoa(s);
-        System.out.println(btoa);
     }
 
     @Test
@@ -67,7 +65,6 @@
         LiveLaunchReq liveLaunchReq = new LiveLaunchReq();
         liveLaunchReq = wupReq.getUniAttribute().getByClass("tReq", liveLaunchReq);
         UserId tId = liveLaunchReq.getTId();
-        System.out.println(wupReq.getTarsServantRequest().getVersion());
     }
 
     @Test
@@ -96,4 +93,4 @@
 
         UserId tId = getLivingInfoReq.getTId();
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
index db2fa9e..8bc3d05 100644
--- a/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
+++ b/ruoyi-common/ruoyi-common-live/live-chat-clients/live-chat-client-kuaishou/src/test/java/tech/ordinaryroad/live/chat/client/kuaishou/api/KuaishouApisTest.java
@@ -28,13 +28,5 @@
 
     @Test
     void sendComment() {
-        System.out.println(KuaishouApis.sendComment(System.getenv("cookie"),
-                "3x6pb6bcmjrarvs",
-                KuaishouApis.SendCommentRequest
-                        .builder()
-                        .liveStreamId("XKLoBv2mAEo")
-                        .content("666666a")
-                        .build()
-        ));
     }
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
index 7fcc9bf..201b17a 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/client/SingleHttpClient.java
@@ -84,7 +84,6 @@
             if (params != null) {
                 String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
                 httpGet = new HttpGet(url + "?" + paramStr);
-//                System.out.println(url + "?" + paramStr);
             } else {
                 httpGet = new HttpGet(url);
             }
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
index 17b2aff..68cc561 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/itchat4j/utils/tools/CommonTools.java
@@ -292,9 +292,6 @@
 			sb.append(content.substring(lastStart));
 		}
 		if (sb.length() != 0) {
-			System.out.println(EmojiParser.parseToUnicode(sb.toString()));
-			System.out.println(EmojiParser.parseToAliases(EmojiParser.parseToUnicode(sb.toString())));
-			System.out.println(EmojiParser.removeAllEmojis(sb.toString()));
 		}
 	}
 
diff --git a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
index 1748c30..ccf72a1 100644
--- a/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
+++ b/ruoyi-common/ruoyi-common-wechat/src/main/java/org/ruoyi/common/wechat/web/utils/MD5Util.java
@@ -61,7 +61,6 @@
 	}
 
 	public static void main(String[] args) {
-		System.out.println(MD5Encrypt("wxwobot"));
 	}
 
 
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
index 1d2568e..032c44d 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/controller/chat/ChatController.java
@@ -70,8 +70,7 @@
     @PostMapping("/audio")
     @ResponseBody
     public WhisperResponse audio(@RequestParam("file") MultipartFile file) {
-        WhisperResponse whisperResponse = sseService.speechToTextTranscriptionsV2(file);
-        return whisperResponse;
+        return sseService.speechToTextTranscriptionsV2(file);
     }
 
     /**
diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
index d07b801..532b052 100644
--- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
+++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/OllamaServiceImpl.java
@@ -62,7 +62,6 @@
                 OllamaStreamHandler streamHandler = (s) -> {
                     String substr = s.substring(response.length());
                     response.append(substr);
-                    System.out.println(substr);
                     try {
                         emitter.send(substr);
                     } catch (IOException e) {

--
Gitblit v1.9.3