wechatbot/handlers/handler.go
2023-04-15 15:09:10 +08:00

53 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package handlers
import (
"log"
"github.com/bujnlc8/wechatbot/config"
"github.com/eatmoreapple/openwechat"
)
// MessageHandlerInterface 消息处理接口
type MessageHandlerInterface interface {
handle(*openwechat.Message) error
ReplyText(*openwechat.Message) error
}
type HandlerType string
const (
GroupHandler = "group"
UserHandler = "user"
)
// handlers 所有消息类型类型的处理器
var handlers map[HandlerType]MessageHandlerInterface
func init() {
handlers = make(map[HandlerType]MessageHandlerInterface)
handlers[GroupHandler] = NewGroupMessageHandler()
handlers[UserHandler] = NewUserMessageHandler()
}
// Handler 全局处理入口
func Handler(msg *openwechat.Message) {
log.Printf("hadler Received msg : %v", msg.Content)
// 处理群消息
if msg.IsSendByGroup() {
handlers[GroupHandler].handle(msg)
return
}
// 好友申请
if msg.IsFriendAdd() {
if config.LoadConfig().AutoPass {
_, err := msg.Agree("你好我是基于chatGPT引擎开发的微信机器人你可以向我提问任何问题。")
if err != nil {
log.Fatalf("add friend agree error : %v", err)
return
}
}
}
// 私聊
handlers[UserHandler].handle(msg)
}