mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
🎨 改进代码结构
This commit is contained in:
parent
45a2808c13
commit
f19721a683
20
chat/chat.go
20
chat/chat.go
@ -1,15 +1,31 @@
|
|||||||
package chat
|
package chat
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"math/rand"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/extension/rate"
|
"github.com/wdvxdr1123/ZeroBot/extension/rate"
|
||||||
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
var poke = rate.NewManager(time.Minute*5, 8) // 戳一戳
|
var poke = rate.NewManager(time.Minute*5, 8) // 戳一戳
|
||||||
|
|
||||||
func init() { // 插件主体
|
func init() { // 插件主体
|
||||||
|
var NICKNAME = zero.BotConfig.NickName[0]
|
||||||
|
// 被喊名字
|
||||||
|
zero.OnFullMatchGroup(zero.BotConfig.NickName).SetBlock(false).FirstPriority().
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
time.Sleep(time.Second * 1)
|
||||||
|
ctx.SendChain(message.Text(
|
||||||
|
[]string{
|
||||||
|
NICKNAME + "在此,有何贵干~",
|
||||||
|
"(っ●ω●)っ在~",
|
||||||
|
"这里是" + NICKNAME + "(っ●ω●)っ",
|
||||||
|
NICKNAME + "不在呢~",
|
||||||
|
}[rand.Intn(4)],
|
||||||
|
))
|
||||||
|
})
|
||||||
// 戳一戳
|
// 戳一戳
|
||||||
zero.On("notice/notify/poke", zero.OnlyToMe).SetBlock(false).FirstPriority().
|
zero.On("notice/notify/poke", zero.OnlyToMe).SetBlock(false).FirstPriority().
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
@ -17,11 +33,11 @@ func init() { // 插件主体
|
|||||||
case poke.Load(ctx.Event.UserID).AcquireN(3):
|
case poke.Load(ctx.Event.UserID).AcquireN(3):
|
||||||
// 5分钟共8块命令牌 一次消耗3块命令牌
|
// 5分钟共8块命令牌 一次消耗3块命令牌
|
||||||
time.Sleep(time.Second * 1)
|
time.Sleep(time.Second * 1)
|
||||||
ctx.Send("请不要戳我 >_<")
|
ctx.SendChain(message.Text("请不要戳", NICKNAME, " >_<"))
|
||||||
case poke.Load(ctx.Event.UserID).Acquire():
|
case poke.Load(ctx.Event.UserID).Acquire():
|
||||||
// 5分钟共8块命令牌 一次消耗1块命令牌
|
// 5分钟共8块命令牌 一次消耗1块命令牌
|
||||||
time.Sleep(time.Second * 1)
|
time.Sleep(time.Second * 1)
|
||||||
ctx.Send("喂(#`O′) 戳我干嘛!")
|
ctx.SendChain(message.Text("喂(#`O′) 戳", NICKNAME, "干嘛!"))
|
||||||
default:
|
default:
|
||||||
// 频繁触发,不回复
|
// 频繁触发,不回复
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package github
|
package github
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -9,71 +10,81 @@ import (
|
|||||||
|
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() { // 插件主体
|
func init() { // 插件主体
|
||||||
zero.OnRegex(`>G\s(.*)`).SetBlock(true).FirstPriority().
|
zero.OnRegex(`>G\s(.*)`).SetBlock(true).FirstPriority().
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
// 发送请求
|
||||||
|
header := http.Header{
|
||||||
|
"User-Agent": []string{"User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"},
|
||||||
|
}
|
||||||
api, _ := url.Parse("https://api.github.com/search/repositories")
|
api, _ := url.Parse("https://api.github.com/search/repositories")
|
||||||
params := url.Values{
|
api.RawQuery = url.Values{
|
||||||
"q": []string{ctx.State["regex_matched"].([]string)[1]},
|
"q": []string{ctx.State["regex_matched"].([]string)[1]},
|
||||||
}
|
}.Encode()
|
||||||
api.RawQuery = params.Encode()
|
body, err := netGet(api.String(), header)
|
||||||
link := api.String()
|
|
||||||
|
|
||||||
client := &http.Client{}
|
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", link, nil)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Send(fmt.Sprintf("ERROR: %v", err))
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
}
|
||||||
|
// 解析请求
|
||||||
|
info := gjson.ParseBytes(body)
|
||||||
|
if info.Get("total_count").Int() == 0 {
|
||||||
|
ctx.SendChain(message.Text("ERROR: 没有找到这样的仓库"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36")
|
repo := info.Get("items.0")
|
||||||
resp, err := client.Do(req)
|
// 发送结果
|
||||||
if err != nil {
|
ctx.SendChain(
|
||||||
ctx.Send(fmt.Sprintf("ERROR: %v", err))
|
message.Text(
|
||||||
return
|
repo.Get("full_name").Str, "\n",
|
||||||
}
|
"Description: ",
|
||||||
defer resp.Body.Close()
|
repo.Get("description").Str, "\n",
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
"Star/Fork/Issue: ",
|
||||||
if err != nil {
|
repo.Get("watchers").Int(), "/", repo.Get("forks").Int(), "/", repo.Get("open_issues").Int(), "\n",
|
||||||
ctx.Send(fmt.Sprintf("ERROR: %v", err))
|
"Language: ",
|
||||||
return
|
notnull(repo.Get("language").Str, "None"), "\n",
|
||||||
}
|
"License: ",
|
||||||
|
notnull(strings.ToUpper(repo.Get("license.key").Str), "None"), "\n",
|
||||||
if code := resp.StatusCode; code != 200 {
|
"Last pushed: ",
|
||||||
// 如果返回不是200则立刻抛出错误
|
repo.Get("pushed_at").Str, "\n",
|
||||||
ctx.Send(fmt.Sprintf("ERROR: code %d", code))
|
"Jump: ",
|
||||||
return
|
repo.Get("html_url").Str, "\n",
|
||||||
}
|
),
|
||||||
count := gjson.ParseBytes(body).Get("total_count").Int()
|
)
|
||||||
if count == 0 {
|
|
||||||
ctx.Send("没有找到这样的仓库")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
repo := gjson.ParseBytes(body).Get("items.0")
|
|
||||||
language := repo.Get("language").Str
|
|
||||||
if language == "" {
|
|
||||||
language = "None"
|
|
||||||
}
|
|
||||||
license := strings.ToUpper(repo.Get("license.key").Str)
|
|
||||||
if license == "" {
|
|
||||||
license = "None"
|
|
||||||
}
|
|
||||||
id := ctx.Send(fmt.Sprintf(
|
|
||||||
"%s: \nDescription: %s\nStar/Fork/Issue: %d/%d/%d\nLanguage: %s\nLicense: %s\nLast pushed: %s\nJump: %s",
|
|
||||||
repo.Get("full_name").Str,
|
|
||||||
repo.Get("description").Str,
|
|
||||||
repo.Get("watchers").Int(),
|
|
||||||
repo.Get("forks").Int(),
|
|
||||||
repo.Get("open_issues").Int(),
|
|
||||||
language,
|
|
||||||
license,
|
|
||||||
repo.Get("updated_at").Str,
|
|
||||||
repo.Get("html_url").Str,
|
|
||||||
))
|
|
||||||
if id == 0 {
|
|
||||||
ctx.Send("ERROR: 可能被风控,发送失败")
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// notnull 如果传入文本为空,则返回默认值
|
||||||
|
func notnull(text, default_ string) string {
|
||||||
|
if text == "" {
|
||||||
|
return default_
|
||||||
|
}
|
||||||
|
return text
|
||||||
|
}
|
||||||
|
|
||||||
|
// netGet 返回请求结果
|
||||||
|
func netGet(dest string, header http.Header) ([]byte, error) {
|
||||||
|
client := &http.Client{}
|
||||||
|
|
||||||
|
req, err := http.NewRequest("GET", dest, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
req.Header = header
|
||||||
|
resp, err := client.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
body, err := ioutil.ReadAll(resp.Body)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if code := resp.StatusCode; code != 200 {
|
||||||
|
// 如果返回不是200则立刻抛出错误
|
||||||
|
return nil, errors.New(fmt.Sprintf("code %d", code))
|
||||||
|
}
|
||||||
|
return body, nil
|
||||||
|
}
|
||||||
|
|||||||
2
main.go
2
main.go
@ -35,7 +35,7 @@ func main() {
|
|||||||
========================================================
|
========================================================
|
||||||
`)
|
`)
|
||||||
zero.Run(zero.Config{
|
zero.Run(zero.Config{
|
||||||
NickName: []string{"bot"},
|
NickName: []string{"椛椛"},
|
||||||
CommandPrefix: "/",
|
CommandPrefix: "/",
|
||||||
SuperUsers: []string{"825111790", "213864964"}, // 必须修改,否则无权限
|
SuperUsers: []string{"825111790", "213864964"}, // 必须修改,否则无权限
|
||||||
Driver: []zero.Driver{
|
Driver: []zero.Driver{
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
package manager
|
package manager
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/Yiwen-Chan/ZeroBot-Plugin/manager/utils"
|
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() { // 插件主体
|
func init() { // 插件主体
|
||||||
// 菜单
|
// 菜单
|
||||||
zero.OnFullMatch("群管系统").SetBlock(true).SetPriority(40).
|
zero.OnFullMatch("群管系统", zero.AdminPermission).SetBlock(true).FirstPriority().
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.Send(`====群管====
|
ctx.Send(`====群管====
|
||||||
- 禁言@QQ 1
|
- 禁言@QQ 1分钟
|
||||||
- 解除禁言 @QQ
|
- 解除禁言 @QQ
|
||||||
- 我要自闭 1
|
- 我要自闭 1分钟
|
||||||
- 开启全员禁言
|
- 开启全员禁言
|
||||||
- 解除全员禁言
|
- 解除全员禁言
|
||||||
- 升为管理@QQ
|
- 升为管理@QQ
|
||||||
@ -33,12 +33,12 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupAdmin(
|
ctx.SetGroupAdmin(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
nickname := ctx.GetGroupMemberInfo( // 被升为管理的人的昵称
|
nickname := ctx.GetGroupMemberInfo( // 被升为管理的人的昵称
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq
|
||||||
false,
|
false,
|
||||||
).Get("nickname").Str
|
).Get("nickname").Str
|
||||||
ctx.Send(nickname + " 升为了管理~")
|
ctx.Send(nickname + " 升为了管理~")
|
||||||
@ -49,12 +49,12 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupAdmin(
|
ctx.SetGroupAdmin(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq
|
||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
nickname := ctx.GetGroupMemberInfo( // 被取消管理的人的昵称
|
nickname := ctx.GetGroupMemberInfo( // 被取消管理的人的昵称
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq
|
||||||
false,
|
false,
|
||||||
).Get("nickname").Str
|
).Get("nickname").Str
|
||||||
ctx.Send("残念~ " + nickname + " 暂时失去了管理员的资格")
|
ctx.Send("残念~ " + nickname + " 暂时失去了管理员的资格")
|
||||||
@ -65,12 +65,12 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupKick(
|
ctx.SetGroupKick(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被踢出群聊的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被踢出群聊的人的qq
|
||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
nickname := ctx.GetGroupMemberInfo( // 被踢出群聊的人的昵称
|
nickname := ctx.GetGroupMemberInfo( // 被踢出群聊的人的昵称
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被踢出群聊的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被踢出群聊的人的qq
|
||||||
false,
|
false,
|
||||||
).Get("nickname").Str
|
).Get("nickname").Str
|
||||||
ctx.Send("残念~ " + nickname + " 被放逐")
|
ctx.Send("残念~ " + nickname + " 被放逐")
|
||||||
@ -80,7 +80,7 @@ func init() { // 插件主体
|
|||||||
zero.OnRegex(`^退出群聊.*?(\d+)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true).SetPriority(40).
|
zero.OnRegex(`^退出群聊.*?(\d+)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true).SetPriority(40).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupLeave(
|
ctx.SetGroupLeave(
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 要退出的群的群号
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 要退出的群的群号
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@ -108,7 +108,7 @@ func init() { // 插件主体
|
|||||||
// 禁言
|
// 禁言
|
||||||
zero.OnRegex(`^禁言.*?(\d+).*?\s(\d+)(.*)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true).SetPriority(40).
|
zero.OnRegex(`^禁言.*?(\d+).*?\s(\d+)(.*)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true).SetPriority(40).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
duration := utils.Str2Int(ctx.State["regex_matched"].([]string)[2])
|
duration := strToInt(ctx.State["regex_matched"].([]string)[2])
|
||||||
switch ctx.State["regex_matched"].([]string)[3] {
|
switch ctx.State["regex_matched"].([]string)[3] {
|
||||||
case "分钟":
|
case "分钟":
|
||||||
//
|
//
|
||||||
@ -124,7 +124,7 @@ func init() { // 插件主体
|
|||||||
}
|
}
|
||||||
ctx.SetGroupBan(
|
ctx.SetGroupBan(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 要禁言的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 要禁言的人的qq
|
||||||
duration*60, // 要禁言的时间(分钟)
|
duration*60, // 要禁言的时间(分钟)
|
||||||
)
|
)
|
||||||
ctx.Send("小黑屋收留成功~")
|
ctx.Send("小黑屋收留成功~")
|
||||||
@ -135,7 +135,7 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupBan(
|
ctx.SetGroupBan(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 要解除禁言的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 要解除禁言的人的qq
|
||||||
0,
|
0,
|
||||||
)
|
)
|
||||||
ctx.Send("小黑屋释放成功~")
|
ctx.Send("小黑屋释放成功~")
|
||||||
@ -144,7 +144,7 @@ func init() { // 插件主体
|
|||||||
// 自闭禁言
|
// 自闭禁言
|
||||||
zero.OnRegex(`^我要自闭.*?(\d+)(.*)`, zero.OnlyGroup).SetBlock(true).SetPriority(40).
|
zero.OnRegex(`^我要自闭.*?(\d+)(.*)`, zero.OnlyGroup).SetBlock(true).SetPriority(40).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
duration := utils.Str2Int(ctx.State["regex_matched"].([]string)[1])
|
duration := strToInt(ctx.State["regex_matched"].([]string)[1])
|
||||||
switch ctx.State["regex_matched"].([]string)[2] {
|
switch ctx.State["regex_matched"].([]string)[2] {
|
||||||
case "分钟":
|
case "分钟":
|
||||||
//
|
//
|
||||||
@ -171,8 +171,8 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupCard(
|
ctx.SetGroupCard(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被修改群名片的人
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被修改群名片的人
|
||||||
ctx.State["regex_matched"].([]string)[2], // 修改成的群名片
|
ctx.State["regex_matched"].([]string)[2], // 修改成的群名片
|
||||||
)
|
)
|
||||||
ctx.Send("嗯!已经修改了")
|
ctx.Send("嗯!已经修改了")
|
||||||
return
|
return
|
||||||
@ -182,8 +182,8 @@ func init() { // 插件主体
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SetGroupSpecialTitle(
|
ctx.SetGroupSpecialTitle(
|
||||||
ctx.Event.GroupID,
|
ctx.Event.GroupID,
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 被修改群头衔的人
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 被修改群头衔的人
|
||||||
ctx.State["regex_matched"].([]string)[2], // 修改成的群头衔
|
ctx.State["regex_matched"].([]string)[2], // 修改成的群头衔
|
||||||
)
|
)
|
||||||
ctx.Send("嗯!已经修改了")
|
ctx.Send("嗯!已经修改了")
|
||||||
return
|
return
|
||||||
@ -207,7 +207,7 @@ func init() { // 插件主体
|
|||||||
content = strings.ReplaceAll(content, "[", "[")
|
content = strings.ReplaceAll(content, "[", "[")
|
||||||
content = strings.ReplaceAll(content, "]", "]")
|
content = strings.ReplaceAll(content, "]", "]")
|
||||||
ctx.SendGroupMessage(
|
ctx.SendGroupMessage(
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 需要发送的群
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 需要发送的群
|
||||||
content, // 需要发送的信息
|
content, // 需要发送的信息
|
||||||
)
|
)
|
||||||
ctx.Send("📧 --> " + ctx.State["regex_matched"].([]string)[1])
|
ctx.Send("📧 --> " + ctx.State["regex_matched"].([]string)[1])
|
||||||
@ -221,7 +221,7 @@ func init() { // 插件主体
|
|||||||
content = strings.ReplaceAll(content, "[", "[")
|
content = strings.ReplaceAll(content, "[", "[")
|
||||||
content = strings.ReplaceAll(content, "]", "]")
|
content = strings.ReplaceAll(content, "]", "]")
|
||||||
ctx.SendPrivateMessage(
|
ctx.SendPrivateMessage(
|
||||||
utils.Str2Int(ctx.State["regex_matched"].([]string)[1]), // 需要发送的人的qq
|
strToInt(ctx.State["regex_matched"].([]string)[1]), // 需要发送的人的qq
|
||||||
content, // 需要发送的信息
|
content, // 需要发送的信息
|
||||||
)
|
)
|
||||||
ctx.Send("📧 --> " + ctx.State["regex_matched"].([]string)[1])
|
ctx.Send("📧 --> " + ctx.State["regex_matched"].([]string)[1])
|
||||||
@ -252,3 +252,8 @@ func init() { // 插件主体
|
|||||||
ctx.Send(cmd)
|
ctx.Send(cmd)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func strToInt(str string) int64 {
|
||||||
|
val, _ := strconv.ParseInt(str, 10, 64)
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
package utils
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
func Int2Str(val int64) string {
|
|
||||||
str := strconv.FormatInt(val, 10)
|
|
||||||
return str
|
|
||||||
}
|
|
||||||
|
|
||||||
func Str2Int(str string) int64 {
|
|
||||||
val, _ := strconv.ParseInt(str, 10, 64)
|
|
||||||
return val
|
|
||||||
}
|
|
||||||
@ -12,31 +12,30 @@ import (
|
|||||||
|
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
|
"github.com/wdvxdr1123/ZeroBot/extension/rate"
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var limit = rate.NewManager(time.Minute*3, 5)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
zero.OnRegex("^酷我点歌(.+?)$").SetBlock(true).FirstPriority().
|
zero.OnRegex("^(.{0,2})点歌(.{1,25})$").SetBlock(true).FirstPriority().
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
ctx.SendChain(kuwo(ctx.State["regex_matched"].([]string)[1]))
|
if !limit.Load(ctx.Event.UserID).Acquire() {
|
||||||
return
|
ctx.Send("请稍后重试0x0...")
|
||||||
})
|
return
|
||||||
|
}
|
||||||
zero.OnRegex("^酷狗点歌(.+?)$").SetBlock(true).FirstPriority().
|
// switch 平台
|
||||||
Handle(func(ctx *zero.Ctx) {
|
switch ctx.State["regex_matched"].([]string)[1] {
|
||||||
ctx.SendChain(kugou(ctx.State["regex_matched"].([]string)[1]))
|
case "酷我":
|
||||||
return
|
ctx.SendChain(kuwo(ctx.State["regex_matched"].([]string)[2]))
|
||||||
})
|
case "酷狗":
|
||||||
|
ctx.SendChain(kugou(ctx.State["regex_matched"].([]string)[2]))
|
||||||
zero.OnRegex("^网易点歌(.+?)$").SetBlock(true).FirstPriority().
|
case "网易":
|
||||||
Handle(func(ctx *zero.Ctx) {
|
ctx.SendChain(cloud163(ctx.State["regex_matched"].([]string)[2]))
|
||||||
ctx.SendChain(cloud163(ctx.State["regex_matched"].([]string)[1]))
|
default: // 默认 QQ音乐
|
||||||
return
|
ctx.SendChain(qqmusic(ctx.State["regex_matched"].([]string)[2]))
|
||||||
})
|
}
|
||||||
|
|
||||||
zero.OnRegex("^点歌(.+?)$").SetBlock(true).FirstPriority().
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
ctx.SendChain(qqmusic(ctx.State["regex_matched"].([]string)[1]))
|
|
||||||
return
|
return
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,7 @@ func init() {
|
|||||||
func init() { // 插件主体
|
func init() { // 插件主体
|
||||||
zero.OnRegex(`^来份(.*)$`, FirstValueInList(PoolList)).SetBlock(true).SetPriority(20).
|
zero.OnRegex(`^来份(.*)$`, FirstValueInList(PoolList)).SetBlock(true).SetPriority(20).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
if limit.Load(ctx.Event.UserID).Acquire() == false {
|
if !limit.Load(ctx.Event.UserID).Acquire() {
|
||||||
ctx.Send("请稍后重试0x0...")
|
ctx.Send("请稍后重试0x0...")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user