Skip to content

Commit

Permalink
[All] add chat type
Browse files Browse the repository at this point in the history
  • Loading branch information
DarkRRb committed Nov 3, 2024
1 parent cdf493e commit a669707
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 23 deletions.
8 changes: 4 additions & 4 deletions Lagrange.Core/Common/Interface/Api/OperationExt.cs
Original file line number Diff line number Diff line change
Expand Up @@ -273,11 +273,11 @@ public static Task<string> UploadImage(this BotContext bot, ImageEntity entity)
public static Task<ImageOcrResult?> OcrImage(this BotContext bot, ImageEntity entity)
=> bot.ContextCollection.Business.OperationLogic.ImageOcr(entity);

public static Task<(int Code, string ErrMsg, string? Url)> GetGroupGenerateAiRecordUrl(this BotContext bot, uint groupUin, string character, string text)
=> bot.ContextCollection.Business.OperationLogic.GetGroupGenerateAiRecordUrl(groupUin, character, text);
public static Task<(int Code, string ErrMsg, string? Url)> GetGroupGenerateAiRecordUrl(this BotContext bot, uint groupUin, string character, string text, uint chatType)
=> bot.ContextCollection.Business.OperationLogic.GetGroupGenerateAiRecordUrl(groupUin, character, text, chatType);

public static Task<(int Code, string ErrMsg, RecordEntity? RecordEntity)> GetGroupGenerateAiRecord(this BotContext bot, uint groupUin, string character, string text)
=> bot.ContextCollection.Business.OperationLogic.GetGroupGenerateAiRecord(groupUin, character, text);
public static Task<(int Code, string ErrMsg, RecordEntity? RecordEntity)> GetGroupGenerateAiRecord(this BotContext bot, uint groupUin, string character, string text, uint chatType)
=> bot.ContextCollection.Business.OperationLogic.GetGroupGenerateAiRecord(groupUin, character, text, chatType);

public static Task<(int Code, string ErrMsg, List<AiCharacterList>? Result)> GetAiCharacters(this BotContext bot, uint chatType, uint groupUin = 42)
=> bot.ContextCollection.Business.OperationLogic.GetAiCharacters(chatType, groupUin);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -723,9 +723,9 @@ public async Task<bool> FriendJoinEmojiChain(uint friendUin, uint emojiId, uint
return results.Count != 0 && results[0].ResultCode == 0;
}

