diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 904d14f..0694953 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -28,6 +28,7 @@ jobs: 5.0.x 6.0.x 7.0.x + 8.0.x - name: Build run: dotnet build -c Release @@ -55,4 +56,9 @@ jobs: with: name: .NET 7 path: src/EleCho.GoCqHttpSdk*/bin/Release/net7.0/*.dll - \ No newline at end of file + - name: Upload .NET 8 + uses: actions/upload-artifact@v3 + with: + name: .NET 8 + path: src/EleCho.GoCqHttpSdk*/bin/Release/net8.0/*.dll + diff --git a/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetForwardMessageActionParamsModel.cs b/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetForwardMsgActionParamsModel.cs similarity index 100% rename from src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetForwardMessageActionParamsModel.cs rename to src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetForwardMsgActionParamsModel.cs diff --git a/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetLoginInformationActionParamsModel.cs b/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetLoginInfomationActionParamsModel.cs similarity index 100% rename from src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetLoginInformationActionParamsModel.cs rename to src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetLoginInfomationActionParamsModel.cs diff --git a/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetStrangerInformationActionParamsModel.cs b/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetStrangerInfoActionParamsModel.cs similarity index 100% rename from src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetStrangerInformationActionParamsModel.cs rename to src/EleCho.GoCqHttpSdk/Action/Model/Params/CqGetStrangerInfoActionParamsModel.cs diff --git a/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqSendGroupMessageActionParamsModel.cs b/src/EleCho.GoCqHttpSdk/Action/Model/Params/CqSendGroupMsgActionParamsModel.cs similarity index 100% rename from src/EleCho.GoCqHttpSdk/Action/Model/Params/CqSendGroupMessageActionParamsModel.cs rename to src/EleCho.GoCqHttpSdk/Action/Model/Params/CqSendGroupMsgActionParamsModel.cs diff --git a/src/EleCho.GoCqHttpSdk/CqWsSession.cs b/src/EleCho.GoCqHttpSdk/CqWsSession.cs index 01532ba..0f5ccda 100644 --- a/src/EleCho.GoCqHttpSdk/CqWsSession.cs +++ b/src/EleCho.GoCqHttpSdk/CqWsSession.cs @@ -247,10 +247,10 @@ private async Task WebSocketLoop(WebSocket webSocket) #endif ms.Seek(0, SeekOrigin.Begin); - CqWsDataModel? wsDataModel = JsonSerializer.Deserialize(ms, JsonHelper.Options); - - // 处理 WebSocket 数据 - ProcWsDataAsync(wsDataModel); + CqWsDataModel? wsDataModel = JsonSerializer.Deserialize(ms, JsonHelper.Options); + + // 处理 WebSocket 数据 + ProcWsDataAsync(wsDataModel); #if DEBUG if (wsDataModel is not CqPostModel) diff --git a/src/EleCho.GoCqHttpSdk/EleCho.GoCqHttpSdk.csproj b/src/EleCho.GoCqHttpSdk/EleCho.GoCqHttpSdk.csproj index 4cea8be..3a7c973 100644 --- a/src/EleCho.GoCqHttpSdk/EleCho.GoCqHttpSdk.csproj +++ b/src/EleCho.GoCqHttpSdk/EleCho.GoCqHttpSdk.csproj @@ -8,7 +8,7 @@ SlimeNull Go-CqHttp 的 .NET SDK https://github.com/OrgEleCho/EleCho.GoCqHttpSdk - 1.3.0 + 1.2.6 README.md Copyright (c) EleCho 2023 https://github.com/OrgEleCho/EleCho.GoCqHttpSdk diff --git a/src/EleCho.GoCqHttpSdk/Utils/JsonHelper.cs b/src/EleCho.GoCqHttpSdk/Utils/JsonHelper.cs index 6121755..68bb6b8 100644 --- a/src/EleCho.GoCqHttpSdk/Utils/JsonHelper.cs +++ b/src/EleCho.GoCqHttpSdk/Utils/JsonHelper.cs @@ -1,292 +1,85 @@ -using EleCho.GoCqHttpSdk.Action.Model; -using EleCho.GoCqHttpSdk.Action.Model.Params; -using EleCho.GoCqHttpSdk.Action.Model.ResultData; -using EleCho.GoCqHttpSdk.JsonConverter; -using EleCho.GoCqHttpSdk.Message.DataModel; +using EleCho.GoCqHttpSdk.JsonConverter; using EleCho.GoCqHttpSdk.Message.JsonConverter; -using EleCho.GoCqHttpSdk.Model; using EleCho.GoCqHttpSdk.Post.JsonConverter; -using EleCho.GoCqHttpSdk.Post.Model; using System; using System.Text.Encodings.Web; using System.Text.Json; using System.Text.Json.Serialization; -using System.Text.Json.Serialization.Metadata; using System.Text.Unicode; -namespace EleCho.GoCqHttpSdk.Utils; - -internal static class JsonHelper +namespace EleCho.GoCqHttpSdk.Utils { - private static Lazy options = new Lazy(NewOptions); - - private static JsonSerializerOptions NewOptions() + internal static class JsonHelper { - return new JsonSerializerOptions() + private static Lazy options = new Lazy(NewOptions); + + private static JsonSerializerOptions NewOptions() { - DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, - NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.AllowNamedFloatingPointLiterals, - Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), - Converters = + return new JsonSerializerOptions() { - new CqWsDataModelConverter(), + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.AllowNamedFloatingPointLiterals, + Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), + Converters = + { + new CqWsDataModelConverter(), - new CqPostModelConverter(), - new CqMessageEventModelConverter(), - new CqSelfMessageEventModelConverter(), + new CqPostModelConverter(), + new CqMessageEventModelConverter(), + new CqSelfMessageEventModelConverter(), - new CqNoticeEventModelConverter(), - new CqNoticeNotifyEventModelConverter(), + new CqNoticeEventModelConverter(), + new CqNoticeNotifyEventModelConverter(), - new CqMetaEventModelConverter(), + new CqMetaEventModelConverter(), - new CqRequestEventModelConverter(), + new CqRequestEventModelConverter(), - new CqMsgModelArrayConverter(), - new CpMsgModelConverter(), - }, -#if NET7_0_OR_GREATER - TypeInfoResolver = JsonGeneratorSourceContext.Default, -#endif - }; - } + new CqMsgModelArrayConverter(), + new CpMsgModelConverter(), + } + }; + } - public static JsonSerializerOptions Options => + public static JsonSerializerOptions Options => #if DEBUG - debugOptions.Value; + debugOptions.Value; #else - options.Value; + options.Value; #endif #if DEBUG - private static Lazy debugOptions = new(NewDebugOptions); + private static Lazy debugOptions = new(NewDebugOptions); - private static JsonSerializerOptions NewDebugOptions() - { - return new JsonSerializerOptions() + private static JsonSerializerOptions NewDebugOptions() { - WriteIndented = true, - DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, - NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.AllowNamedFloatingPointLiterals, - Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), - Converters = + return new JsonSerializerOptions() { - new CqWsDataModelConverter(), + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.AllowNamedFloatingPointLiterals, + Encoder = JavaScriptEncoder.Create(UnicodeRanges.All), + Converters = + { + new CqWsDataModelConverter(), - new CqPostModelConverter(), - new CqMessageEventModelConverter(), - new CqSelfMessageEventModelConverter(), + new CqPostModelConverter(), + new CqMessageEventModelConverter(), + new CqSelfMessageEventModelConverter(), - new CqNoticeEventModelConverter(), - new CqNoticeNotifyEventModelConverter(), + new CqNoticeEventModelConverter(), + new CqNoticeNotifyEventModelConverter(), - new CqMetaEventModelConverter(), + new CqMetaEventModelConverter(), - new CqRequestEventModelConverter(), + new CqRequestEventModelConverter(), - new CqMsgModelArrayConverter(), - new CpMsgModelConverter(), - }, -#if NET7_0_OR_GREATER - TypeInfoResolver = JsonGeneratorSourceContext.Default, -#endif - }; - } + new CqMsgModelArrayConverter(), + new CpMsgModelConverter(), + } + }; + } #endif -} - -#if NET7_0_OR_GREATER -[JsonSourceGenerationOptions] -[JsonSerializable(typeof(CqWsDataModel))] -[JsonSerializable(typeof(CqPostModel))] -[JsonSerializable(typeof(CqActionModel))] -[JsonSerializable(typeof(CqActionResultRaw))] - -[JsonSerializable(typeof(CqMessagePostModel))] -[JsonSerializable(typeof(CqSelfMessagePostModel))] -[JsonSerializable(typeof(CqNoticePostModel))] -[JsonSerializable(typeof(CqRequestPostModel))] -[JsonSerializable(typeof(CqMetaPostModel))] - -[JsonSerializable(typeof(CqPrivateMessagePostModel))] -[JsonSerializable(typeof(CqGroupMessagePostModel))] - -[JsonSerializable(typeof(CqPrivateSelfMessagePostModel))] -[JsonSerializable(typeof(CqGroupSelfMessagePostModel))] - -[JsonSerializable(typeof(CqNoticeGroupUploadPostModel))] -[JsonSerializable(typeof(CqNoticeGroupAdminPostModel))] -[JsonSerializable(typeof(CqNoticeGroupIncreasePostModel))] -[JsonSerializable(typeof(CqNoticeGroupDecreasePostModel))] -[JsonSerializable(typeof(CqNoticeGroupBanPostModel))] -[JsonSerializable(typeof(CqNoticeFriendAddPostModel))] -[JsonSerializable(typeof(CqNoticeGroupRecallPostModel))] -[JsonSerializable(typeof(CqNoticeFriendRecallPostModel))] -[JsonSerializable(typeof(CqNoticeGroupCardPostModel))] -[JsonSerializable(typeof(CqNoticeOfflineFilePostModel))] -[JsonSerializable(typeof(CqNoticeNotifyPostModel))] - -[JsonSerializable(typeof(CqNoticePokePostModel))] -[JsonSerializable(typeof(CqNoticeLuckyKingPostModel))] -[JsonSerializable(typeof(CqNoticeHonorPostModel))] -[JsonSerializable(typeof(CqNoticeTitlePostModel))] - -[JsonSerializable(typeof(CqMetaLifecyclePostModel))] -[JsonSerializable(typeof(CqMetaHeartbeatPostModel))] - -[JsonSerializable(typeof(CqRequestFriendPostModel))] -[JsonSerializable(typeof(CqRequestGroupPostModel))] - -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] -[JsonSerializable(typeof(CqMsgModel))] - -[JsonSerializable(typeof(CqActionParamsModel))] -[JsonSerializable(typeof(CqBanGroupAllMembersActionParamsModel))] -[JsonSerializable(typeof(CqBanGroupAnonymousMemberActionParamsModel))] -[JsonSerializable(typeof(CqBanGroupMemberActionParamsModel))] -[JsonSerializable(typeof(CqCanSendImageActionParamsModel))] -[JsonSerializable(typeof(CqCanSendRecordActionParamsModel))] -[JsonSerializable(typeof(CqCheckUrlSafetyActionParamsModel))] -[JsonSerializable(typeof(CqCreateGroupFolderActionParamsModel))] -[JsonSerializable(typeof(CqDeleteEssenceMessageActionParamsModel))] -[JsonSerializable(typeof(CqDeleteFriendActionParamsModel))] -[JsonSerializable(typeof(CqDeleteGroupFileActionParamsModel))] -[JsonSerializable(typeof(CqDeleteGroupFolderActionParamsModel))] -[JsonSerializable(typeof(CqDeleteUnidirectionalFriendActionParamsModel))] -[JsonSerializable(typeof(CqDownloadFileActionParamsModel))] -[JsonSerializable(typeof(CqGetCookiesActionParamsModel))] -[JsonSerializable(typeof(CqGetCsrfTokenActionParamsModel))] -[JsonSerializable(typeof(CqGetEssenceMessageListActionParamsModel))] -[JsonSerializable(typeof(CqGetForwardMessageActionParamsModel))] -[JsonSerializable(typeof(CqGetFriendListActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupFilesByFolderActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupFileSystemInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupFileUrlActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupListActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupMemberInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupMemberListActionParamsModel))] -[JsonSerializable(typeof(CqGetGroupRootFilesActionParamsModel))] -[JsonSerializable(typeof(CqGetImageActionParamsModel))] -[JsonSerializable(typeof(CqGetLoginInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetMessageActionParamsModel))] -[JsonSerializable(typeof(CqGetModelShowActionParamsModel))] -[JsonSerializable(typeof(CqGetOnlineClientsActionParamsModel))] -[JsonSerializable(typeof(CqGetStrangerInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetUnidirectionalFriendListActionParamsModel))] -[JsonSerializable(typeof(CqGetVersionInformationActionParamsModel))] -[JsonSerializable(typeof(CqGetWordSlicesActionParamsModel))] -[JsonSerializable(typeof(CqGroupSignInActionParamsModel))] -[JsonSerializable(typeof(CqHandleFriendRequestActionParamsModel))] -[JsonSerializable(typeof(CqHandleGroupRequestActionParamsModel))] -[JsonSerializable(typeof(CqKickGroupMemberActionParamsModel))] -[JsonSerializable(typeof(CqLeaveGroupActionParamsModel))] -[JsonSerializable(typeof(CqMarkMessageAsReadActionParamsModel))] -[JsonSerializable(typeof(CqOcrImageActionParamsModel))] -[JsonSerializable(typeof(CqRecallMessageActionParamsModel))] -[JsonSerializable(typeof(CqReloadEventFilterActionParamsModel))] -[JsonSerializable(typeof(CqSendGroupForwardMessageActionParamsModel))] -[JsonSerializable(typeof(CqSendGroupMessageActionParamsModel))] -[JsonSerializable(typeof(CqSendMessageActionParamsModel))] -[JsonSerializable(typeof(CqSendPrivateForwardMsgActionParamsModel))] -[JsonSerializable(typeof(CqSendPrivateMessageActionParamsModel))] -[JsonSerializable(typeof(CqSetAccountProfileActionParamsModel))] -[JsonSerializable(typeof(CqSetEssenceMessageActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupAdministratorActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupAnonymousActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupAvatarActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupNameActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupNicknameActionParamsModel))] -[JsonSerializable(typeof(CqSetGroupSpecialTitleActionParamsModel))] -[JsonSerializable(typeof(CqSetModelShowActionParamsModel))] -[JsonSerializable(typeof(CqUploadGroupFileActionParamsModel))] -[JsonSerializable(typeof(CqUploadPrivateFileActionParamsModel))] - -[JsonSerializable(typeof(CqActionResultDataModel))] -[JsonSerializable(typeof(CqBanGroupAllMembersActionResultDataModel))] -[JsonSerializable(typeof(CqBanGroupAnonymousMemberActionResultDataModel))] -[JsonSerializable(typeof(CqBanGroupMemberActionResultDataModel))] -[JsonSerializable(typeof(CqCanSendImageActionResultDataModel))] -[JsonSerializable(typeof(CqCanSendRecordActionResultDataModel))] -[JsonSerializable(typeof(CqCheckUrlSafetyActionResultDataModel))] -[JsonSerializable(typeof(CqCreateGroupFolderActionResultDataModel))] -[JsonSerializable(typeof(CqDeleteEssenceMessageActionResultDataModel))] -[JsonSerializable(typeof(CqDeleteFriendActionResultDataModel))] -[JsonSerializable(typeof(CqDeleteGroupFileActionResultDataModel))] -[JsonSerializable(typeof(CqDeleteGroupFolderActionResultDataModel))] -[JsonSerializable(typeof(CqDeleteUnidirectionalFriendActionResultDataModel))] -[JsonSerializable(typeof(CqDownloadFileActionResultDataModel))] -[JsonSerializable(typeof(CqGetCookiesActionResultDataModel))] -[JsonSerializable(typeof(CqGetCsrfTokenActionResultDataModel))] -[JsonSerializable(typeof(CqGetEssenceMessageListActionResultDataModel))] -[JsonSerializable(typeof(CqGetForwardMessageActionResultDataModel))] -[JsonSerializable(typeof(CqGetFriendListActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupFilesByFolderActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupFileSystemInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupFileUrlActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupListActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupMemberInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupMemberListActionResultDataModel))] -[JsonSerializable(typeof(CqGetGroupRootFilesActionResultDataModel))] -[JsonSerializable(typeof(CqGetImageActionResultDataModel))] -[JsonSerializable(typeof(CqGetLoginInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetMessageActionResultDataModel))] -[JsonSerializable(typeof(CqGetModelShowActionResultDataModel))] -[JsonSerializable(typeof(CqGetOnlineClientsActionResultDataModel))] -[JsonSerializable(typeof(CqGetStrangerInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetUnidirectionalFriendListActionResultDataModel))] -[JsonSerializable(typeof(CqGetVersionInformationActionResultDataModel))] -[JsonSerializable(typeof(CqGetWordSlicesActionResultDataModel))] -[JsonSerializable(typeof(CqGroupSignInActionResultDataModel))] -[JsonSerializable(typeof(CqHandleFriendRequestActionResultDataModel))] -[JsonSerializable(typeof(CqHandleGroupRequestActionResultDataModel))] -[JsonSerializable(typeof(CqKickGroupMemberActionResultDataModel))] -[JsonSerializable(typeof(CqLeaveGroupActionResultDataModel))] -[JsonSerializable(typeof(CqMarkMessageAsReadActionResultDataModel))] -[JsonSerializable(typeof(CqOcrImageActionResultDataModel))] -[JsonSerializable(typeof(CqRecallMessageActionResultDataModel))] -[JsonSerializable(typeof(CqReloadEventFilterActionResultDataModel))] -[JsonSerializable(typeof(CqSendGroupForwardMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSendGroupMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSendMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSendPrivateForwardMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSendPrivateMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSetAccountProfileActionResultDataModel))] -[JsonSerializable(typeof(CqSetEssenceMessageActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupAdministratorActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupAnonymousActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupAvatarActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupNameActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupNicknameActionResultDataModel))] -[JsonSerializable(typeof(CqSetGroupSpecialTitleActionResultDataModel))] -[JsonSerializable(typeof(CqSetModelShowActionResultDataModel))] -[JsonSerializable(typeof(CqUploadGroupFileActionResultDataModel))] -[JsonSerializable(typeof(CqUploadPrivateFileActionResultDataModel))] -internal partial class JsonGeneratorSourceContext : JsonSerializerContext; -#endif + } +} \ No newline at end of file