From b4d92fcae3a21feb55be7cad71e436da2dcf4f3d Mon Sep 17 00:00:00 2001 From: Mrs4s Date: Tue, 23 Nov 2021 23:36:32 +0800 Subject: [PATCH] fix: guild event use string-id type --- coolq/converter.go | 17 +++++++++++++---- coolq/cqcode.go | 4 ++-- coolq/event.go | 42 +++++++++++++++++++++--------------------- 3 files changed, 36 insertions(+), 27 deletions(-) diff --git a/coolq/converter.go b/coolq/converter.go index 634f8b6..03cb8a7 100644 --- a/coolq/converter.go +++ b/coolq/converter.go @@ -52,7 +52,7 @@ func convertGroupMemberInfo(groupID int64, m *client.GroupMemberInfo) global.MSG func convertGuildMemberInfo(m *client.GuildMemberInfo) global.MSG { return global.MSG{ - "tiny_id": m.TinyId, + "tiny_id": fU64(m.TinyId), "title": m.Title, "nickname": m.Nickname, "role": m.Role, @@ -144,12 +144,12 @@ func convertChannelInfo(c *client.ChannelInfo) global.MSG { }) } return global.MSG{ - "channel_id": c.ChannelId, + "channel_id": fU64(c.ChannelId), "channel_type": c.ChannelType, "channel_name": c.ChannelName, - "owner_guild_id": c.Meta.GuildId, + "owner_guild_id": fU64(c.Meta.GuildId), "creator_id": c.Meta.CreatorUin, - "creator_tiny_id": c.Meta.CreatorTinyId, + "creator_tiny_id": fU64(c.Meta.CreatorTinyId), "create_time": c.Meta.CreateTime, "current_slow_mode": c.Meta.CurrentSlowMode, "talk_permission": c.Meta.TalkPermission, @@ -157,3 +157,12 @@ func convertChannelInfo(c *client.ChannelInfo) global.MSG { "slow_modes": slowModes, } } + +func fU64(v uint64) string { + return strconv.FormatUint(v, 10) +} + +func sU64(v string) uint64 { + r, _ := strconv.ParseUint(v, 10, 64) + return r +} diff --git a/coolq/cqcode.go b/coolq/cqcode.go index f9db432..7315cde 100644 --- a/coolq/cqcode.go +++ b/coolq/cqcode.go @@ -166,7 +166,7 @@ func ToArrayMessage(e []message.IMessageElement, source MessageSource) (r []glob } else { m = global.MSG{ "type": "at", - "data": map[string]string{"qq": strconv.FormatInt(o.Target, 10)}, + "data": map[string]string{"qq": strconv.FormatUint(uint64(o.Target), 10)}, } } case *message.RedBagElement: @@ -310,7 +310,7 @@ func ToStringMessage(e []message.IMessageElement, source MessageSource, isRaw .. write("[CQ:at,qq=all]") continue } - write("[CQ:at,qq=%d]", o.Target) + write("[CQ:at,qq=%d]", uint64(o.Target)) case *message.RedBagElement: write("[CQ:redbag,title=%s]", o.Title) case *message.ForwardElement: diff --git a/coolq/event.go b/coolq/event.go index 82ca718..1db0b29 100644 --- a/coolq/event.go +++ b/coolq/event.go @@ -165,16 +165,16 @@ func (bot *CQBot) guildChannelMessageEvent(c *client.QQClient, m *message.GuildC "post_type": "message", "message_type": "guild", "sub_type": "channel", - "guild_id": m.GuildId, - "channel_id": m.ChannelId, + "guild_id": fU64(m.GuildId), + "channel_id": fU64(m.ChannelId), "message_id": fmt.Sprintf("%v-%v", m.Id, m.InternalId), - "user_id": m.Sender.TinyId, + "user_id": fU64(m.Sender.TinyId), "message": ToFormattedMessage(m.Elements, source, false), // todo: 增加对频道消息 Reply 的支持 "self_id": bot.Client.Uin, - "self_tiny_id": bot.Client.GuildService.TinyId, + "self_tiny_id": fU64(bot.Client.GuildService.TinyId), "time": m.Time, "sender": global.MSG{ - "user_id": m.Sender.TinyId, + "user_id": fU64(m.Sender.TinyId), "nickname": m.Sender.Nickname, }, }) @@ -206,14 +206,14 @@ func (bot *CQBot) guildMessageReactionsUpdatedEvent(c *client.QQClient, e *clien "post_type": "notice", "notice_type": "message_reactions_updated", "message_sender_uin": e.MessageSenderUin, - "guild_id": e.GuildId, - "channel_id": e.ChannelId, + "guild_id": fU64(e.GuildId), + "channel_id": fU64(e.ChannelId), "message_id": fmt.Sprint(e.MessageId), // todo: 支持数据库后转换为数据库id - "operator_id": e.OperatorId, + "operator_id": fU64(e.OperatorId), "current_reactions": currentReactions, "time": time.Now().Unix(), "self_id": bot.Client.Uin, - "self_tiny_id": bot.Client.GuildService.TinyId, + "self_tiny_id": fU64(bot.Client.GuildService.TinyId), "user_id": e.OperatorId, }) } @@ -227,12 +227,12 @@ func (bot *CQBot) guildChannelUpdatedEvent(c *client.QQClient, e *client.GuildCh bot.dispatchEventMessage(global.MSG{ "post_type": "notice", "notice_type": "channel_updated", - "guild_id": e.GuildId, - "channel_id": e.ChannelId, - "operator_id": e.OperatorId, + "guild_id": fU64(e.GuildId), + "channel_id": fU64(e.ChannelId), + "operator_id": fU64(e.OperatorId), "time": time.Now().Unix(), "self_id": bot.Client.Uin, - "self_tiny_id": bot.Client.GuildService.TinyId, + "self_tiny_id": fU64(bot.Client.GuildService.TinyId), "user_id": e.OperatorId, "old_info": convertChannelInfo(e.OldChannelInfo), "new_info": convertChannelInfo(e.NewChannelInfo), @@ -252,11 +252,11 @@ func (bot *CQBot) guildChannelCreatedEvent(c *client.QQClient, e *client.GuildCh bot.dispatchEventMessage(global.MSG{ "post_type": "notice", "notice_type": "channel_created", - "guild_id": e.GuildId, - "channel_id": e.ChannelInfo.ChannelId, - "operator_id": e.OperatorId, + "guild_id": fU64(e.GuildId), + "channel_id": fU64(e.ChannelInfo.ChannelId), + "operator_id": fU64(e.OperatorId), "self_id": bot.Client.Uin, - "self_tiny_id": bot.Client.GuildService.TinyId, + "self_tiny_id": fU64(bot.Client.GuildService.TinyId), "user_id": e.OperatorId, "time": time.Now().Unix(), "channel_info": convertChannelInfo(e.ChannelInfo), @@ -276,11 +276,11 @@ func (bot *CQBot) guildChannelDestroyedEvent(c *client.QQClient, e *client.Guild bot.dispatchEventMessage(global.MSG{ "post_type": "notice", "notice_type": "channel_destroyed", - "guild_id": e.GuildId, - "channel_id": e.ChannelInfo.ChannelId, - "operator_id": e.OperatorId, + "guild_id": fU64(e.GuildId), + "channel_id": fU64(e.ChannelInfo.ChannelId), + "operator_id": fU64(e.OperatorId), "self_id": bot.Client.Uin, - "self_tiny_id": bot.Client.GuildService.TinyId, + "self_tiny_id": fU64(bot.Client.GuildService.TinyId), "user_id": e.OperatorId, "time": time.Now().Unix(), "channel_info": convertChannelInfo(e.ChannelInfo),