mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2026-01-04 18:59:01 +08:00
✨ fortune 增加下载锁;优化 gui 插件控制
This commit is contained in:
parent
82ee2f6b0a
commit
755bfeaa5b
@ -128,23 +128,11 @@ func updateAllPluginStatus(context *gin.Context) {
|
|||||||
}
|
}
|
||||||
enable = parse["enable"].(bool)
|
enable = parse["enable"].(bool)
|
||||||
}
|
}
|
||||||
var groups []int64
|
|
||||||
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
|
||||||
for _, group := range ctx.GetGroupList().Array() {
|
|
||||||
groups = append(groups, group.Get("group_id").Int())
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
|
|
||||||
ctrl.ForEach(func(key string, manager *ctrl.Control) bool {
|
ctrl.ForEach(func(key string, manager *ctrl.Control) bool {
|
||||||
if enable {
|
if enable {
|
||||||
for _, group := range groups {
|
manager.Enable(0)
|
||||||
manager.Enable(group)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
for _, group := range groups {
|
manager.Disable(0)
|
||||||
manager.Disable(group)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
@ -175,18 +163,11 @@ func updatePluginAllGroupStatus(context *gin.Context) {
|
|||||||
context.JSON(404, nil)
|
context.JSON(404, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
if enable {
|
||||||
for _, group := range ctx.GetGroupList().Array() {
|
control.Enable(0)
|
||||||
if enable {
|
} else {
|
||||||
control.Enable(group.Get("group_id").Int())
|
control.Disable(0)
|
||||||
} else {
|
}
|
||||||
control.Disable(group.Get("group_id").Int())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
|
|
||||||
context.JSON(200, nil)
|
context.JSON(200, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
24
main.go
24
main.go
@ -101,23 +101,21 @@ func printBanner() {
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
printBanner()
|
printBanner()
|
||||||
zero.Run(zero.Config{
|
|
||||||
NickName: []string{"椛椛", "ATRI", "atri", "亚托莉", "アトリ"},
|
|
||||||
CommandPrefix: "/",
|
|
||||||
// SuperUsers 某些功能需要主人权限,可通过以下两种方式修改
|
|
||||||
// []string{}:通过代码写死的方式添加主人账号
|
|
||||||
// flag.Args():通过命令行参数的方式添加主人账号
|
|
||||||
SuperUsers: append([]string{"12345678", "87654321"}, flag.Args()...),
|
|
||||||
Driver: []zero.Driver{
|
|
||||||
driver.NewWebSocketClient(*url, *token),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
// 帮助
|
// 帮助
|
||||||
zero.OnFullMatchGroup([]string{"/help", ".help", "菜单"}, zero.OnlyToMe).SetBlock(true).FirstPriority().
|
zero.OnFullMatchGroup([]string{"/help", ".help", "菜单"}, zero.OnlyToMe).SetBlock(true).FirstPriority().
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SendChain(message.Text(banner))
|
ctx.SendChain(message.Text(banner))
|
||||||
})
|
})
|
||||||
|
zero.Run(
|
||||||
|
zero.Config{
|
||||||
|
NickName: []string{"椛椛", "ATRI", "atri", "亚托莉", "アトリ"},
|
||||||
|
CommandPrefix: "/",
|
||||||
|
// SuperUsers 某些功能需要主人权限,可通过以下两种方式修改
|
||||||
|
// "12345678", "87654321":通过代码写死的方式添加主人账号
|
||||||
|
// flag.Args():通过命令行参数的方式添加主人账号,无需修改下方任何代码
|
||||||
|
SuperUsers: append([]string{"12345678", "87654321"}, flag.Args()...),
|
||||||
|
Driver: []zero.Driver{driver.NewWebSocketClient(*url, *token)},
|
||||||
|
},
|
||||||
|
)
|
||||||
select {}
|
select {}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,6 +38,7 @@ func fansDaily(groupID int64) {
|
|||||||
|
|
||||||
// 获取数据拼接消息链并发送
|
// 获取数据拼接消息链并发送
|
||||||
func fansData(groupID int64) {
|
func fansData(groupID int64) {
|
||||||
|
// TODO: 更改为 GetBot
|
||||||
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
||||||
var (
|
var (
|
||||||
diana = fansapi("672328094")
|
diana = fansapi("672328094")
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import (
|
|||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/fogleman/gg"
|
"github.com/fogleman/gg"
|
||||||
@ -35,6 +36,8 @@ var (
|
|||||||
table = [...]string{"车万", "DC4", "爱因斯坦", "星空列车", "樱云之恋", "富婆妹", "李清歌", "公主连结", "原神", "明日方舟", "碧蓝航线", "碧蓝幻想", "战双", "阴阳师"}
|
table = [...]string{"车万", "DC4", "爱因斯坦", "星空列车", "樱云之恋", "富婆妹", "李清歌", "公主连结", "原神", "明日方舟", "碧蓝航线", "碧蓝幻想", "战双", "阴阳师"}
|
||||||
// 映射底图与 index
|
// 映射底图与 index
|
||||||
index = make(map[string]uint32)
|
index = make(map[string]uint32)
|
||||||
|
// 下载锁
|
||||||
|
dlmu sync.Mutex
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -77,24 +80,32 @@ func init() {
|
|||||||
// 检查签文文件是否存在
|
// 检查签文文件是否存在
|
||||||
mikuji := base + "运势签文.json"
|
mikuji := base + "运势签文.json"
|
||||||
if file.IsNotExist(mikuji) {
|
if file.IsNotExist(mikuji) {
|
||||||
ctx.SendChain(message.Text("正在下载签文文件,请稍后..."))
|
dlmu.Lock()
|
||||||
err := file.DownloadTo(site+"运势签文.json", mikuji)
|
if file.IsNotExist(mikuji) {
|
||||||
if err != nil {
|
ctx.SendChain(message.Text("正在下载签文文件,请稍后..."))
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
err := file.DownloadTo(site+"运势签文.json", mikuji)
|
||||||
return
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.SendChain(message.Text("下载签文文件完毕"))
|
||||||
}
|
}
|
||||||
ctx.SendChain(message.Text("下载签文文件完毕"))
|
dlmu.Unlock()
|
||||||
}
|
}
|
||||||
// 检查字体文件是否存在
|
// 检查字体文件是否存在
|
||||||
ttf := base + "sakura.ttf"
|
ttf := base + "sakura.ttf"
|
||||||
if file.IsNotExist(ttf) {
|
if file.IsNotExist(ttf) {
|
||||||
ctx.SendChain(message.Text("正在下载字体文件,请稍后..."))
|
dlmu.Lock()
|
||||||
err := file.DownloadTo(site+"sakura.ttf", ttf)
|
if file.IsNotExist(ttf) {
|
||||||
if err != nil {
|
ctx.SendChain(message.Text("正在下载字体文件,请稍后..."))
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
err := file.DownloadTo(site+"sakura.ttf", ttf)
|
||||||
return
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.SendChain(message.Text("下载字体文件完毕"))
|
||||||
}
|
}
|
||||||
ctx.SendChain(message.Text("下载字体文件完毕"))
|
dlmu.Unlock()
|
||||||
}
|
}
|
||||||
// 获取该群背景类型,默认车万
|
// 获取该群背景类型,默认车万
|
||||||
kind := "车万"
|
kind := "车万"
|
||||||
@ -110,23 +121,27 @@ func init() {
|
|||||||
// 检查背景图片是否存在
|
// 检查背景图片是否存在
|
||||||
folder := base + kind
|
folder := base + kind
|
||||||
if file.IsNotExist(folder) {
|
if file.IsNotExist(folder) {
|
||||||
ctx.SendChain(message.Text("正在下载背景图片,请稍后..."))
|
dlmu.Lock()
|
||||||
zipfile := kind + ".zip"
|
if file.IsNotExist(folder) {
|
||||||
zipcache := base + zipfile
|
ctx.SendChain(message.Text("正在下载背景图片,请稍后..."))
|
||||||
err := file.DownloadTo(site+zipfile, zipcache)
|
zipfile := kind + ".zip"
|
||||||
if err != nil {
|
zipcache := base + zipfile
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
err := file.DownloadTo(site+zipfile, zipcache)
|
||||||
return
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.SendChain(message.Text("下载背景图片完毕"))
|
||||||
|
err = unpack(zipcache, folder+"/")
|
||||||
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.SendChain(message.Text("解压背景图片完毕"))
|
||||||
|
// 释放空间
|
||||||
|
os.Remove(zipcache)
|
||||||
}
|
}
|
||||||
ctx.SendChain(message.Text("下载背景图片完毕"))
|
dlmu.Unlock()
|
||||||
err = unpack(zipcache, folder+"/")
|
|
||||||
if err != nil {
|
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ctx.SendChain(message.Text("解压背景图片完毕"))
|
|
||||||
// 释放空间
|
|
||||||
os.Remove(zipcache)
|
|
||||||
}
|
}
|
||||||
// 生成种子
|
// 生成种子
|
||||||
t, _ := strconv.ParseInt(time.Now().Format("20060102"), 10, 64)
|
t, _ := strconv.ParseInt(time.Now().Format("20060102"), 10, 64)
|
||||||
|
|||||||
@ -190,6 +190,7 @@ func (ts *Timer) nextWakeTime() (date time.Time) {
|
|||||||
func (ts *Timer) judgeHM() {
|
func (ts *Timer) judgeHM() {
|
||||||
if ts.Hour < 0 || ts.Hour == int32(time.Now().Hour()) {
|
if ts.Hour < 0 || ts.Hour == int32(time.Now().Hour()) {
|
||||||
if ts.Minute < 0 || ts.Minute == int32(time.Now().Minute()) {
|
if ts.Minute < 0 || ts.Minute == int32(time.Now().Minute()) {
|
||||||
|
//zero.GetBot(zero.BotConfig.SelfID)
|
||||||
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
||||||
ctx.Event = new(zero.Event)
|
ctx.Event = new(zero.Event)
|
||||||
ctx.Event.GroupID = int64(ts.Grpid)
|
ctx.Event.GroupID = int64(ts.Grpid)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user