Skip to content

Commit

Permalink
add appid?
Browse files Browse the repository at this point in the history
  • Loading branch information
sisi0318 committed Oct 2, 2024
1 parent 44de2ad commit 08c074c
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 10 deletions.
3 changes: 3 additions & 0 deletions Lagrange.Core/Common/Interface/Api/GroupExt.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ public static Task<bool> SetGroupBotHD(this BotContext bot, uint targetUin, uint
public static Task<bool> SetGroupBotHD(this BotContext bot, uint targetUin, uint groupUin, string? data_1, string? data_2)
=> bot.ContextCollection.Business.OperationLogic.SetGroupBotHD(targetUin, groupUin, data_1, data_2);

public static Task<bool> ImageExpires(this BotContext bot, string? url)
=> bot.ContextCollection.Business.OperationLogic.ImageExpires(url);

public static Task<bool> RenameGroupMember(this BotContext bot, uint groupUin, uint targetUin, string targetName)
=> bot.ContextCollection.Business.OperationLogic.RenameGroupMember(groupUin, targetUin, targetName);

Expand Down
11 changes: 9 additions & 2 deletions Lagrange.Core/Message/MessageChain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ public sealed class MessageChain : List<IMessageEntity>

public ulong MessageId { get; }

public uint SigMap { get; set; }

public DateTime Time { get; internal set; }

public BotFriend? FriendInfo { get; internal set; }
Expand All @@ -39,7 +41,7 @@ public sealed class MessageChain : List<IMessageEntity>
#endregion

internal MessageChain(uint friendUin, string selfUid, string friendUid, uint targetUin = 0, uint sequence = 0, uint clientSequence = 0, ulong? messageId = null,
MessageType type = MessageType.Friend)
MessageType type = MessageType.Friend, uint sigmap = 0)
{
GroupUin = null;
FriendUin = friendUin;
Expand All @@ -51,6 +53,7 @@ internal MessageChain(uint friendUin, string selfUid, string friendUid, uint tar
MessageId = messageId ?? (0x10000000ul << 32) | (uint)Random.Shared.Next(100000000, int.MaxValue);
Elements = new List<Elem>();
Type = type;
SigMap = sigmap;
}

internal MessageChain(uint groupUin)
Expand All @@ -63,7 +66,7 @@ internal MessageChain(uint groupUin)
Elements = new List<Elem>();
}

internal MessageChain(uint groupUin, uint friendUin, uint sequence, ulong messageId = 0)
internal MessageChain(uint groupUin, uint friendUin, uint sequence, ulong messageId = 0,uint sigmap = 0)
{
GroupUin = groupUin;
FriendUin = friendUin;
Expand All @@ -72,6 +75,7 @@ internal MessageChain(uint groupUin, uint friendUin, uint sequence, ulong messag
Uid = null;
MessageId = messageId;
Elements = new List<Elem>();
SigMap = sigmap;
}

public bool HasTypeOf<T>() where T : IMessageEntity => this.Any(entity => entity is T);
Expand All @@ -86,6 +90,9 @@ public string ToPreviewString()
if (GroupUin != null) chainBuilder.Append($"({GroupUin})");
chainBuilder.Append($"({FriendUin})");
chainBuilder.Append("] ");
chainBuilder.Append("[Appid");
chainBuilder.Append($"({SigMap})");
chainBuilder.Append("] ");
foreach (var entity in this)
{
chainBuilder.Append(entity.ToPreviewString());
Expand Down
10 changes: 7 additions & 3 deletions Lagrange.Core/Message/MessagePacker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ public static MessageChain ParsePrivateFile(PushMsgBody message)
C2C = chain.IsGroup || chain.HasTypeOf<FileEntity>() ? null : new C2C
{
Uid = chain.FriendInfo?.Uid,
Uin = chain.FriendUin
Uin = chain.FriendUin,
},
Grp = !chain.IsGroup ? null : new Grp // for consistency of code so inverted condition
{
Expand Down Expand Up @@ -254,13 +254,17 @@ private static MessageChain ParseChain(PushMsgBody message)
message.ContentHead.FriendSequence ?? 0,
message.ContentHead.Sequence ?? 0,
message.ContentHead.NewId ?? 0,
message.ContentHead.Type == 141 ? MessageChain.MessageType.Temp : MessageChain.MessageType.Friend)
message.ContentHead.Type == 141 ? MessageChain.MessageType.Temp : MessageChain.MessageType.Friend,
message.ResponseHead.SigMap
)

: new MessageChain(
message.ResponseHead.Grp.GroupUin,
message.ResponseHead.FromUin,
message.ContentHead.Sequence ?? 0,
message.ContentHead.NewId ?? 0);
message.ContentHead.NewId ?? 0,
message.ResponseHead.SigMap
);

