diff --git a/coolq/bot.go b/coolq/bot.go index 92258be..52219c3 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -61,6 +61,7 @@ func NewQQBot(cli *client.QQClient, conf *global.JsonConfig) *CQBot { bot.Client.OnGroupMessageRecalled(bot.groupRecallEvent) bot.Client.OnGroupNotify(bot.groupNotifyEvent) bot.Client.OnFriendMessageRecalled(bot.friendRecallEvent) + bot.Client.OnReceivedOfflineFile(bot.offlineFileEvent) bot.Client.OnJoinGroup(bot.joinGroupEvent) bot.Client.OnLeaveGroup(bot.leaveGroupEvent) bot.Client.OnGroupMemberJoined(bot.memberJoinEvent) diff --git a/coolq/event.go b/coolq/event.go index 3eb65ee..0ba56e6 100644 --- a/coolq/event.go +++ b/coolq/event.go @@ -278,6 +278,26 @@ func (bot *CQBot) friendRecallEvent(c *client.QQClient, e *client.FriendMessageR }) } +func (bot *CQBot) offlineFileEvent(c *client.QQClient, e *client.OfflineFileEvent) { + f := c.FindFriend(e.Sender) + if f == nil { + return + } + log.Infof("好友 %v(%v) 发送了离线文件 %v", f.Nickname, f.Uin, e.FileName) + bot.dispatchEventMessage(MSG{ + "post_type": "notice", + "notice_type": "offline_file", + "user_id": e.Sender, + "file": MSG{ + "name": e.FileName, + "size": e.FileSize, + "url": e.DownloadUrl, + }, + "self_id": c.Uin, + "time": time.Now().Unix(), + }) +} + func (bot *CQBot) joinGroupEvent(c *client.QQClient, group *client.GroupInfo) { log.Infof("Bot进入了群 %v.", formatGroupName(group)) bot.dispatchEventMessage(bot.groupIncrease(group.Code, 0, c.Uin))