mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
✨ job增加执行指令
This commit is contained in:
parent
55944dddb3
commit
bccf789714
@ -72,6 +72,7 @@ zerobot [-h] [-t token] [-u url] [-n nickname] [-p prefix] [-d|w] [-g 监听地
|
|||||||
- [x] 查看所有触发指令
|
- [x] 查看所有触发指令
|
||||||
- [x] 查看在"cron"触发的指令
|
- [x] 查看在"cron"触发的指令
|
||||||
- [x] 注入指令结果:任意指令,可以使用形如`?::参数1提示语::1!`,`?::参数2提示语::2!`的未定参数,在注入时一一匹配
|
- [x] 注入指令结果:任意指令,可以使用形如`?::参数1提示语::1!`,`?::参数2提示语::2!`的未定参数,在注入时一一匹配
|
||||||
|
- [x] 执行指令:任意指令,可以使用形如`?::参数1提示语::1!`,`?::参数2提示语::2!`的未定参数,在注入时一一匹配
|
||||||
- 一些示例
|
- 一些示例
|
||||||
> 每日9:30推送摸鱼人日历
|
> 每日9:30推送摸鱼人日历
|
||||||
```
|
```
|
||||||
@ -93,6 +94,14 @@ else: print('今天没有coser哦~')
|
|||||||
if '?::想看coser吗?::1!' == '想': print('coser')
|
if '?::想看coser吗?::1!' == '想': print('coser')
|
||||||
else: print('好吧')
|
else: print('好吧')
|
||||||
```
|
```
|
||||||
|
> 自行编写简易的选择困难症助手小插件
|
||||||
|
```python
|
||||||
|
执行指令:>runcoderaw py
|
||||||
|
from random import random
|
||||||
|
if random() > 0.5: print('您最终会选?::请输入您的选择1::1!')
|
||||||
|
else: print('您最终会选?::请输入您的选择2::2!')
|
||||||
|
```
|
||||||
|

|
||||||
- **聊天** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/chat"`
|
- **聊天** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/chat"`
|
||||||
- [x] [BOT名字]
|
- [x] [BOT名字]
|
||||||
- [x] [戳一戳BOT]
|
- [x] [戳一戳BOT]
|
||||||
|
|||||||
@ -32,7 +32,7 @@ var (
|
|||||||
func init() {
|
func init() {
|
||||||
en := control.Register("job", order.AcquirePrio(), &control.Options{
|
en := control.Register("job", order.AcquirePrio(), &control.Options{
|
||||||
DisableOnDefault: false,
|
DisableOnDefault: false,
|
||||||
Help: "定时指令触发器\n- 记录在\"cron\"触发的指令\n- 取消在\"cron\"触发的指令\n- 查看所有触发指令\n- 查看在\"cron\"触发的指令\n- 注入指令结果:任意指令",
|
Help: "定时指令触发器\n- 记录在\"cron\"触发的指令\n- 取消在\"cron\"触发的指令\n- 查看所有触发指令\n- 查看在\"cron\"触发的指令\n- 注入指令结果:任意指令\n- 执行指令:任意指令",
|
||||||
PrivateDataFolder: "job",
|
PrivateDataFolder: "job",
|
||||||
})
|
})
|
||||||
db.DBPath = en.DataFolder() + "job.db"
|
db.DBPath = en.DataFolder() + "job.db"
|
||||||
@ -146,6 +146,11 @@ func init() {
|
|||||||
}
|
}
|
||||||
ctx.SendChain(message.Text(lst))
|
ctx.SendChain(message.Text(lst))
|
||||||
})
|
})
|
||||||
|
en.OnPrefix("执行指令:", ctxext.UserOrGrpAdmin, islonotnil, func(ctx *zero.Ctx) bool {
|
||||||
|
return ctx.State["args"].(string) != ""
|
||||||
|
}, parseArgs).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||||||
|
inject(ctx.Event.SelfID, binary.StringToBytes(strings.ReplaceAll(ctx.Event.RawEvent.Raw, "执行指令:", "")))()
|
||||||
|
})
|
||||||
en.OnPrefix("注入指令结果:", ctxext.UserOrGrpAdmin, islonotnil, func(ctx *zero.Ctx) bool {
|
en.OnPrefix("注入指令结果:", ctxext.UserOrGrpAdmin, islonotnil, func(ctx *zero.Ctx) bool {
|
||||||
return ctx.State["args"].(string) != ""
|
return ctx.State["args"].(string) != ""
|
||||||
}, parseArgs).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
}, parseArgs).SetBlock(true).Handle(func(ctx *zero.Ctx) {
|
||||||
@ -163,6 +168,7 @@ func init() {
|
|||||||
ctx.Event.RawMessage = msg.Elements.String()
|
ctx.Event.RawMessage = msg.Elements.String()
|
||||||
time.Sleep(time.Second * 5) // 防止风控
|
time.Sleep(time.Second * 5) // 防止风控
|
||||||
ctx.Event.Time = time.Now().Unix()
|
ctx.Event.Time = time.Now().Unix()
|
||||||
|
ctx.DeleteMessage(id)
|
||||||
vev, cl := binary.OpenWriterF(func(w *binary.Writer) {
|
vev, cl := binary.OpenWriterF(func(w *binary.Writer) {
|
||||||
err = json.NewEncoder(w).Encode(ctx.Event)
|
err = json.NewEncoder(w).Encode(ctx.Event)
|
||||||
})
|
})
|
||||||
@ -175,7 +181,7 @@ func init() {
|
|||||||
inject(ctx.Event.SelfID, vev)()
|
inject(ctx.Event.SelfID, vev)()
|
||||||
cl()
|
cl()
|
||||||
}
|
}
|
||||||
})).Echo([]byte(strings.ReplaceAll(ctx.Event.RawEvent.Raw, "注入指令结果:", "")))
|
})).Echo(binary.StringToBytes(strings.ReplaceAll(ctx.Event.RawEvent.Raw, "注入指令结果:", "")))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,11 +268,12 @@ func parseArgs(ctx *zero.Ctx) bool {
|
|||||||
case <-time.After(time.Second * 120):
|
case <-time.After(time.Second * 120):
|
||||||
ctx.SendChain(message.Text("参数读取超时"))
|
ctx.SendChain(message.Text("参数读取超时"))
|
||||||
return false
|
return false
|
||||||
case e := <-zero.NewFutureEvent("message", 0, false, zero.CheckUser(ctx.Event.UserID)).Next():
|
case e := <-zero.NewFutureEvent("message", 0, true, zero.CheckUser(ctx.Event.UserID)).Next():
|
||||||
args[arg] = e.Message.String()
|
args[arg] = e.Message.String()
|
||||||
|
arr = args[arg]
|
||||||
|
process.SleepAbout1sTo2s()
|
||||||
ctx.SendChain(message.Reply(e.MessageID), message.Text("已记录"))
|
ctx.SendChain(message.Reply(e.MessageID), message.Text("已记录"))
|
||||||
process.SleepAbout1sTo2s()
|
process.SleepAbout1sTo2s()
|
||||||
arr = args[arg]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ctx.Event.RawEvent.Raw = ctx.Event.RawEvent.Raw[:start] + arr + ctx.Event.RawEvent.Raw[numend+1:]
|
ctx.Event.RawEvent.Raw = ctx.Event.RawEvent.Raw[:start] + arr + ctx.Event.RawEvent.Raw[numend+1:]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user