public async Task<(int Code, string ErrMsg, string? Url)> GetGroupGenerateAiRecordUrl(uint groupUin, string character, string text)
public async Task<(int Code, string ErrMsg, string? Url)> GetGroupGenerateAiRecordUrl(uint groupUin, string character, string text, uint chatType)
{
var (code, errMsg, record) = await GetGroupGenerateAiRecord(groupUin, character, text);
var (code, errMsg, record) = await GetGroupGenerateAiRecord(groupUin, character, text, chatType);
if (code != 0)
return (code, errMsg, null);

Expand All @@ -739,9 +739,9 @@ public async Task<bool> FriendJoinEmojiChain(uint friendUin, uint emojiId, uint
: (finalResult.ResultCode, "Failed to get group ai record", null);
}

public async Task<(int Code, string ErrMsg, RecordEntity? Record)> GetGroupGenerateAiRecord(uint groupUin, string character, string text)
public async Task<(int Code, string ErrMsg, RecordEntity? Record)> GetGroupGenerateAiRecord(uint groupUin, string character, string text, uint chatType)
{
var groupAiRecordEvent = GroupAiRecordEvent.Create(groupUin, character, text);
var groupAiRecordEvent = GroupAiRecordEvent.Create(groupUin, character, text, chatType);
while (true)
{
var results = await Collection.Business.SendEvent(groupAiRecordEvent);
Expand Down
15 changes: 8 additions & 7 deletions Lagrange.Core/Internal/Event/Action/GroupAiRecordEvent.cs
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
using Lagrange.Core.Internal.Packets.Service.Oidb.Common;
using Lagrange.Core.Message.Entity;

namespace Lagrange.Core.Internal.Event.Action;

internal class GroupAiRecordEvent : ProtocolEvent
{
public uint GroupUin { get; set; }
public string Character { get; set; }= string.Empty;
public string Text { get; set; }= string.Empty;
public string Character { get; set; } = string.Empty;
public string Text { get; set; } = string.Empty;
public uint ChatType { get; set; }

public MsgInfo? RecordInfo { get; set; }
public string ErrorMessage { get; set; }= string.Empty;
public string ErrorMessage { get; set; } = string.Empty;

private GroupAiRecordEvent(uint groupUin, string character, string text) : base(0)
private GroupAiRecordEvent(uint groupUin, string character, string text, uint chatType) : base(0)
{
GroupUin = groupUin;
Character = character;
Text = text;
ChatType = chatType;
}

private GroupAiRecordEvent(int resultCode, MsgInfo? msgInfo) : base(resultCode)
Expand All @@ -29,8 +30,8 @@ private GroupAiRecordEvent(int resultCode, string errMsg) : base(resultCode)
ErrorMessage = errMsg;
}

public static GroupAiRecordEvent Create(uint groupUin, string character, string text) =>
new(groupUin, character, text);
public static GroupAiRecordEvent Create(uint groupUin, string character, string text, uint chatType) =>
new(groupUin, character, text, chatType);

public static GroupAiRecordEvent Result(int resultCode, MsgInfo? msgInfo) => new(resultCode, msgInfo);

Expand Down
10 changes: 7 additions & 3 deletions Lagrange.Core/Internal/Service/Action/GroupAiRecordService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
using Lagrange.Core.Internal.Event;
using Lagrange.Core.Internal.Event.Action;
using Lagrange.Core.Internal.Packets.Service.Oidb;
using Lagrange.Core.Internal.Packets.Service.Oidb.Common;
using Lagrange.Core.Internal.Packets.Service.Oidb.Request;
using Lagrange.Core.Internal.Packets.Service.Oidb.Response;
using Lagrange.Core.Message.Entity;
using Lagrange.Core.Utility.Extension;
using ProtoBuf;

Expand All @@ -20,7 +18,13 @@ protected override bool Build(GroupAiRecordEvent input, BotKeystore keystore, Bo
out List<Memory<byte>>? extraPackets)
{
var packet = new OidbSvcTrpcTcpBase<OidbSvcTrpcTcp0x929B_0>(
new OidbSvcTrpcTcp0x929B_0 { GroupCode = input.GroupUin, VoiceId = input.Character, Text = input.Text }
new OidbSvcTrpcTcp0x929B_0
{
GroupCode = input.GroupUin,
VoiceId = input.Character,
Text = input.Text,
ChatType = input.ChatType
}
);
output = packet.Serialize();
extraPackets = null;
Expand Down
8 changes: 5 additions & 3 deletions Lagrange.OneBot/Core/Entity/Action/OneBotGetAiRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ namespace Lagrange.OneBot.Core.Entity.Action;
[Serializable]
public class OneBotGetAiRecord
{
[JsonPropertyName("character")] public string Character { get; set; } = string.Empty;
[JsonPropertyName("character")] public required string Character { get; set; }

[JsonPropertyName("group_id")] public uint GroupId { get; set; }
[JsonPropertyName("group_id")] public required uint GroupId { get; set; }

[JsonPropertyName("text")] public string Text { get; set; } = string.Empty;
[JsonPropertyName("text")] public required string Text { get; set; }

[JsonPropertyName("chat_type")] public uint ChatType { get; set; } = 1;
}
7 changes: 6 additions & 1 deletion Lagrange.OneBot/Core/Operation/Group/GetAiRecordOperation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ public async Task<OneBotResult> HandleOperation(BotContext context, JsonNode? pa
var message = payload.Deserialize<OneBotGetAiRecord>(SerializerOptions.DefaultOptions);
if (message != null)
{
var (code, errMsg, url) = await context.GetGroupGenerateAiRecordUrl(message.GroupId, message.Character, message.Text);
var (code, errMsg, url) = await context.GetGroupGenerateAiRecordUrl(
message.GroupId,
message.Character,
message.Text,
message.ChatType
);
return code != 0 ? new OneBotResult(errMsg, code, "failed") : new OneBotResult(url, 0, "ok");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ public async Task<OneBotResult> HandleOperation(BotContext context, JsonNode? pa
var message = payload.Deserialize<OneBotGetAiRecord>(SerializerOptions.DefaultOptions);
if (message != null)
{
(int code, string errMsg, var recordEntity) = await context.GetGroupGenerateAiRecord(message.GroupId, message.Character, message.Text);
(int code, string _, var recordEntity) = await context.GetGroupGenerateAiRecord(
message.GroupId,
message.Character,
message.Text,
message.ChatType
);
if (code != 0 || recordEntity == null) return new OneBotResult(null, code, "failed");


Expand Down

0 comments on commit a669707

Please sign in to comment.