新增配置文件

This commit is contained in:
李寻欢
2023-10-11 09:21:07 +08:00
parent 011057b85e
commit d0bba911ed
8 changed files with 586 additions and 32 deletions

View File

@@ -2,6 +2,7 @@ package tasks
import (
"github.com/go-co-op/gocron"
"go-wechat/config"
"log"
"time"
)
@@ -9,16 +10,25 @@ import (
// InitTasks
// @description: 初始化定时任务
func InitTasks() {
// 没启用直接返回
if !config.Conf.Task.Enable {
log.Println("未启用定时任务")
return
}
// 定时任务发送消息
s := gocron.NewScheduler(time.Local)
// 每天早上九点半发送前一天的水群排行
_, _ = s.Every(1).Day().At("09:30").Do(yesterday)
//_, _ = s.Every(5).Minute().Do(yesterday)
// 水群排行
if config.Conf.Task.WaterGroup.Enable {
log.Printf("水群排行任务已启用,执行表达式: %s", config.Conf.Task.WaterGroup.Cron)
_, _ = s.Cron(config.Conf.Task.WaterGroup.Cron).Do(yesterday)
}
// 每小时更新一次好友列表
//_, _ = s.Every(5).Minute().Do(syncFriends)
_, _ = s.Every(1).Hour().Do(syncFriends)
// 更新好友列表
if config.Conf.Task.SyncFriends.Enable {
log.Printf("更新好友列表任务已启用,执行表达式: %s", config.Conf.Task.SyncFriends.Cron)
_, _ = s.Cron(config.Conf.Task.SyncFriends.Cron).Do(syncFriends)
}
// 开启定时任务
s.StartAsync()

View File

@@ -3,11 +3,9 @@ package tasks
import (
"fmt"
"go-wechat/client"
"go-wechat/config"
"go-wechat/entity"
"go-wechat/utils"
"io"
"log"
"os"
"strings"
)
@@ -16,9 +14,7 @@ import (
// yesterday
// @description: 昨日排行榜
func yesterday() {
// 从环境变量读取需要处理的群Id
gid := strings.Split(os.Getenv("GROUP_ID"), ",")
for _, id := range gid {
for _, id := range config.Conf.Task.WaterGroup.Groups {
dealYesterday(id)
}
}
@@ -29,24 +25,9 @@ func yesterday() {
func dealYesterday(gid string) {
notifyMsgs := []string{"#昨日水群排行榜"}
// 读取黑名单文件名单内的Id不上榜
var blacklist []string
file, err := os.Open("blacklist.txt")
if err != nil {
log.Printf("读取黑名单失败: %v", err)
} else {
defer file.Close()
var content []byte
if content, err = io.ReadAll(file); err != nil {
log.Printf("读取黑名单失败: %v", err)
} else {
blacklist = strings.Split(string(content), "\n")
}
}
// 获取昨日消息总数
var yesterdayMsgCount int64
err = client.MySQL.Model(&entity.Message{}).
err := client.MySQL.Model(&entity.Message{}).
Where("from_user = ?", gid).
Where("DATEDIFF(create_at,NOW()) = -1").
Count(&yesterdayMsgCount).Error
@@ -79,6 +60,8 @@ func dealYesterday(gid string) {
Group("tm.group_user, tgu.nickname").Order("`count` DESC").
Limit(10)
// 黑名单
blacklist := config.Conf.Task.WaterGroup.Blacklist
// 如果有黑名单,过滤掉
if len(blacklist) > 0 {
tx.Where("tm.group_user NOT IN (?)", blacklist)
@@ -99,5 +82,5 @@ func dealYesterday(gid string) {
notifyMsgs = append(notifyMsgs, " \n请未上榜的群友多多反思。")
log.Printf("排行榜: \n%s", strings.Join(notifyMsgs, "\n"))
go utils.SendMessage(gid, "", strings.Join(notifyMsgs, "\n"), 0)
//go utils.SendMessage(gid, "", strings.Join(notifyMsgs, "\n"), 0)
}