✏️ 持久化 fansdaily

This commit is contained in:
fumiama 2021-11-26 19:45:48 +08:00
parent d1656b25c9
commit 2917ff6701
2 changed files with 108 additions and 68 deletions

View File

@ -5,6 +5,7 @@ import (
"net/http" "net/http"
"time" "time"
"github.com/FloatTech/ZeroBot-Plugin/control"
"github.com/fumiama/cron" "github.com/fumiama/cron"
zero "github.com/wdvxdr1123/ZeroBot" zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message" "github.com/wdvxdr1123/ZeroBot/message"
@ -23,88 +24,128 @@ type follower struct {
// 开启日报推送 // 开启日报推送
func init() { func init() {
engine.OnFullMatch("/开启粉丝日报", zero.AdminPermission).SetBlock(true). fansDaily()
en := control.Register("fansdaily", &control.Options{
DisableOnDefault: true,
Help: "fansdaily\n- /开启粉丝日报\n- /关闭粉丝日报",
})
zero.OnCommand("开启粉丝日报", zero.AdminPermission).SetBlock(true).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
fansDaily(ctx.Event.GroupID) // 群号传进去给下面发信息的函数 m, ok := control.Lookup("fansdaily")
if ok {
if m.IsEnabledIn(ctx.Event.GroupID) {
ctx.Send(message.Text("已启用!"))
} else {
m.Enable(ctx.Event.GroupID)
ctx.Send(message.Text("添加成功!"))
}
} else {
ctx.Send(message.Text("找不到该服务!"))
}
})
en.OnCommand("关闭粉丝日报", zero.AdminPermission).SetBlock(true).
Handle(func(ctx *zero.Ctx) {
m, ok := control.Lookup("fansdaily")
if ok {
if m.IsEnabledIn(ctx.Event.GroupID) {
m.Disable(ctx.Event.GroupID)
ctx.Send(message.Text("关闭成功!"))
} else {
ctx.Send(message.Text("未启用!"))
}
} else {
ctx.Send(message.Text("找不到该服务!"))
}
}) })
} }
// 定时任务每天晚上最后2分钟执行一次 // 定时任务每天晚上最后2分钟执行一次
func fansDaily(groupID int64) { func fansDaily() {
c := cron.New() c := cron.New()
_, err := c.AddFunc("58 23 * * *", func() { fansData(groupID) }) _, err := c.AddFunc("58 23 * * *", func() { sendNotice() })
if err == nil { if err == nil {
c.Start() c.Start()
} }
} }
// 获取数据拼接消息链并发送 // 获取数据拼接消息链并发送
func fansData(groupID int64) { func getMsg() message.MessageSegment {
// TODO: 更改为 GetBot var (
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool { diana = fansapi("672328094")
var ( ava = fansapi("672346917")
diana = fansapi("672328094") eileen = fansapi("672342685")
ava = fansapi("672346917") bella = fansapi("672353429")
eileen = fansapi("672342685") carol = fansapi("351609538")
bella = fansapi("672353429") )
carol = fansapi("351609538") return message.Text(
) time.Now().Format("2006-01-02"), " Asoul全团粉丝日报如下", "\n\n",
ctx.SendGroupMessage( "uid: ", diana.Mid, "\n",
groupID, "名字: ", diana.Uname, "\n",
message.Text( "当前粉丝数: ", diana.Follower, "\n",
time.Now().Format("2006-01-02"), " Asoul全团粉丝日报如下", "\n\n", "今日涨粉数: ", diana.Rise, "\n",
"uid: ", diana.Mid, "\n", "视频投稿数: ", diana.Video, "\n",
"名字: ", diana.Uname, "\n", "直播间id: ", diana.Roomid, "\n",
"当前粉丝数: ", diana.Follower, "\n", "舰队: ", diana.GuardNum, "\n",
"今日涨粉数: ", diana.Rise, "\n", "直播总排名: ", diana.AreaRank, "\n",
"视频投稿数: ", diana.Video, "\n", "数据来源: ", "https://vtbs.moe/detail/", "672328094", "\n\n",
"直播间id: ", diana.Roomid, "\n",
"舰队: ", diana.GuardNum, "\n",
"直播总排名: ", diana.AreaRank, "\n",
"数据来源: ", "https://vtbs.moe/detail/", "672328094", "\n\n",
"uid: ", ava.Mid, "\n", "uid: ", ava.Mid, "\n",
"名字: ", ava.Uname, "\n", "名字: ", ava.Uname, "\n",
"当前粉丝数: ", ava.Follower, "\n", "当前粉丝数: ", ava.Follower, "\n",
"今日涨粉数: ", ava.Rise, "\n", "今日涨粉数: ", ava.Rise, "\n",
"视频投稿数: ", ava.Video, "\n", "视频投稿数: ", ava.Video, "\n",
"直播间id: ", ava.Roomid, "\n", "直播间id: ", ava.Roomid, "\n",
"舰队: ", ava.GuardNum, "\n", "舰队: ", ava.GuardNum, "\n",
"直播总排名: ", ava.AreaRank, "\n", "直播总排名: ", ava.AreaRank, "\n",
"数据来源: ", "https://vtbs.moe/detail/", "672346917", "\n\n", "数据来源: ", "https://vtbs.moe/detail/", "672346917", "\n\n",
"uid: ", eileen.Mid, "\n", "uid: ", eileen.Mid, "\n",
"名字: ", eileen.Uname, "\n", "名字: ", eileen.Uname, "\n",
"当前粉丝数: ", eileen.Follower, "\n", "当前粉丝数: ", eileen.Follower, "\n",
"今日涨粉数: ", eileen.Rise, "\n", "今日涨粉数: ", eileen.Rise, "\n",
"视频投稿数: ", eileen.Video, "\n", "视频投稿数: ", eileen.Video, "\n",
"直播间id: ", eileen.Roomid, "\n", "直播间id: ", eileen.Roomid, "\n",
"舰队: ", eileen.GuardNum, "\n", "舰队: ", eileen.GuardNum, "\n",
"直播总排名: ", eileen.AreaRank, "\n", "直播总排名: ", eileen.AreaRank, "\n",
"数据来源: ", "https://vtbs.moe/detail/", "672342685", "\n\n", "数据来源: ", "https://vtbs.moe/detail/", "672342685", "\n\n",
"uid: ", bella.Mid, "\n", "uid: ", bella.Mid, "\n",
"名字: ", bella.Uname, "\n", "名字: ", bella.Uname, "\n",
"当前粉丝数: ", bella.Follower, "\n", "当前粉丝数: ", bella.Follower, "\n",
"今日涨粉数: ", bella.Rise, "\n", "今日涨粉数: ", bella.Rise, "\n",
"视频投稿数: ", bella.Video, "\n", "视频投稿数: ", bella.Video, "\n",
"直播间id: ", bella.Roomid, "\n", "直播间id: ", bella.Roomid, "\n",
"舰队: ", bella.GuardNum, "\n", "舰队: ", bella.GuardNum, "\n",
"直播总排名: ", bella.AreaRank, "\n", "直播总排名: ", bella.AreaRank, "\n",
"数据来源: ", "https://vtbs.moe/detail/", "672353429", "\n\n", "数据来源: ", "https://vtbs.moe/detail/", "672353429", "\n\n",
"uid: ", carol.Mid, "\n", "uid: ", carol.Mid, "\n",
"名字: ", carol.Uname, "\n", "名字: ", carol.Uname, "\n",
"当前粉丝数: ", carol.Follower, "\n", "当前粉丝数: ", carol.Follower, "\n",
"今日涨粉数: ", carol.Rise, "\n", "今日涨粉数: ", carol.Rise, "\n",
"视频投稿数: ", carol.Video, "\n", "视频投稿数: ", carol.Video, "\n",
"直播间id: ", carol.Roomid, "\n", "直播间id: ", carol.Roomid, "\n",
"舰队: ", carol.GuardNum, "\n", "舰队: ", carol.GuardNum, "\n",
"直播总排名: ", carol.AreaRank, "\n", "直播总排名: ", carol.AreaRank, "\n",
"数据来源: ", "https://vtbs.moe/detail/", "351609538", "数据来源: ", "https://vtbs.moe/detail/", "351609538",
)) )
return true }
})
// 获取数据拼接消息链并发送
func sendNotice() {
m, ok := control.Lookup("fansdaily")
if ok {
msg := getMsg()
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
for _, g := range ctx.GetGroupList().Array() {
grp := g.Get("group_id").Int()
if m.IsEnabledIn(grp) {
ctx.SendGroupMessage(grp, msg)
}
}
return true
})
}
} }
// 请求api // 请求api

View File

@ -16,8 +16,7 @@ var engine = control.Register("bilibili", &control.Options{
DisableOnDefault: false, DisableOnDefault: false,
Help: "bilibili\n" + Help: "bilibili\n" +
"- >vup info [名字|uid]\n" + "- >vup info [名字|uid]\n" +
"- >user info [名字|uid]\n" + "- >user info [名字|uid]",
"- /开启粉丝日报",
}) })
// 查成分的 // 查成分的