Skip to content

[Milky] Refactor?#908

Merged
NoirHare merged 11 commits into
masterfrom
noirhare/milky-refactor
Jul 19, 2026
Merged

[Milky] Refactor?#908
NoirHare merged 11 commits into
masterfrom
noirhare/milky-refactor

Conversation

@NoirHare

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings July 19, 2026 20:55
@NoirHare
NoirHare merged commit 1e049d3 into master Jul 19, 2026
5 of 7 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR is a large refactor of the Lagrange.Milky implementation, replacing the previous Entity/* + Utility/* style with a new Models/Converters/Handlers architecture (plus a new source generator) for API and event serialization.

Changes:

  • Replaced legacy Entity/Utility converters and handlers with new Models/*, Converters/*, and Api/Handlers/* structure.
  • Introduced new event conversion pipeline (Events/Converters/*) and API handler abstractions + unified MilkyApiResponse.
  • Updated project wiring (csproj/slnx), dependencies, and added new caching/logging/services utilities.

Reviewed changes

Copilot reviewed 243 out of 244 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
Lagrange.Milky/Utility/ResourceResolver.cs Removed legacy URI→MemoryStream resolver (replaced by ResourceConverter).
Lagrange.Milky/Utility/EntityConvert.Misc.cs Removed legacy entity conversion helpers.
Lagrange.Milky/Utility/EntityConvert.Message.cs Removed legacy message conversion.
Lagrange.Milky/Utility/EntityConvert.GroupNotification.cs Removed legacy group notification conversion.
Lagrange.Milky/Utility/EntityConvert.cs Removed legacy EntityConvert root.
Lagrange.Milky/Utility/CaptchaResolver/OnlineCaptchaResolver.cs Removed old online captcha resolver implementation.
Lagrange.Milky/Utility/CaptchaResolver/ManualCaptchaResolver.cs Removed old manual captcha resolver implementation.
Lagrange.Milky/Utility/CaptchaResolver/ICaptchaResolver.cs Removed old captcha resolver interface.
Lagrange.Milky/Utility/Cache/LruCache.cs Removed custom LRU cache.
Lagrange.Milky/Utility/Cache/ICache.cs Removed custom cache abstraction.
Lagrange.Milky/Utility/Cache/FifoCache.cs Removed custom FIFO cache.
Lagrange.Milky/Utilities/TaskCompletionTracker.cs Added task draining/tracking utility.
Lagrange.Milky/Resources/Dockerfile Removed Milky docker build recipe.
Lagrange.Milky/Resources/appsettings.json Added embedded default configuration file.
Lagrange.Milky/Models/Segments/VideoSegment.cs Added new JSON-model segment types (video).
Lagrange.Milky/Models/Segments/TextSegment.cs Added new JSON-model segment types (text).
Lagrange.Milky/Models/Segments/SegmentBase.cs Added polymorphic base types for segments.
Lagrange.Milky/Models/Segments/ReplySegment.cs Added reply segment model types.
Lagrange.Milky/Models/Segments/RecordSegment.cs Added record segment model types.
Lagrange.Milky/Models/Segments/MentionSegment.cs Added mention segment model types.
Lagrange.Milky/Models/Segments/MentionAllSegment.cs Added mention-all segment model types.
Lagrange.Milky/Models/Segments/LightAppSegment.cs Added light-app segment model types.
Lagrange.Milky/Models/Segments/ImageSegment.cs Added image segment model types.
Lagrange.Milky/Models/Segments/ForwardSegment.cs Added forward segment model types.
Lagrange.Milky/Models/Segments/FileSegment.cs Added file segment model types.
Lagrange.Milky/Models/Messages/TempIncomingMessage.cs Added temp incoming message model.
Lagrange.Milky/Models/Messages/IncomingMessageBase.cs Added polymorphic base for incoming messages.
Lagrange.Milky/Models/Messages/IncomingForwardedMessage.cs Added forwarded message models.
Lagrange.Milky/Models/Messages/GroupIncomingMessage.cs Added group incoming message model.
Lagrange.Milky/Models/Messages/FriendIncomingMessage.cs Added friend incoming message model.
Lagrange.Milky/Models/GroupMember.cs Added GroupMember model.
Lagrange.Milky/Models/GroupFolder.cs Added GroupFolder model.
Lagrange.Milky/Models/GroupFile.cs Added GroupFile model.
Lagrange.Milky/Models/Group.cs Added Group model.
Lagrange.Milky/Models/FriendCategory.cs Added FriendCategory model.
Lagrange.Milky/Models/Friend.cs Added Friend model.
Lagrange.Milky/Logging/LagrangeLoggingService.cs Added hosted service bridging core log events to MS logging.
Lagrange.Milky/Lagrange.Milky.csproj Updated dependencies/resources and generator reference.
Lagrange.Milky/Http/IHttpHandler.cs Added HttpListener handler abstraction.
Lagrange.Milky/Extensions/QrCodeExtension.cs Renamed/moved QR helper into Extensions + extension method form.
Lagrange.Milky/Extensions/HttpListenerContextExtension.cs Added helper for returning status (+ optional CORS header).
Lagrange.Milky/Extensions/DateTimeExtension.cs Updated DateTime→unix conversion helper.
Lagrange.Milky/Extension/ServiceCollectionExtension.cs Removed legacy API handler registration extension (moved to generator/ApiExtension).
Lagrange.Milky/Extension/ReaderWriterLockSlimExtension.cs Removed lock helper types.
Lagrange.Milky/Extension/MessageEntityExtension.cs Removed message debug helpers.
Lagrange.Milky/Extension/MessageChainExtension.cs Removed message chain debug helpers.
Lagrange.Milky/Extension/LoggerFilterOptionsExtension.cs Removed logger filter helpers.
Lagrange.Milky/Events/MilkyEvent.cs Added generic event envelope model.
Lagrange.Milky/Events/IGenericEventHandler.cs Added generic event handler interface.
Lagrange.Milky/Events/Extensions/EventExtension.cs Added event registration/service wiring extension points (partial).
Lagrange.Milky/Events/Converters/MessageReceiveConverter.cs Added message receive event converter.
Lagrange.Milky/Events/Converters/MessageRecallEventConverter.cs Added recall event converters and data model.
Lagrange.Milky/Events/Converters/IEventConverter.cs Added event converter abstraction.
Lagrange.Milky/Events/Converters/GroupNudgeEventConverter.cs Added group nudge event converter.
Lagrange.Milky/Events/Converters/GroupMessageReactionEventConverter.cs Added message reaction event converter.
Lagrange.Milky/Events/Converters/GroupMemberIncreaseEventConverter.cs Added member increase event converter.
Lagrange.Milky/Events/Converters/GroupMemberDecreaseEventConverter.cs Added member decrease event converter.
Lagrange.Milky/Events/Converters/GroupJoinRequestEventConverter.cs Added join request event converter.
Lagrange.Milky/Events/Converters/GroupInvitedJoinRequestEventConverter.cs Added invited join request event converter.
Lagrange.Milky/Events/Converters/GroupInvitationEventConverter.cs Added group invitation event converter.
Lagrange.Milky/Events/Converters/FriendRequestEventConverter.cs Added friend request event converter.
Lagrange.Milky/Events/Converters/BotOfflineEventConverter.cs Added bot offline event converter.
Lagrange.Milky/Events/Attributes/EventConverterAttribute.cs Added attribute for event converter discovery/DI metadata.
Lagrange.Milky/Event/MilkyWebHookEventService.cs Removed legacy webhook event service.
Lagrange.Milky/Entity/Segment/XmlSegment.cs Removed legacy entity segment types (xml).
Lagrange.Milky/Entity/Segment/VideoSegment.cs Removed legacy entity segment types (video).
Lagrange.Milky/Entity/Segment/TextSegment.cs Removed legacy entity segment types (text).
Lagrange.Milky/Entity/Segment/SegmentBase.cs Removed legacy entity segment bases.
Lagrange.Milky/Entity/Segment/ReplySegment.cs Removed legacy entity reply segment.
Lagrange.Milky/Entity/Segment/RecordSegment.cs Removed legacy entity record segment.
Lagrange.Milky/Entity/Segment/MentionSegment.cs Removed legacy entity mention segment.
Lagrange.Milky/Entity/Segment/MentionAllSegment.cs Removed legacy entity mention-all segment.
Lagrange.Milky/Entity/Segment/MarketFaceSegment.cs Removed legacy entity market-face segment.
Lagrange.Milky/Entity/Segment/LightAppSegment.cs Removed legacy entity light-app segment.
Lagrange.Milky/Entity/Segment/ISegment.cs Removed legacy segment interfaces + polymorphic wiring.
Lagrange.Milky/Entity/Segment/ImageSegment.cs Removed legacy entity image segment.
Lagrange.Milky/Entity/Segment/ForwardSegment.cs Removed legacy entity forward segment.
Lagrange.Milky/Entity/Segment/FileSegment.cs Removed legacy entity file segment.
Lagrange.Milky/Entity/Segment/FaceSegment.cs Removed legacy entity face segment.
Lagrange.Milky/Entity/Message/TempMessage.cs Removed legacy entity temp message.
Lagrange.Milky/Entity/Message/MessageBase.cs Removed legacy entity message base.
Lagrange.Milky/Entity/Message/GroupMessage.cs Removed legacy entity group message.
Lagrange.Milky/Entity/Message/FriendMessage.cs Removed legacy entity friend message.
Lagrange.Milky/Entity/GroupNotification/GroupQuitNotification.cs Removed legacy group notification models.
Lagrange.Milky/Entity/GroupNotification/GroupNotificationBase.cs Removed legacy group notification base.
Lagrange.Milky/Entity/GroupNotification/GroupKickNotification.cs Removed legacy group kick notification model.
Lagrange.Milky/Entity/GroupNotification/GroupJoinRequestNotification.cs Removed legacy group join request notification model.
Lagrange.Milky/Entity/GroupNotification/GroupInvitedJoinRequestNotification.cs Removed legacy invited join request notification model.
Lagrange.Milky/Entity/GroupNotification/GroupAdminChangeNotification.cs Removed legacy admin change notification model.
Lagrange.Milky/Entity/GroupMember.cs Removed legacy GroupMember entity.
Lagrange.Milky/Entity/Group.cs Removed legacy Group entity.
Lagrange.Milky/Entity/FriendCategory.cs Removed legacy FriendCategory entity.
Lagrange.Milky/Entity/Friend.cs Removed legacy Friend entity.
Lagrange.Milky/Entity/Event/MessageReceiveEvent.cs Removed legacy typed event entities.
Lagrange.Milky/Entity/Event/GroupRecallEvent.cs Removed legacy recall event entity.
Lagrange.Milky/Entity/Event/GroupNudgeEvent.cs Removed legacy nudge event entity.
Lagrange.Milky/Entity/Event/GroupMemberIncreaseEvent.cs Removed legacy member increase event entity.
Lagrange.Milky/Entity/Event/GroupMemberDecreaseEvent.cs Removed legacy member decrease event entity.
Lagrange.Milky/Entity/Event/GroupInvitationEvent.cs Removed legacy group invitation event entity.
Lagrange.Milky/Entity/Event/FriendRequestEvent.cs Removed legacy friend request event entity.
Lagrange.Milky/Entity/Event/EventBase.cs Removed legacy event base entity.
Lagrange.Milky/Entity/Event/BotOfflineEvent.cs Removed legacy bot offline event entity.
Lagrange.Milky/Core/CoreLoggerService.cs Removed legacy core logger service.
Lagrange.Milky/Converters/ResourceConverter.cs Added new URI→Stream converter.
Lagrange.Milky/Converters/MilkyConverter.Message.cs Added new message→model conversion.
Lagrange.Milky/Converters/MilkyConverter.cs Added converter root (BotContext/cache/resource converter).
Lagrange.Milky/Constants.cs Updated constants/version discovery logic.
Lagrange.Milky/Configurations/MilkyConfiguration.cs Added new configuration object model.
Lagrange.Milky/Configurations/LagrangeConfiguration.cs Added new Lagrange configuration object model.
Lagrange.Milky/Configuration/WebHookConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/SignerConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/ServerConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/MilkyConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/MessageConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/LoginConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/CoreConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Configuration/CacheConfiguration.cs Removed legacy configuration types.
Lagrange.Milky/Captcha/ManualCaptchaResolver.cs Added new manual captcha resolver (logging + cancellable input).
Lagrange.Milky/Captcha/ICaptchaResolver.cs Added new captcha resolver interface.
Lagrange.Milky/Caching/MessageCache.cs Added memory-cache-backed message cache.
Lagrange.Milky/Caching/CacheService.cs Added hosted service that populates cache from message events.
Lagrange.Milky/Api/Result/ApiOkResult.cs Removed old API result wrappers.
Lagrange.Milky/Api/Result/ApiFailedResult.cs Removed old API result wrappers.
Lagrange.Milky/Api/MilkyApiResponse.cs Added unified API response wrapper.
Lagrange.Milky/Api/Handlers/System/SetPeerPinHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/SetAvatarHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetUserProfileHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetLoginInfoHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetImplInfoHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetGroupMemberListHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetGroupMemberInfoHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetGroupListHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetGroupInfoHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetFriendListHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetFriendInfoHandler.cs Added new system API handler.
Lagrange.Milky/Api/Handlers/System/GetCookiesHandler.cs Added new system API handler (currently TODO).
Lagrange.Milky/Api/Handlers/Message/SendPrivateMessageHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/Message/SendGroupMessageHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/Message/RecallPrivateMessageHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/Message/RecallGroupMessageHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/Message/GetResourceTempUrlHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/Message/GetMessageHandler.cs Added new message API handler.
Lagrange.Milky/Api/Handlers/IApiHandler.cs Added new API handler abstractions.
Lagrange.Milky/Api/Handlers/Group/SetGroupWholeMuteHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SetGroupNameHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SetGroupMemberSpecialTitleHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SetGroupMemberCardHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SetGroupEssenceMessageHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SendGroupNudgeHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/SendGroupMessageReactionHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/RejectGroupRequestHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/RejectGroupInvitationHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/QuitGroupHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/KickGroupMemberHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/GetGroupNotificationsHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/AcceptGroupRequestHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Group/AcceptGroupInvitationHandler.cs Added new group API handler.
Lagrange.Milky/Api/Handlers/Friend/SendFriendNudgeHandler.cs Added new friend API handler.
Lagrange.Milky/Api/Handlers/File/UploadPrivateFileHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/UploadGroupFileHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/RenameGroupFolderHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/MoveGroupFileHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/GetGroupFilesHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/GetGroupFileDownloadUrlHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/DeleteGroupFolderHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/DeleteGroupFileHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handlers/File/CreateGroupFolderHandler.cs Added new file API handler.
Lagrange.Milky/Api/Handler/System/GetUserProfileHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetLoginInfoHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetImplInfoHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetGroupMemberListHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetGroupMemberInfoHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetGroupListHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetGroupInfoHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetFriendListHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetFriendInfoHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/System/GetCookiesHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/SendPrivateMessageHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/SendGroupMessageHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/RecallPrivateMessageHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/RecallGroupMessageHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/GetResourceTempUrlHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/GetMessageHandler.cs Removed legacy API handler implementation.
Lagrange.Milky/Api/Handler/Message/GetHistoryMessagesHandler.cs Removed legacy history messages handler.
Lagrange.Milky/Api/Handler/IApiHandler.cs Removed legacy API handler abstraction.
Lagrange.Milky/Api/Handler/Group/SetGroupNameHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/SetGroupMemberSpecialTitleHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/SetGroupMemberCardHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/SendGroupNudgeHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/SendGroupMessageReactionHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/QuitGroupHandler.cs Removed legacy group API handler.
Lagrange.Milky/Api/Handler/Group/GetGroupNotificationsHandler.cs Removed legacy group notifications handler.
Lagrange.Milky/Api/Handler/Friend/SendFriendNudgeHandler.cs Removed legacy friend API handler.
Lagrange.Milky/Api/Handler/File/UploadPrivateFileHandler.cs Removed legacy file API handler.
Lagrange.Milky/Api/Handler/File/UploadGroupFileHandler.cs Removed legacy file API handler.
Lagrange.Milky/Api/Handler/File/GetGroupFileDownloadUrlHandler.cs Removed legacy file API handler.
Lagrange.Milky/Api/Handler/File/DeleteGroupFileHandler.cs Removed legacy file API handler.
Lagrange.Milky/Api/Extensions/ApiExtension.cs Added new partial extension entry point for generator-based registration.
Lagrange.Milky/Api/Exception/ApiException.cs Removed legacy API exception type.
Lagrange.Milky/Api/Attributes/ApiHandlerAttribute.cs Added attribute for API handler discovery/DI metadata.
Lagrange.Milky/Api/ApiAttribute.cs Removed legacy Api attribute.
Lagrange.Milky.Implementation.Api.Generator/Extension/SymbolExtension.cs Removed old generator utilities.
Lagrange.Milky.Implementation.Api.Generator/Extension/AttributeSyntaxExtension.cs Removed old generator utilities.
Lagrange.Milky.Implementation.Api.Generator/DiagnosticDescriptors.cs Removed old generator diagnostics.
Lagrange.Milky.Implementation.Api.Generator/ApiHandlerInfo.cs Removed old generator plumbing.
Lagrange.Milky.Generator/Utilities/StringLongTupleComparer.cs Added generator utility comparer.
Lagrange.Milky.Generator/Lagrange.Milky.Generator.csproj Updated generator lang version and Roslyn dependencies.
Lagrange.Milky.Generator/GlobalSuppressions.cs Added suppressions for analyzer rules.
Lagrange.Milky.Generator/Extensions/SymbolExtension.cs Added generator symbol equality helper.
Lagrange.Milky.Generator/Events/EventDiagnosticDescriptors.cs Added generator diagnostics for events.
Lagrange.Milky.Generator/Api/ApiDiagnosticDescriptors.cs Added generator diagnostics for API handlers.
Lagrange.Core.slnx Switched solution to new generator project reference.
Comments suppressed due to low confidence (1)

Lagrange.Milky/Extensions/DateTimeExtension.cs:8

  • ToUnixTimeSeconds now uses new DateTimeOffset(time), which treats DateTimeKind.Unspecified values as local time. Core message times are constructed via DateTimeOffset.FromUnixTimeSeconds(...).DateTime (Kind=Unspecified), so this change can shift timestamps by the local offset.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +27 to +33
private async ValueTask<Stream> HttpToStreamAsync(string uri, CancellationToken ct)
{
var response = await _http.GetAsync(uri, ct);
response.EnsureSuccessStatusCode();

return await response.Content.ReadAsStreamAsync(ct);
}
Comment on lines +35 to +44
private ValueTask<Stream> Base64ToStreamAsync(string uri)
{
var base64 = uri.AsSpan("base64://".Length);
byte[] bytes = new byte[(int)(4 * Math.Ceiling((decimal)(base64.Length / 3)))];
if (!Convert.TryFromBase64Chars(base64, bytes, out _))
{
throw new FormatException("The 'base64://' URI does not contain valid Base64 data.");
}
return ValueTask.FromResult<Stream>(new MemoryStream(bytes, writable: false));
}
Comment on lines +15 to +20
public async ValueTask<MilkyApiResponse> HandleAsync(Request request, CancellationToken ct)
{
return await _lagrange.KickGroupMember(request.GroupId, request.UserId, request.RejectAddRequest).WaitAsync(ct)
? new MilkyApiResponse(-500, "unknown error")
: new MilkyApiResponse();
}
Comment on lines +20 to +24
int plusIndex = version.LastIndexOf('+');
if (plusIndex < 0) return "unknown";

return version.Substring(plusIndex + 1, length);
}
Comment on lines +9 to +20
"Signer": {
"BaseUrl": "https://sign.lagrangecore.org/api/",
"Token": ""
// "ProxyUrl": null // url, only http
}
},
"Login": {
"Uin": 0 // Must be set
// "Passwrod": null // string
// "AutoReLogin": true
// "UseOnlineCaptchResolver": true
}
Comment on lines +29 to +33
[JsonPropertyName("group_id")] public required long GroupId { get; init; }
[JsonPropertyName("invitation_seq")] public required long InvitationSeq { get; init; }
[JsonPropertyName("initiator_id")] public required long InitiatorId { get; init; }
[JsonPropertyName("source_group_id")] public required long? TargetUserId { get; init; }
}
Comment on lines +11 to +14

private readonly TaskCompletionSource _tcs = new();

private readonly Lock _lock = new();
Comment on lines +34 to +38
return new MilkyApiResponse<Result>(new Result
{
Notifications = [.. notifications.Select(_converter.ToGroupNotification)],
NextNotificationSeq = null,
});
Comment on lines +25 to +28
if (message == null) return new MilkyApiResponse(-404, "message not found");
await _lagrange.SetEssenceMessage(message).WaitAsync(ct);
return new MilkyApiResponse();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants