Files
urldb/services/wechat_bot_service.go
2025-10-31 23:32:57 +08:00

58 lines
1.6 KiB
Go

package services
import (
"github.com/ctwj/urldb/db/repo"
"github.com/silenceper/wechat/v2/officialaccount"
"github.com/silenceper/wechat/v2/officialaccount/message"
)
// WechatBotService 微信公众号机器人服务接口
type WechatBotService interface {
Start() error
Stop() error
IsRunning() bool
ReloadConfig() error
HandleMessage(msg *message.MixMessage) (interface{}, error)
SendWelcomeMessage(openID string) error
GetRuntimeStatus() map[string]interface{}
GetConfig() *WechatBotConfig
}
// WechatBotConfig 微信公众号机器人配置
type WechatBotConfig struct {
Enabled bool
AppID string
AppSecret string
Token string
EncodingAesKey string
WelcomeMessage string
AutoReplyEnabled bool
SearchLimit int
}
// WechatBotServiceImpl 微信公众号机器人服务实现
type WechatBotServiceImpl struct {
isRunning bool
systemConfigRepo repo.SystemConfigRepository
resourceRepo repo.ResourceRepository
readyRepo repo.ReadyResourceRepository
config *WechatBotConfig
wechatClient *officialaccount.OfficialAccount
searchSessionManager *SearchSessionManager
}
// NewWechatBotService 创建微信公众号机器人服务
func NewWechatBotService(
systemConfigRepo repo.SystemConfigRepository,
resourceRepo repo.ResourceRepository,
readyResourceRepo repo.ReadyResourceRepository,
) WechatBotService {
return &WechatBotServiceImpl{
isRunning: false,
systemConfigRepo: systemConfigRepo,
resourceRepo: resourceRepo,
readyRepo: readyResourceRepo,
config: &WechatBotConfig{},
searchSessionManager: GlobalSearchSessionManager,
}
}