if (message.Body?.RichText?.Elems is { } elems) chain.Elements.AddRange(elems);

Expand Down
8 changes: 6 additions & 2 deletions Lagrange.OneBot/Core/Entity/Message/OneBotGroupMsg.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@
namespace Lagrange.OneBot.Core.Entity.Message;

[Serializable]
public class OneBotGroupMsg(uint selfId, uint groupUin, List<OneBotSegment> message, string rawMessage, BotGroupMember member, int messageId) : OneBotEntityBase(selfId, "message")
public class OneBotGroupMsg(uint selfId, uint groupUin, List<OneBotSegment> message, string rawMessage, BotGroupMember member, int messageId , uint appid) : OneBotEntityBase(selfId, "message")
{
[JsonPropertyName("message_type")] public string MessageType { get; set; } = "group";

[JsonPropertyName("Appid")] public uint Appid { get; set; } = appid;

[JsonPropertyName("sub_type")] public string SubType { get; set; } = "normal";

[JsonPropertyName("message_id")] public int MessageId { get; set; } = messageId;
Expand All @@ -28,10 +30,12 @@ public class OneBotGroupMsg(uint selfId, uint groupUin, List<OneBotSegment> mess
}

[Serializable]
public class OneBotGroupStringMsg(uint selfId, uint groupUin, string message, BotGroupMember member, int messageId) : OneBotEntityBase(selfId, "message")
public class OneBotGroupStringMsg(uint selfId, uint groupUin, string message, BotGroupMember member, int messageId , uint appid) : OneBotEntityBase(selfId, "message")
{
[JsonPropertyName("message_type")] public string MessageType { get; set; } = "group";

[JsonPropertyName("Appid")] public uint Appid { get; set; } = appid;

[JsonPropertyName("sub_type")] public string SubType { get; set; } = "normal";

[JsonPropertyName("message_id")] public int MessageId { get; set; } = messageId;
Expand Down
5 changes: 4 additions & 1 deletion Lagrange.OneBot/Database/MessageRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ public class MessageRecord

public uint TargetUin { get; set; }

public uint SigMap { get; set; }

static MessageRecord()
{
Vector2Mapper.RegisterType(); // I HATE THIS
Expand Down Expand Up @@ -60,7 +62,8 @@ public static explicit operator MessageChain(MessageRecord record)
GroupMemberInfo = chain.GroupMemberInfo,
Entities = chain,
MessageHash = CalcMessageHash(chain.MessageId, chain.Sequence),
TargetUin = chain.TargetUin
TargetUin = chain.TargetUin,
SigMap = chain.SigMap,
};

public static int CalcMessageHash(ulong msgId, uint seq)
Expand Down
4 changes: 2 additions & 2 deletions Lagrange.OneBot/Message/MessageService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ public object ConvertToGroupMsg(uint uin, MessageChain chain)
var segments = Convert(chain);
int hash = MessageRecord.CalcMessageHash(chain.MessageId, chain.Sequence);
object request = _stringPost
? new OneBotGroupStringMsg(uin, chain.GroupUin ?? 0, ToRawMessage(segments), chain.GroupMemberInfo ?? throw new Exception("Group member not found"), hash)
: new OneBotGroupMsg(uin, chain.GroupUin ?? 0, segments, ToRawMessage(segments), chain.GroupMemberInfo ?? throw new Exception("Group member not found"), hash);
? new OneBotGroupStringMsg(uin, chain.GroupUin ?? 0, ToRawMessage(segments), chain.GroupMemberInfo ?? throw new Exception("Group member not found"), hash, chain.SigMap)
: new OneBotGroupMsg(uin, chain.GroupUin ?? 0, segments, ToRawMessage(segments), chain.GroupMemberInfo ?? throw new Exception("Group member not found"), hash, chain.SigMap);
return request;
}

Expand Down

0 comments on commit 08c074c

Please sign in to comment.