diff --git a/Lagrange.OneBot/Core/Operation/Message/MarkMsgAsReadOperation.cs b/Lagrange.OneBot/Core/Operation/Message/MarkMsgAsReadOperation.cs new file mode 100644 index 000000000..283fa6b33 --- /dev/null +++ b/Lagrange.OneBot/Core/Operation/Message/MarkMsgAsReadOperation.cs @@ -0,0 +1,27 @@ +using System.Text.Json; +using System.Text.Json.Nodes; +using Lagrange.Core; +using Lagrange.Core.Common.Interface.Api; +using Lagrange.Core.Message; +using Lagrange.OneBot.Core.Entity.Action; +using Lagrange.OneBot.Core.Operation.Converters; +using Lagrange.OneBot.Database; +using LiteDB; + +namespace Lagrange.OneBot.Core.Operation.Message; + +[Operation("mark_msg_as_read")] +internal class MarkMsgAsReadOperation(LiteDatabase database) : IOperation +{ + public async Task HandleOperation(BotContext context, JsonNode? payload) + { + if (payload.Deserialize(SerializerOptions.DefaultOptions) is { } getMsg) + { + var record = database.GetCollection().FindOne(x => x.MessageHash == getMsg.MessageId); + var chain = (MessageChain)record; + await context.MarkAsRead(chain); + } + + throw new Exception(); + } +} \ No newline at end of file