feat(checker): checker

This commit is contained in:
mei
2026-04-06 10:10:31 +08:00
parent 80e427d7c3
commit 189eab8a0a
13 changed files with 181 additions and 12 deletions
+48
View File
@@ -0,0 +1,48 @@
package runner
import (
"log"
"github.com/ssdomei232/goodBaby/drivers/bilibili"
"github.com/ssdomei232/goodBaby/drivers/email"
"github.com/ssdomei232/goodBaby/drivers/github"
"github.com/ssdomei232/goodBaby/drivers/onebot"
"github.com/ssdomei232/goodBaby/handler/db"
"github.com/ssdomei232/goodBaby/model"
)
// runner 执行需要被执行的 Rule
func Runner(timer *model.Timer) {
gormDB, err := db.GetGormDB()
if err != nil {
log.Printf("failed to get gorm db: %v", err)
return
}
// 1. 获取所有需要执行的 Rule
var rules []model.Rule
if err := gormDB.Where("timer_id = ?", timer.ID).Find(&rules).Error; err != nil {
log.Printf("failed to get rules: %v", err)
return
}
// 2. 执行每个 Rule
for _, rule := range rules {
// 执行 rule
go executeRule(&rule)
}
}
// super switch
func executeRule(rule *model.Rule) {
switch rule.Type {
case "bilibili-dynamic":
bilibili.SendBiliDynamicMsg(rule)
case "email":
email.SendMail(rule)
case "github-make-repo-public":
github.MakeRepositoryPublic(rule)
case "onebot":
onebot.SendOneBotMsg(rule)
}
}