XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension

修正多处格式错误 修正多处拼写错误

454a9f7
XFE工作室室长 <xfe18827675401@126.com>
提交于

代码差异

3 个文件 +60 -60
Modified XFE各类拓展/CyberComm.cs +18 -18
@@ -52,7 +52,7 @@ namespace XFE各类拓展.CyberComm
52 52 /// <summary>
53 53 /// 自动重连最大次数
54 54 /// </summary>
55 public int ReconncetMaxTimes { get; set; } = -1;
55 public int ReconnectMaxTimes { get; set; } = -1;
56 56 /// <summary>
57 57 /// 自动重连尝试间隔
58 58 /// </summary>
@@ -60,7 +60,7 @@ namespace XFE各类拓展.CyberComm
60 60 /// <summary>
61 61 /// 是否自动接收完整消息
62 62 /// </summary>
63 public bool AutoRecevieCompletedMessage { get; set; }
63 public bool AutoReceiveCompletedMessage { get; set; }
64 64 /// <summary>
65 65 /// 收到消息时触发
66 66 /// </summary>
@@ -102,7 +102,7 @@ namespace XFE各类拓展.CyberComm
102 102 IsConnected = false;
103 103 if (AutoReconnect)
104 104 {
105 if (reconnectTimes <= ReconncetMaxTimes || ReconncetMaxTimes == -1)
105 if (reconnectTimes <= ReconnectMaxTimes || ReconnectMaxTimes == -1)
106 106 {
107 107 Thread.Sleep(ReconnectTryDelay);
108 108 goto StartConnect;
@@ -126,7 +126,7 @@ namespace XFE各类拓展.CyberComm
126 126 {
127 127 string receivedMessage = Encoding.UTF8.GetString(receiveBuffer, 0, receiveResult.Count);
128 128 //ReceiveCompletedMessageByUsingWhile
129 if (AutoRecevieCompletedMessage)
129 if (AutoReceiveCompletedMessage)
130 130 {
131 131 while (!receiveResult.EndOfMessage)
132 132 {
@@ -141,7 +141,7 @@ namespace XFE各类拓展.CyberComm
141 141 var bufferList = new List<byte>();
142 142 bufferList.AddRange(receiveBuffer.Take(receiveResult.Count));
143 143 //ReceiveCompletedMessageByUsingWhile
144 if (AutoRecevieCompletedMessage)
144 if (AutoReceiveCompletedMessage)
145 145 {
146 146 while (!receiveResult.EndOfMessage)
147 147 {
@@ -169,7 +169,7 @@ namespace XFE各类拓展.CyberComm
169 169 if (AutoReconnect)
170 170 {
171 171 Thread.Sleep(ReconnectTryDelay);
172 if (reconnectTimes <= ReconncetMaxTimes || ReconncetMaxTimes == -1)
172 if (reconnectTimes <= ReconnectMaxTimes || ReconnectMaxTimes == -1)
173 173 goto StartConnect;
174 174 }
175 175 }
@@ -232,14 +232,14 @@ namespace XFE各类拓展.CyberComm
232 232 /// <summary>
233 233 /// CyberComm客户端
234 234 /// </summary>
235 /// <param name="ServerURL">WS服务器地址</param>
236 /// <param name="AutoReconnect">是否自动重连</param>
237 /// <param name="AutoRecevieCompletedMessage">是否自动接收完整消息</param>
238 public CyberCommClient(string ServerURL, bool AutoReconnect = true, bool AutoRecevieCompletedMessage = true)
235 /// <param name="serverURL">WS服务器地址</param>
236 /// <param name="autoReconnect">是否自动重连</param>
237 /// <param name="autoReceiveCompletedMessage">是否自动接收完整消息</param>
238 public CyberCommClient(string serverURL, bool autoReconnect = true, bool autoReceiveCompletedMessage = true)
239 239 {
240 this.AutoReconnect = AutoReconnect;
241 this.AutoRecevieCompletedMessage = AutoRecevieCompletedMessage;
242 this.ServerURL = ServerURL;
240 this.AutoReconnect = autoReconnect;
241 this.AutoReceiveCompletedMessage = autoReceiveCompletedMessage;
242 this.ServerURL = serverURL;
243 243 }
244 244 /// <summary>
245 245 /// CyberComm客户端
@@ -257,7 +257,7 @@ namespace XFE各类拓展.CyberComm
257 257 /// <summary>
258 258 /// 是否自动接收完整消息
259 259 /// </summary>
260 public bool AutoRecevieCompletedMessage { get; set; }
260 public bool AutoReceiveCompletedMessage { get; set; }
261 261 /// <summary>
262 262 /// 收到消息时触发
263 263 /// </summary>
@@ -322,7 +322,7 @@ namespace XFE各类拓展.CyberComm
322 322 {
323 323 string receivedMessage = Encoding.UTF8.GetString(receiveBuffer, 0, receiveResult.Count);
324 324 //ReceiveCompletedMessageByUsingWhile
325 if (AutoRecevieCompletedMessage)
325 if (AutoReceiveCompletedMessage)
326 326 {
327 327 while (!receiveResult.EndOfMessage)
328 328 {
@@ -335,7 +335,7 @@ namespace XFE各类拓展.CyberComm
335 335 if (receiveResult.MessageType == WebSocketMessageType.Binary)
336 336 {
337 337 //ReceiveCompletedMessageByUsingWhile
338 if (AutoRecevieCompletedMessage)
338 if (AutoReceiveCompletedMessage)
339 339 {
340 340 var bufferList = new List<byte>();
341 341 bufferList.AddRange(receiveBuffer.Take(receiveResult.Count));
@@ -372,7 +372,7 @@ namespace XFE各类拓展.CyberComm
372 372 public CyberCommServer(int ListenPort, bool AutoReceiveCompletedMessage = true)
373 373 {
374 374 this.serverURL = $"http://*:{ListenPort}/";
375 this.AutoRecevieCompletedMessage = AutoReceiveCompletedMessage;
375 this.AutoReceiveCompletedMessage = AutoReceiveCompletedMessage;
376 376 }
377 377 /// <summary>
378 378 /// CyberComm服务器,使用URL创建
@@ -382,7 +382,7 @@ namespace XFE各类拓展.CyberComm
382 382 public CyberCommServer(string ServerURL, bool AutoReceiveCompletedMessage = true)
383 383 {
384 384 this.serverURL = ServerURL;
385 this.AutoRecevieCompletedMessage = AutoReceiveCompletedMessage;
385 this.AutoReceiveCompletedMessage = AutoReceiveCompletedMessage;
386 386 }
387 387 #endregion
388 388 }
Modified XFE各类拓展/StringExtension.cs +14 -14
@@ -16,24 +16,24 @@ namespace XFE各类拓展.StringExtension
16 16 /// 根据给定的开头和末尾返回查找到的第一个匹配的字符串(全匹配)
17 17 /// </summary>
18 18 /// <param name="str">被匹配的字符串</param>
19 /// <param name="beginstr">匹配开头字符串</param>
20 /// <param name="endstr">匹配结尾字符串</param>
19 /// <param name="beginString">匹配开头字符串</param>
20 /// <param name="endString">匹配结尾字符串</param>
21 21 /// <returns>返回夹在开头和末尾中间的字符串</returns>
22 public static string GetStringBetweenTwoString(this string str, string beginstr, string endstr)
22 public static string GetStringBetweenTwoString(this string str, string beginString, string endString)
23 23 {
24 24 if (str != string.Empty && str != null)
25 25 {
26 int beginindex = str.IndexOf(beginstr, StringComparison.Ordinal);
27 if (beginindex == -1 || beginindex == 0)
26 int beginIndex = str.IndexOf(beginString, StringComparison.Ordinal);
27 if (beginIndex == -1 || beginIndex == 0)
28 28 {
29 29 return string.Empty;
30 30 }
31 int endindex = str.IndexOf(endstr, beginindex, StringComparison.Ordinal);
32 if (endindex == -1 || endindex == 0)
31 int endIndex = str.IndexOf(endString, beginIndex, StringComparison.Ordinal);
32 if (endIndex == -1 || endIndex == 0)
33 33 {
34 34 return string.Empty;
35 35 }
36 return str.Substring(beginindex + beginstr.Length, endindex - beginindex - beginstr.Length);
36 return str.Substring(beginIndex + beginString.Length, endIndex - beginIndex - beginString.Length);
37 37 }
38 38 else
39 39 {
@@ -78,11 +78,11 @@ namespace XFE各类拓展.StringExtension
78 78 /// <summary>
79 79 /// 判断字符串是否为邮政编码
80 80 /// </summary>
81 /// <param name="str_postalcode"></param>
81 /// <param name="postalCode"></param>
82 82 /// <returns></returns>
83 public static bool IsPostalCode(this string str_postalcode)
83 public static bool IsPostalCode(this string postalCode)
84 84 {
85 return Regex.IsMatch(str_postalcode, @"^\d{6}$");
85 return Regex.IsMatch(postalCode, @"^\d{6}$");
86 86 }
87 87 /// <summary>
88 88 /// 判断字符串是否为数字
@@ -96,11 +96,11 @@ namespace XFE各类拓展.StringExtension
96 96 /// <summary>
97 97 /// 判断字符串是否为身份证件号
98 98 /// </summary>
99 /// <param name="str_idcard"></param>
99 /// <param name="Id"></param>
100 100 /// <returns></returns>
101 public static bool IsIDcard(this string str_idcard)
101 public static bool IsIdCard(this string Id)
102 102 {
103 return Regex.IsMatch(str_idcard, @"(^\d{18}$)|(^\d{15}$)");
103 return Regex.IsMatch(Id, @"(^\d{18}$)|(^\d{15}$)");
104 104 }
105 105 /// <summary>
106 106 /// 判断字符串是否为邮箱地址
Modified XFE各类拓展/XFEChatGPT.cs +28 -28
@@ -443,58 +443,58 @@ namespace XFE各类拓展.XFEChatGPT
443 443 {
444 444 #region 读取消息
445 445 byte[] buffer = new byte[1024];
446 WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//接收消息
447 string NowreceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
446 var result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//接收消息
447 var nowReceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
448 448 #endregion
449 449 if (XFEComProtocol == XFEComProtocol.XFEFAST)
450 450 {
451 if (NowreceivedMessage == "[DONE]")
451 if (nowReceivedMessage == "[DONE]")
452 452 {
453 453 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFEDONE]", messageId, GenerateState.End));
454 454 break;
455 455 }
456 else if (NowreceivedMessage.Contains("[XFERemoteAPIError]"))
456 else if (nowReceivedMessage.Contains("[XFERemoteAPIError]"))
457 457 {
458 458 if (!isStarted)
459 459 {
460 460 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFESTART]", messageId, GenerateState.Start));
461 461 }
462 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
462 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
463 463 }
464 else if (NowreceivedMessage == "[XFE]")
464 else if (nowReceivedMessage == "[XFE]")
465 465 {
466 466 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFESTART]", messageId, GenerateState.Start));
467 467 }
468 468 else
469 469 {
470 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage, messageId, GenerateState.Continue));
470 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage, messageId, GenerateState.Continue));
471 471 }
472 472 }
473 473 else
474 474 {
475 if (NowreceivedMessage == "[DONE]")
475 if (nowReceivedMessage == "[DONE]")
476 476 {
477 477 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFEDONE]", messageId, GenerateState.End));
478 478 break;
479 479 }
480 else if (NowreceivedMessage.Contains("[XFERemoteAPIError]"))
480 else if (nowReceivedMessage.Contains("[XFERemoteAPIError]"))
481 481 {
482 482 if (!isStarted)
483 483 {
484 484 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFESTART]", messageId, GenerateState.Start));
485 485 }
486 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
486 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
487 487 }
488 else if (NowreceivedMessage == "[XFE]")
488 else if (nowReceivedMessage == "[XFE]")
489 489 {
490 490 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFESTART]", messageId, GenerateState.Start));
491 491 }
492 492 else
493 493 {
494 if (NowreceivedMessage.Contains("[XFE]"))
494 if (nowReceivedMessage.Contains("[XFE]"))
495 495 {
496 NowreceivedMessage = NowreceivedMessage.Replace("[XFE]", string.Empty);
497 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage, messageId, GenerateState.Continue));
496 nowReceivedMessage = nowReceivedMessage.Replace("[XFE]", string.Empty);
497 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage, messageId, GenerateState.Continue));
498 498 }
499 499 else
500 500 {
@@ -502,7 +502,7 @@ namespace XFE各类拓展.XFEChatGPT
502 502 {
503 503 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs("[XFESTART]", messageId, GenerateState.Start));
504 504 }
505 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
505 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
506 506 }
507 507 }
508 508 }
@@ -531,22 +531,22 @@ namespace XFE各类拓展.XFEChatGPT
531 531 #region 读取消息
532 532 byte[] buffer = new byte[1024];
533 533 WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//接收消息
534 string NowreceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
534 string nowReceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
535 535 #endregion
536 536 if (XFEComProtocol == XFEComProtocol.XFEFAST)
537 537 {
538 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage, messageId, GenerateState.Start));
538 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage, messageId, GenerateState.Start));
539 539 }
540 540 else
541 541 {
542 if (NowreceivedMessage.Contains("[XFE]"))
542 if (nowReceivedMessage.Contains("[XFE]"))
543 543 {
544 NowreceivedMessage = NowreceivedMessage.Replace("[XFE]", string.Empty);
545 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage, messageId, GenerateState.Start));
544 nowReceivedMessage = nowReceivedMessage.Replace("[XFE]", string.Empty);
545 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage, messageId, GenerateState.Start));
546 546 }
547 547 else
548 548 {
549 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(NowreceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
549 XFEChatGPTMessageReceived.Invoke(this, new PrivateXFEGPTMessageReceivedEventArgs(nowReceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error));
550 550 }
551 551 }
552 552 await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Connection closed.", CancellationToken.None);
@@ -1184,18 +1184,18 @@ namespace XFE各类拓展.XFEChatGPT
1184 1184 #region 读取消息
1185 1185 byte[] buffer = new byte[1024];
1186 1186 WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//接收消息
1187 string NowreceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
1187 string nowReceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
1188 1188 #endregion
1189 if (NowreceivedMessage.Contains("[XFE]"))
1189 if (nowReceivedMessage.Contains("[XFE]"))
1190 1190 {
1191 NowreceivedMessage = NowreceivedMessage.Replace("[XFE]", string.Empty);
1192 xFEGPTMemoryDialog.InstanceUpdate(dialogId, messageId + "_Assistant", NowreceivedMessage, true);
1193 XFEChatGPTMessageReceived.Invoke(this, new PrivateMemorableGPTMessageReceivedEventArgs(NowreceivedMessage, messageId, GenerateState.Start, dialogId));
1191 nowReceivedMessage = nowReceivedMessage.Replace("[XFE]", string.Empty);
1192 xFEGPTMemoryDialog.InstanceUpdate(dialogId, messageId + "_Assistant", nowReceivedMessage, true);
1193 XFEChatGPTMessageReceived.Invoke(this, new PrivateMemorableGPTMessageReceivedEventArgs(nowReceivedMessage, messageId, GenerateState.Start, dialogId));
1194 1194 }
1195 1195 else
1196 1196 {
1197 xFEGPTMemoryDialog.InstanceUpdate(dialogId, messageId + "_Assistant", NowreceivedMessage, true);
1198 XFEChatGPTMessageReceived.Invoke(this, new PrivateMemorableGPTMessageReceivedEventArgs(NowreceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error, dialogId));
1197 xFEGPTMemoryDialog.InstanceUpdate(dialogId, messageId + "_Assistant", nowReceivedMessage, true);
1198 XFEChatGPTMessageReceived.Invoke(this, new PrivateMemorableGPTMessageReceivedEventArgs(nowReceivedMessage.Replace("[XFERemoteAPIError]", string.Empty), messageId, GenerateState.Error, dialogId));
1199 1199 }
1200 1200 await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Connection closed.", CancellationToken.None);
1201 1201 }