mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
* 优化在两个命令中使用空格分隔的体验 - fortune的设置底图功能 - b14的加密功能 * 优化四个插件中使用空格分隔的体验 - 加密 - 哔哩哔哩推送 - 藏头诗 - 运势 * 优化并修正了上一个commit - 加上了因为复制粘贴疏忽又没有注意测试遗漏的`?` - 调整藏头诗和加密的正则触发,使其不必多此一举 - 删去了未被发现的测试代码 * - 删去了遗漏的Trim * 优化了更多插件中使用空格的体验 - 优化了music bilibili image_finder 中使用空格的体验 - 补上了plugin_bilibili中未实现的vup开头触发 - 为plugin_bilibili_parse输出的消息加上一个换行符,优化排版 * - 调整funny - 补回readme中bilibili_push的注释说明 * - 简化funny说明 * feat:抽塔罗牌 * 🎨 改进代码样式 * 加上一个换行符 * 🎨 改进代码样式 * - At用户 * 🎨 改进代码样式 * -改进抽塔罗牌 * typo: 小写struct名 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
267 lines
13 KiB
Go
267 lines
13 KiB
Go
package main
|
||
|
||
import (
|
||
"encoding/json"
|
||
"flag"
|
||
"fmt"
|
||
"math/rand"
|
||
"os"
|
||
"strconv"
|
||
"time"
|
||
|
||
"github.com/FloatTech/ZeroBot-Plugin/kanban" // 在最前打印 banner
|
||
|
||
// ---------以下插件均可通过前面加 // 注释,注释后停用并不加载插件--------- //
|
||
// ----------------------插件优先级按顺序从高到低---------------------- //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// ----------------------------高优先级区---------------------------- //
|
||
// vvvvvvvvvvvvvvvvvvvvvvvvvvvv高优先级区vvvvvvvvvvvvvvvvvvvvvvvvvvvv //
|
||
// vvvvvvvvvvvvvv高优先级区vvvvvvvvvvvvvv //
|
||
// vvvvvvv高优先级区vvvvvvv //
|
||
// vvvvvvvvvvvvvv //
|
||
// vvvv //
|
||
|
||
// webctrl "github.com/FloatTech/zbputils/control/web" // web 后端控制
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/chat" // 基础词库
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/sleep_manage" // 统计睡眠时间
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/atri" // ATRI词库
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/manager" // 群管
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/thesaurus" // 词典匹配回复
|
||
|
||
_ "github.com/FloatTech/zbputils/job" // 定时指令触发器
|
||
|
||
// ^^^^ //
|
||
// ^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^高优先级区^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^高优先级区^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^高优先级区^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
|
||
// ----------------------------高优先级区---------------------------- //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// ----------------------------中优先级区---------------------------- //
|
||
// vvvvvvvvvvvvvvvvvvvvvvvvvvvv中优先级区vvvvvvvvvvvvvvvvvvvvvvvvvvvv //
|
||
// vvvvvvvvvvvvvv中优先级区vvvvvvvvvvvvvv //
|
||
// vvvvvvv中优先级区vvvvvvv //
|
||
// vvvvvvvvvvvvvv //
|
||
// vvvv //
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/ai_false" // 服务器监控
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/aiwife" // 随机老婆
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/b14" // base16384加解密
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/baidu" // 百度一下
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili" // 查询b站用户信息
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili_parse" // b站视频链接解析
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/book_review" // 哀伤雪刃吧推书记录
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/cangtoushi" // 藏头诗
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/choose" // 选择困难症帮手
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/chouxianghua" // 说抽象话
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/coser" // 三次元小姐姐
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/cpstory" // cp短打
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/danbooru" // DeepDanbooru二次元图标签识别
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/diana" // 嘉心糖发病
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/drift_bottle" // 漂流瓶
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/emojimix" // 合成emoji
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/epidemic" // 城市疫情查询
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/font" // 渲染任意文字到图片
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/fortune" // 运势
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/funny" // 笑话
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/genshin" // 原神抽卡
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/gif" // 制图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/github" // 搜索GitHub仓库
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/hs" // 炉石
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/hyaku" // 百人一首
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/image_finder" // 关键字搜图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/inject" // 注入指令
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/jandan" // 煎蛋网无聊图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/juejuezi" // 绝绝子生成器
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/lolicon" // lolicon 随机图片
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/moyu" // 摸鱼
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/moyu_calendar" // 摸鱼人日历
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/music" // 点歌
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/nativesetu" // 本地涩图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/nativewife" // 本地老婆
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/nbnhhsh" // 拼音首字母缩写释义工具
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/novel" // 铅笔小说网搜索
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/nsfw" // nsfw图片识别
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/omikuji" // 浅草寺求签
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/reborn" // 投胎
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/runcode" // 在线运行代码
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/saucenao" // 以图搜图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/scale" // 叔叔的AI二次元图片放大
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/score" // 分数
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/setutime" // 来份涩图
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/shadiao" // 沙雕app
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/shindan" // 测定
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/tarot" // 抽塔罗牌
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/tiangou" // 舔狗日记
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/tracemoe" // 搜番
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/translation" // 翻译
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/vtb_quotation" // vtb语录
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wangyiyun" // 网易云音乐热评
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/word_count" // 聊天热词
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/wordle" // 猜单词
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/ymgal" // 月幕galgame
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/zaobao" // 早报
|
||
|
||
// _ "github.com/FloatTech/ZeroBot-Plugin/plugin/wtf" // 鬼东西
|
||
// _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili_push" // b站推送
|
||
|
||
// ^^^^ //
|
||
// ^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^中优先级区^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^中优先级区^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^中优先级区^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
|
||
// ----------------------------中优先级区---------------------------- //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// ----------------------------低优先级区---------------------------- //
|
||
// vvvvvvvvvvvvvvvvvvvvvvvvvvvv低优先级区vvvvvvvvvvvvvvvvvvvvvvvvvvvv //
|
||
// vvvvvvvvvvvvvv低优先级区vvvvvvvvvvvvvv //
|
||
// vvvvvvv低优先级区vvvvvvv //
|
||
// vvvvvvvvvvvvvv //
|
||
// vvvv //
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/curse" // 骂人
|
||
|
||
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/ai_reply" // 人工智能回复
|
||
|
||
// ^^^^ //
|
||
// ^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^低优先级区^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^低优先级区^^^^^^^^^^^^^^ //
|
||
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^低优先级区^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
|
||
// ----------------------------低优先级区---------------------------- //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// //
|
||
// -----------------------以下为内置依赖,勿动------------------------ //
|
||
"github.com/FloatTech/zbputils/process"
|
||
"github.com/sirupsen/logrus"
|
||
zero "github.com/wdvxdr1123/ZeroBot"
|
||
"github.com/wdvxdr1123/ZeroBot/driver"
|
||
"github.com/wdvxdr1123/ZeroBot/message"
|
||
// -----------------------以上为内置依赖,勿动------------------------ //
|
||
)
|
||
|
||
func init() {
|
||
sus := make([]int64, 0, 16)
|
||
// 解析命令行参数
|
||
// 输入 `-g 监听地址:端口` 指定 gui 访问地址,默认 127.0.0.1:3000
|
||
// g := flag.String("g", "127.0.0.1:3000", "Set web gui listening address.")
|
||
d := flag.Bool("d", false, "Enable debug level log and higher.")
|
||
w := flag.Bool("w", false, "Enable warning level log and higher.")
|
||
h := flag.Bool("h", false, "Display this help.")
|
||
// 直接写死 AccessToken 时,请更改下面第二个参数
|
||
token := flag.String("t", "", "Set AccessToken of WSClient.")
|
||
// 直接写死 URL 时,请更改下面第二个参数
|
||
url := flag.String("u", "ws://127.0.0.1:6700", "Set Url of WSClient.")
|
||
// 默认昵称
|
||
adana := flag.String("n", "椛椛", "Set default nickname.")
|
||
prefix := flag.String("p", "/", "Set command prefix.")
|
||
runcfg := flag.String("c", "", "Run from config file.")
|
||
save := flag.String("s", "", "Save default config to file and exit.")
|
||
|
||
flag.Parse()
|
||
|
||
if *h {
|
||
kanban.PrintBanner()
|
||
fmt.Println("Usage:")
|
||
flag.PrintDefaults()
|
||
os.Exit(0)
|
||
} else {
|
||
if *d && !*w {
|
||
logrus.SetLevel(logrus.DebugLevel)
|
||
}
|
||
if *w {
|
||
logrus.SetLevel(logrus.WarnLevel)
|
||
}
|
||
}
|
||
|
||
for _, s := range flag.Args() {
|
||
i, err := strconv.ParseInt(s, 10, 64)
|
||
if err != nil {
|
||
continue
|
||
}
|
||
sus = append(sus, i)
|
||
}
|
||
|
||
// 通过代码写死的方式添加主人账号
|
||
// sus = append(sus, 12345678)
|
||
// sus = append(sus, 87654321)
|
||
|
||
// 启用 gui
|
||
// webctrl.InitGui(*g)
|
||
|
||
if *runcfg != "" {
|
||
f, err := os.Open(*runcfg)
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
config.W = make([]*driver.WSClient, 0, 2)
|
||
err = json.NewDecoder(f).Decode(&config)
|
||
f.Close()
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
config.Z.Driver = make([]zero.Driver, len(config.W))
|
||
for i, w := range config.W {
|
||
config.Z.Driver[i] = w
|
||
}
|
||
logrus.Infoln("[main] 从", *runcfg, "读取配置文件")
|
||
return
|
||
}
|
||
|
||
config.W = []*driver.WSClient{driver.NewWebSocketClient(*url, *token)}
|
||
config.Z = zero.Config{
|
||
NickName: append([]string{*adana}, "ATRI", "atri", "亚托莉", "アトリ"),
|
||
CommandPrefix: *prefix,
|
||
SuperUsers: sus,
|
||
Driver: []zero.Driver{config.W[0]},
|
||
}
|
||
|
||
if *save != "" {
|
||
f, err := os.Create(*save)
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
err = json.NewEncoder(f).Encode(&config)
|
||
f.Close()
|
||
if err != nil {
|
||
panic(err)
|
||
}
|
||
logrus.Infoln("[main] 配置文件已保存到", *save)
|
||
os.Exit(0)
|
||
}
|
||
}
|
||
|
||
func main() {
|
||
rand.Seed(time.Now().UnixNano()) // 全局 seed,其他插件无需再 seed
|
||
// 帮助
|
||
zero.OnFullMatchGroup([]string{"/help", ".help", "菜单"}, zero.OnlyToMe).SetBlock(true).
|
||
Handle(func(ctx *zero.Ctx) {
|
||
ctx.SendChain(message.Text(kanban.Banner, "\n可发送\"/服务列表\"查看 bot 功能"))
|
||
})
|
||
zero.OnFullMatch("查看zbp公告", zero.OnlyToMe, zero.AdminPermission).SetBlock(true).
|
||
Handle(func(ctx *zero.Ctx) {
|
||
ctx.SendChain(message.Text(kanban.Kanban()))
|
||
})
|
||
zero.RunAndBlock(config.Z, process.GlobalInitMutex.Unlock)
|
||
}
|