Files
go-bot-dongl/main.go

127 lines
2.7 KiB
Go

package main
import (
"fmt"
"go-bot/bot/config"
"go-bot/bot/controller"
"go-bot/bot/database"
"go-bot/bot/global"
"os"
"strings"
"github.com/eatmoreapple/openwechat"
"gopkg.in/yaml.v3"
)
func main() {
// 初始化配置文件
dataBytes, err := os.ReadFile("config.yaml")
if err != nil {
fmt.Printf("读取配置文件信息出错: %s\n", err)
return
}
global.Config = config.Config{}
err = yaml.Unmarshal(dataBytes, &global.Config)
if err != nil {
fmt.Printf("解析配置文件信息出错: %s\n", err)
return
}
// 创建bot 对象
global.Bot = openwechat.DefaultBot(openwechat.Desktop)
// 创建热存储容器对象
reloadStorage := openwechat.NewFileHotReloadStorage("storage.json")
defer reloadStorage.Close()
// 执行热登录
err = global.Bot.HotLogin(reloadStorage, openwechat.NewRetryLoginOption())
if err != nil {
fmt.Printf("热登录失败: %s\n", err)
return
}
// 注册登陆二维码回调
global.Bot.UUIDCallback = openwechat.PrintlnQrcodeUrl
// 获取登陆的用户
self, err := global.Bot.GetCurrentUser()
if err != nil {
fmt.Println(self, err)
return
}
// 获取所有的好友
//friends, err := self.Friends()
//fmt.Println(friends, err)
// 获取所有的群组
// groups, err := self.Groups()
// fmt.Println(groups, err)
//链接数据库
database.Database()
// 注册消息处理函数
global.Bot.MessageHandler = func(msg *openwechat.Message) {
if msg.IsText() {
split := strings.Split(msg.Content, " ")
fmt.Printf("command: %s \n", split)
if split[0] == "英语" {
go controller.SingleChoice(msg)
}
if split[0] == "打卡开启" {
go controller.SignInBegin(msg, self)
}
if split[0] == "打卡关闭" {
go controller.SignInEnd(msg, self, "叫啥好呢")
}
if split[0] == "今日打卡" {
go controller.SignIn(msg, self)
}
if split[0] == "天气" {
go controller.GetWeather(msg, self)
}
if split[0] == "语录" || split[0] == "二次元语录" {
go controller.Hitokoto(msg)
}
if split[0] == "roll" {
go controller.Roll(msg, self)
}
if split[0] == "抖音" || split[0] == "dy" {
go controller.DouYinResolution(msg)
}
if split[0] == "易班" || split[0] == "yb" {
go controller.YiBanSign(msg)
}
if split[0] == "school" && split[1] == "start" {
go controller.SchoolSignInBegin(msg, self)
}
if split[0] == "school" && split[1] == "end" {
go controller.SignInEnd(msg, self, "四大天王")
}
if split[0] == "我的信息" {
go controller.GetUsers(msg, self)
}
if split[0] == "all start" {
go controller.SignInBegin(msg, self)
go controller.SchoolSignInBegin(msg, self)
}
}
}
// 阻塞主goroutine, 直到发生异常或者用户主动退出
global.Bot.Block()
}