Implemented APIs for Lagrange.OneBot
This commit is contained in:
parent
f95318f337
commit
f565c5435d
|
@ -3,13 +3,13 @@ using System.Text.Json.Serialization;
|
|||
namespace Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotResult(object data, int retCode, string status, string echo)
|
||||
public class OneBotResult(object? data, int retCode, string status, string echo)
|
||||
{
|
||||
[JsonPropertyName("status")] public string Status { get; set; } = status;
|
||||
|
||||
[JsonPropertyName("retcode")] public int RetCode { get; set; } = retCode;
|
||||
|
||||
[JsonPropertyName("data")] public object Data { get; set; } = data;
|
||||
[JsonPropertyName("data")] public object? Data { get; set; } = data;
|
||||
|
||||
[JsonPropertyName("echo")] public string Echo { get; set; } = echo;
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotSetGroupAdmin
|
||||
{
|
||||
[JsonPropertyName("group_id")] public uint GroupId { get; set; }
|
||||
|
||||
[JsonPropertyName("user_id")] public uint UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("enable")] public bool Enable { get; set; }
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotSetGroupBan
|
||||
{
|
||||
[JsonPropertyName("user_id")] public uint UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("group_id")] public uint GroupId { get; set; }
|
||||
|
||||
[JsonPropertyName("duration")] public uint Duration { get; set; }
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotSetGroupKick
|
||||
{
|
||||
[JsonPropertyName("user_id")] public uint UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("group_id")] public uint GroupId { get; set; }
|
||||
|
||||
[JsonPropertyName("reject_add_request")] public bool RejectAddRequest { get; set; }
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotSetGroupWholeBan
|
||||
{
|
||||
[JsonPropertyName("group_id")] public uint GroupId { get; set; }
|
||||
|
||||
[JsonPropertyName("enable")] public bool Enable { get; set; }
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action.Response;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotLoginInfoResponse(uint userId, string nickName)
|
||||
{
|
||||
[JsonPropertyName("user_id")] public uint UserId { get; set; } = userId;
|
||||
|
||||
[JsonPropertyName("nickname")] public string NickName { get; set; } = nickName;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Entity.Action.Response;
|
||||
|
||||
[Serializable]
|
||||
public class OneBotVersionInfoResponse(string ntProtocol)
|
||||
{
|
||||
[JsonPropertyName("app_name")] public string AppName => Constant.OneBotImpl;
|
||||
|
||||
[JsonPropertyName("app_version")] public string AppVersion => Constant.OneBotImplVersion;
|
||||
|
||||
[JsonPropertyName("protocol_version")] public string ProtocolVersion => $"v{Constant.OneBotProtocolVersion}";
|
||||
|
||||
[JsonPropertyName("nt_protocol")] public string NTProtocol { get; } = ntProtocol;
|
||||
}
|
|
@ -6,5 +6,5 @@ namespace Lagrange.OneBot.Core.Operation;
|
|||
|
||||
public interface IOperation
|
||||
{
|
||||
public OneBotResult HandleOperation(string echo, BotContext context, JsonObject? payload);
|
||||
public Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload);
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
using Lagrange.OneBot.Core.Entity.Action.Response;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("get_login_info")]
|
||||
public class GetLoginInfoOperation : IOperation
|
||||
{
|
||||
public Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var keystore = context.ContextCollection.Keystore;
|
||||
var result = new OneBotLoginInfoResponse(keystore.Uin, keystore.Info?.Name ?? "");
|
||||
return Task.FromResult(new OneBotResult(result, 0, "ok", echo));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
using Lagrange.OneBot.Core.Entity.Action.Response;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("get_version_info")]
|
||||
public class GetVersionInfoOperation : IOperation
|
||||
{
|
||||
public Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var appInfo = context.ContextCollection.AppInfo;
|
||||
string version = $"{appInfo.Os} | {appInfo.CurrentVersion}";
|
||||
|
||||
return Task.FromResult(new OneBotResult(new OneBotVersionInfoResponse(version), 0, "ok", echo));
|
||||
}
|
||||
}
|
|
@ -27,12 +27,12 @@ public sealed class SendMessageOperation : IOperation
|
|||
}
|
||||
}
|
||||
|
||||
public OneBotResult HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
public async Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var message = payload.Deserialize<OneBotMessage>();
|
||||
if (message != null)
|
||||
{
|
||||
context.SendMessage(ParseChain(message).Build());
|
||||
await context.SendMessage(ParseChain(message).Build());
|
||||
return new OneBotResult(new OneBotMessageResponse(0), 0, "ok", echo);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.Core.Common.Interface.Api;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("set_group_admin")]
|
||||
public class SetGroupAdminOperation : IOperation
|
||||
{
|
||||
public async Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var message = payload.Deserialize<OneBotSetGroupAdmin>();
|
||||
|
||||
if (message != null)
|
||||
{
|
||||
bool _ = await context.SetGroupAdmin(message.GroupId, message.UserId, message.Enable);
|
||||
return new OneBotResult(null, 0, "ok", echo);
|
||||
}
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.Core.Common.Interface.Api;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("set_group_ban")]
|
||||
public class SetGroupBanOperation : IOperation
|
||||
{
|
||||
public async Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var message = payload.Deserialize<OneBotSetGroupBan>();
|
||||
|
||||
if (message != null)
|
||||
{
|
||||
bool _ = await context.MuteGroupMember(message.GroupId, message.UserId, message.Duration);
|
||||
return new OneBotResult(null, 0, "ok", echo);
|
||||
}
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.Core.Common.Interface.Api;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("set_group_kick")]
|
||||
public class SetGroupKickOperation : IOperation
|
||||
{
|
||||
public async Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var message = payload.Deserialize<OneBotSetGroupKick>();
|
||||
|
||||
if (message != null)
|
||||
{
|
||||
bool _ = await context.KickGroupMember(message.GroupId, message.UserId, message.RejectAddRequest);
|
||||
return new OneBotResult(null, 0, "ok", echo);
|
||||
}
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
using System.Text.Json;
|
||||
using System.Text.Json.Nodes;
|
||||
using Lagrange.Core;
|
||||
using Lagrange.Core.Common.Interface.Api;
|
||||
using Lagrange.OneBot.Core.Entity.Action;
|
||||
|
||||
namespace Lagrange.OneBot.Core.Operation.Message;
|
||||
|
||||
[Operation("set_group_whole_ban")]
|
||||
public class SetGroupWholeBanOperation : IOperation
|
||||
{
|
||||
public async Task<OneBotResult> HandleOperation(string echo, BotContext context, JsonObject? payload)
|
||||
{
|
||||
var message = payload.Deserialize<OneBotSetGroupWholeBan>();
|
||||
|
||||
if (message != null)
|
||||
{
|
||||
bool _ = await context.MuteGroupGlobal(message.GroupId, message.Enable);
|
||||
return new OneBotResult(null, 0, "ok", echo);
|
||||
}
|
||||
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
|
@ -9,7 +9,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MessagePack" Version="2.5.108" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
|
||||
<PackageReference Include="Websocket.Client" Version="5.0.0" />
|
||||
<PackageReference Include="ZXing.Net" Version="0.16.9" />
|
||||
|
|
20
README.md
20
README.md
|
@ -103,16 +103,16 @@ Please use Lagrange.Core responsibly and in accordance with the law.
|
|||
| ------------------------ | -------- |
|
||||
| [/send_private_msg] | 🔴 |
|
||||
| [/send_group_msg] | 🔴 |
|
||||
| [/send_msg] | 🔴 |
|
||||
| [/send_msg] | 🟢 |
|
||||
| [/delete_msg] | 🔴 |
|
||||
| [/get_msg] | 🔴 |
|
||||
| [/get_forward_msg] | 🔴 |
|
||||
| [/send_like] | 🔴 |
|
||||
| [/set_group_kick] | 🔴 |
|
||||
| [/set_group_ban] | 🔴 |
|
||||
| ~~[/send_like]~~ | 🔴 |
|
||||
| [/set_group_kick] | 🟢 |
|
||||
| [/set_group_ban] | 🟢 |
|
||||
| [/set_group_anonymous_ban] | 🔴 |
|
||||
| [/set_group_whole_ban] | 🔴 |
|
||||
| [/set_group_admin] | 🔴 |
|
||||
| [/set_group_whole_ban] | 🟢 |
|
||||
| [/set_group_admin] | 🟢 |
|
||||
| [/set_group_anonymous] | 🔴 |
|
||||
| [/set_group_card] | 🔴 |
|
||||
| [/set_group_name] | 🔴 |
|
||||
|
@ -120,7 +120,7 @@ Please use Lagrange.Core responsibly and in accordance with the law.
|
|||
| [/set_group_special_title] | 🔴 |
|
||||
| [/set_friend_add_request] | 🔴 |
|
||||
| [/set_group_add_request] | 🔴 |
|
||||
| [/get_login_info] | 🔴 |
|
||||
| [/get_login_info] | 🟢 |
|
||||
| [/get_stranger_info] | 🔴 |
|
||||
| [/get_friend_list] | 🔴 |
|
||||
| [/get_group_info] | 🔴 |
|
||||
|
@ -136,9 +136,9 @@ Please use Lagrange.Core responsibly and in accordance with the law.
|
|||
| [/can_send_image] | 🔴 |
|
||||
| [/can_send_record] | 🔴 |
|
||||
| [/get_status] | 🔴 |
|
||||
| [/get_version_info] | 🔴 |
|
||||
| [/get_version_info] | 🟢 |
|
||||
| [/set_restart] | 🔴 |
|
||||
| [/clean_cache] | 🔴 |
|
||||
| [/clean_cache] | 🔴 |
|
||||
|
||||
[/send_private_msg]: https://github.com/botuniverse/onebot-11/blob/master/api/public.md#send_private_msg-%E5%8F%91%E9%80%81%E7%A7%81%E8%81%8A%E6%B6%88%E6%81%AF
|
||||
[/send_group_msg]: https://github.com/botuniverse/onebot-11/blob/master/api/public.md#send_group_msg-%E5%8F%91%E9%80%81%E7%BE%A4%E6%B6%88%E6%81%AF
|
||||
|
@ -187,7 +187,7 @@ Please use Lagrange.Core responsibly and in accordance with the law.
|
|||
| PostType| EventName | Support |
|
||||
| --------| -----------------------------|----------|
|
||||
| Message | [Private Message] | 🔴 |
|
||||
| Message | [Group Message] | 🔴 |
|
||||
| Message | [Group Message] | 🟢 |
|
||||
| Notice | [Group File Upload] | 🔴 |
|
||||
| Notice | [Group Admin Change] | 🔴 |
|
||||
| Notice | [Group Member Decrease] | 🔴 |
|
||||
|
|
Loading…
Reference in New Issue