feat:添加青云客接口

This commit is contained in:
haibaraguo 2021-09-02 09:48:18 +08:00
parent 47aa6213bf
commit 060e167dc7
5 changed files with 25971 additions and 2 deletions

View File

@ -1,4 +1,4 @@
package main package main
import ( import (
"fmt" "fmt"
@ -10,6 +10,7 @@ import (
// 词库类 // 词库类
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_atri" // ATRI词库 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_atri" // ATRI词库
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_chat" // 基础词库 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_chat" // 基础词库
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_qingyunke" //青云客
// 实用类 // 实用类
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_github" // 搜索GitHub仓库 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_github" // 搜索GitHub仓库
@ -23,6 +24,7 @@ import (
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_music" // 点歌 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_music" // 点歌
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_omikuji" // 浅草寺求签 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_omikuji" // 浅草寺求签
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_shindan" // 测定 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_shindan" // 测定
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_personal" //个人私货
// b站相关 // b站相关
_ "github.com/FloatTech/ZeroBot-Plugin/plugin_bilibili" // 查询b站用户信息 _ "github.com/FloatTech/ZeroBot-Plugin/plugin_bilibili" // 查询b站用户信息
@ -74,7 +76,7 @@ func main() {
// SuperUsers 某些功能需要主人权限,可通过以下两种方式修改 // SuperUsers 某些功能需要主人权限,可通过以下两种方式修改
// []string{}:通过代码写死的方式添加主人账号 // []string{}:通过代码写死的方式添加主人账号
// os.Args[1:]:通过命令行参数的方式添加主人账号 // os.Args[1:]:通过命令行参数的方式添加主人账号
SuperUsers: append([]string{"12345678", "87654321"}, os.Args[1:]...), SuperUsers: append([]string{"1156544355","1846515440","1776620359"}, os.Args[1:]...),
Driver: []zero.Driver{ Driver: []zero.Driver{
&driver.WSClient{ &driver.WSClient{

25737
nohup.out Normal file

File diff suppressed because it is too large Load Diff

View File

@ -25,16 +25,20 @@ var (
func init() { // 插件主体 func init() { // 插件主体
zero.OnFullMatch("ATRI醒醒", zero.AdminPermission).SetBlock(true).SetPriority(prio). zero.OnFullMatch("ATRI醒醒", zero.AdminPermission).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
enable = true enable = true
time.Sleep(time.Second * 1)
ctx.SendChain(randText("嗯呜呜……夏生先生……?")) ctx.SendChain(randText("嗯呜呜……夏生先生……?"))
}) })
zero.OnFullMatch("ATRI睡吧", zero.AdminPermission).SetBlock(true).SetPriority(prio). zero.OnFullMatch("ATRI睡吧", zero.AdminPermission).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
enable = false enable = false
time.Sleep(time.Second * 1)
ctx.SendChain(randText("Zzz……Zzz……")) ctx.SendChain(randText("Zzz……Zzz……"))
}) })
zero.OnFullMatch("萝卜子", atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio). zero.OnFullMatch("萝卜子", atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
switch rand.Intn(2) { switch rand.Intn(2) {
case 0: case 0:
ctx.SendChain(randText("萝卜子是对机器人的蔑称!", "是亚托莉......萝卜子可是对机器人的蔑称")) ctx.SendChain(randText("萝卜子是对机器人的蔑称!", "是亚托莉......萝卜子可是对机器人的蔑称"))
@ -44,12 +48,21 @@ func init() { // 插件主体
}) })
zero.OnKeywordGroup([]string{"喜欢", "爱你", "爱", "suki", "daisuki", "すき", "好き", "贴贴", "老婆", "亲一个", "mua"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio). zero.OnKeywordGroup([]string{"喜欢", "爱你", "爱", "suki", "daisuki", "すき", "好き", "贴贴", "老婆", "亲一个", "mua"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
if rand.Intn(10) == 0 { if rand.Intn(10) == 0 {
ctx.SendChain(randImage("SUKI.jpg", "SUKI1.jpg", "SUKI2.png")) ctx.SendChain(randImage("SUKI.jpg", "SUKI1.jpg", "SUKI2.png"))
}else{
ctx.SendChain(randText(
"椛椛不是你的电子宠物",
"椛椛不爱你,爬",
"你是个好人,你值得更好的归属",
"椛椛已经有主人了",
))
} }
}) })
zero.OnKeywordGroup([]string{"草你妈", "操你妈", "脑瘫", "废柴", "fw", "five", "废物", "战斗", "爬", "爪巴", "sb", "SB", "傻B"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio - 1). zero.OnKeywordGroup([]string{"草你妈", "操你妈", "脑瘫", "废柴", "fw", "five", "废物", "战斗", "爬", "爪巴", "sb", "SB", "傻B"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio - 1).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
ctx.SendChain(randImage("FN.jpg", "WQ.jpg", "WQ1.jpg")) ctx.SendChain(randImage("FN.jpg", "WQ.jpg", "WQ1.jpg"))
}) })
zero.OnFullMatchGroup([]string{"早安", "早哇", "早上好", "ohayo", "哦哈哟", "お早う"}, atriSwitch()).SetBlock(true).SetPriority(prio). zero.OnFullMatchGroup([]string{"早安", "早哇", "早上好", "ohayo", "哦哈哟", "お早う"}, atriSwitch()).SetBlock(true).SetPriority(prio).
@ -57,6 +70,7 @@ func init() { // 插件主体
now := time.Now().Hour() now := time.Now().Hour()
switch { switch {
case now < 6: // 凌晨 case now < 6: // 凌晨
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"zzzz......", "zzzz......",
"zzzzzzzz......", "zzzzzzzz......",
@ -66,6 +80,7 @@ func init() { // 插件主体
"...zzz....哧溜哧溜....", "...zzz....哧溜哧溜....",
)) ))
case now >= 6 && now < 9: case now >= 6 && now < 9:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"啊......早上好...(哈欠)", "啊......早上好...(哈欠)",
"唔......吧唧...早上...哈啊啊~~~\n早上好......", "唔......吧唧...早上...哈啊啊~~~\n早上好......",
@ -78,12 +93,14 @@ func init() { // 插件主体
"早上好......欸~~~脸好近呢", "早上好......欸~~~脸好近呢",
)) ))
case now >= 9 && now < 18: case now >= 9 && now < 18:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"哼!这个点还早啥,昨晚干啥去了!?", "哼!这个点还早啥,昨晚干啥去了!?",
"熬夜了对吧熬夜了对吧熬夜了对吧???!", "熬夜了对吧熬夜了对吧熬夜了对吧???!",
"是不是熬夜是不是熬夜是不是熬夜?!", "是不是熬夜是不是熬夜是不是熬夜?!",
)) ))
case now >= 18 && now < 24: case now >= 18 && now < 24:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"早个啥?哼唧!我都准备洗洗睡了!", "早个啥?哼唧!我都准备洗洗睡了!",
"不是...你看看几点了,哼!", "不是...你看看几点了,哼!",
@ -95,6 +112,7 @@ func init() { // 插件主体
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
now := time.Now().Hour() now := time.Now().Hour()
if now > 11 && now < 15 { // 中午 if now > 11 && now < 15 { // 中午
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"午安w", "午安w",
"午觉要好好睡哦ATRI会陪伴在你身旁的w", "午觉要好好睡哦ATRI会陪伴在你身旁的w",
@ -108,6 +126,7 @@ func init() { // 插件主体
now := time.Now().Hour() now := time.Now().Hour()
switch { switch {
case now < 6: // 凌晨 case now < 6: // 凌晨
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"zzzz......", "zzzz......",
"zzzzzzzz......", "zzzzzzzz......",
@ -117,6 +136,7 @@ func init() { // 插件主体
"...zzz....哧溜哧溜....", "...zzz....哧溜哧溜....",
)) ))
case now >= 6 && now < 11: case now >= 6 && now < 11:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"你可猝死算了吧!", "你可猝死算了吧!",
"?啊这", "?啊这",
@ -124,6 +144,7 @@ func init() { // 插件主体
"不可忍不可忍不可忍!!为何这还不猝死!!", "不可忍不可忍不可忍!!为何这还不猝死!!",
)) ))
case now >= 11 && now < 15: case now >= 11 && now < 15:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"午安w", "午安w",
"午觉要好好睡哦ATRI会陪伴在你身旁的w", "午觉要好好睡哦ATRI会陪伴在你身旁的w",
@ -131,12 +152,14 @@ func init() { // 插件主体
"睡你午觉去!哼唧!!", "睡你午觉去!哼唧!!",
)) ))
case now >= 15 && now < 19: case now >= 15 && now < 19:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"难不成??晚上不想睡觉??现在休息", "难不成??晚上不想睡觉??现在休息",
"就......挺离谱的...现在睡觉", "就......挺离谱的...现在睡觉",
"现在还是白天哦,睡觉还太早了", "现在还是白天哦,睡觉还太早了",
)) ))
case now >= 19 && now < 24: case now >= 19 && now < 24:
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"嗯哼哼~睡吧,就像平常一样安眠吧~o(≧▽≦)o", "嗯哼哼~睡吧,就像平常一样安眠吧~o(≧▽≦)o",
"......(打瞌睡)", "......(打瞌睡)",
@ -147,6 +170,7 @@ func init() { // 插件主体
}) })
zero.OnKeywordGroup([]string{"高性能", "太棒了", "すごい", "sugoi", "斯国一", "よかった"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio). zero.OnKeywordGroup([]string{"高性能", "太棒了", "すごい", "sugoi", "斯国一", "よかった"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"当然,我是高性能的嘛~", "当然,我是高性能的嘛~",
"小事一桩,我是高性能的嘛", "小事一桩,我是高性能的嘛",
@ -167,6 +191,7 @@ func init() { // 插件主体
}) })
zero.OnKeywordGroup([]string{"没事", "没关系", "大丈夫", "还好", "不要紧", "没出大问题", "没伤到哪"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio). zero.OnKeywordGroup([]string{"没事", "没关系", "大丈夫", "还好", "不要紧", "没出大问题", "没伤到哪"}, atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
ctx.SendChain(randText( ctx.SendChain(randText(
"当然,我是高性能的嘛~", "当然,我是高性能的嘛~",
"没事没事,因为我是高性能的嘛!嗯哼!", "没事没事,因为我是高性能的嘛!嗯哼!",
@ -181,22 +206,26 @@ func init() { // 插件主体
zero.OnKeywordGroup([]string{"好吗", "是吗", "行不行", "能不能", "可不可以"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio). zero.OnKeywordGroup([]string{"好吗", "是吗", "行不行", "能不能", "可不可以"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
if rand.Intn(2) == 0 { if rand.Intn(2) == 0 {
ctx.SendChain(randImage("YES.png", "NO.jpg")) ctx.SendChain(randImage("YES.png", "NO.jpg"))
} }
}) })
zero.OnFullMatchGroup([]string{"啊这"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio). zero.OnFullMatchGroup([]string{"啊这"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
if rand.Intn(2) == 0 { if rand.Intn(2) == 0 {
ctx.SendChain(randImage("AZ.jpg", "AZ1.jpg")) ctx.SendChain(randImage("AZ.jpg", "AZ1.jpg"))
} }
}) })
zero.OnFullMatchGroup([]string{"我好了"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio). zero.OnFullMatchGroup([]string{"我好了"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
ctx.SendChain(randText("不许好!", "憋回去!")) ctx.SendChain(randText("不许好!", "憋回去!"))
}) })
zero.OnFullMatchGroup([]string{"", "?", "¿"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio). zero.OnFullMatchGroup([]string{"", "?", "¿"}, atriSwitch(), atriSleep()).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
switch rand.Intn(5) { switch rand.Intn(5) {
case 0: case 0:
ctx.SendChain(randText("?", "", "嗯?", "(。´・ω・)ん?", "ん?")) ctx.SendChain(randText("?", "", "嗯?", "(。´・ω・)ん?", "ん?"))
@ -215,6 +244,7 @@ func init() { // 插件主体
}) })
zero.OnKeyword("答应我", atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio). zero.OnKeyword("答应我", atriSwitch(), atriSleep(), zero.OnlyToMe).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
time.Sleep(time.Second * 1)
ctx.SendChain(randText("我无法回应你的请求")) ctx.SendChain(randText("我无法回应你的请求"))
}) })
} }

View File

@ -0,0 +1,49 @@
package personal
import (
"encoding/json"
"fmt"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
"io/ioutil"
"net/http"
)
func init() {
zero.OnFullMatch("经典台词", zero.OnlyToMe,zero.SuperUserPermission).SetBlock(false).FirstPriority().
Handle(func(ctx *zero.Ctx) {
k:=getDialogue()
arr:= []int64{1197716421,1652997133,657595613,1481003793}
for _,v:= range arr{
ctx.SendPrivateMessage(v,message.Text(k.Newslist[0].Dialogue+" ——《"+k.Newslist[0].Source+"》"))
}
})
}
type TData struct {
Code int `json:"code"`
Msg string `json:"msg"`
Newslist []NData `json:"newslist"`
}
type NData struct {
Dialogue string `json:"dialogue"`
English string `json:"english"`
Source string `json:"source"`
Type int `json:"type"`
}
func getDialogue() TData{
resp,_ := http.Get("http://api.tianapi.com/txapi/dialogue/index?key=4f56c7838d5b064147e71893d14ddeb1")
bytes,_ := ioutil.ReadAll(resp.Body)
fmt.Println(string(bytes))
var r TData
err := json.Unmarshal(bytes, &r)
if err != nil {
fmt.Printf("err was %v", err)
}
return r
}

View File

@ -0,0 +1,151 @@
package qingyunke
import (
"encoding/json"
"fmt"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/extension/rate"
"github.com/wdvxdr1123/ZeroBot/message"
"io/ioutil"
"math/rand"
"net/http"
"regexp"
"strconv"
"strings"
"time"
)
var prio = -1
var poke = rate.NewManager(time.Minute, 20) // 青云客接口回复
var enable = true
func init() { // 插件主体
// 被喊名字
zero.OnRegex("(^.{1,30}$)", zero.OnlyToMe,atriSwitch()).SetBlock(false).FirstPriority().
Handle(func(ctx *zero.Ctx) {
//var nickname = zero.BotConfig.NickName[0]
switch {
case poke.Load(ctx.Event.UserID).Acquire():
time.Sleep(time.Second * 1)
msg := ctx.State["regex_matched"].([]string)[1]
fmt.Println(msg)
reply := getMessage(msg)
reg := regexp.MustCompile(`\{face:(\d+)\}(.*)`)
faceReply := -1
var textReply string
if reg.MatchString(reply) {
fmt.Println(reg.FindStringSubmatch(reply))
faceReply, _ = strconv.Atoi(reg.FindStringSubmatch(reply)[1])
textReply = reg.FindStringSubmatch(reply)[2]
} else {
textReply = reply
}
strings.Replace(textReply,"菲菲","椛椛",-1)
if ctx.Event.DetailType == "group" {
ctx.SendChain(message.Text(textReply))
if faceReply != -1 {
ctx.SendChain(message.Face(faceReply))
}
}
if ctx.Event.DetailType == "private" {
ctx.SendChain(message.Text(textReply))
if faceReply != -1 {
ctx.SendChain(message.Face(faceReply))
}
}
default:
//频繁触发,不回复
}
})
zero.OnFullMatch("启动",zero.SuperUserPermission).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) {
enable = true
ctx.SendChain(message.Text("自动回复启动"))
})
zero.OnFullMatch("关闭",zero.SuperUserPermission).SetBlock(true).SetPriority(prio).
Handle(func(ctx *zero.Ctx) {
enable = false
ctx.SendChain(message.Text("自动回复关闭"))
})
// 群空调
}
type Data struct {
Result int `json:"result"`
Content string `json:"content"`
}
func getMessage(msg string) string {
url := "http://api.qingyunke.com/api.php"
key := "free"
appid := "0"
//msg := "早上好"
url = fmt.Sprintf(url+"?key=%s&appid=%s&msg=%s", key, appid, msg)
fmt.Println(url)
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
fmt.Println("new.request", err)
}
// 自定义Header
req.Header.Set("User-Agent", getAgent())
req.Header.Set("Connection", "keep-alive")
req.Header.Set("Host", "api.qingyunke.com")
resp, err := client.Do(req)
if err != nil {
fmt.Println("http.get.url", err)
}
defer resp.Body.Close()
bytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("ioutil.ReadAll", err)
}
fmt.Println(string(bytes))
var data Data
if err := json.Unmarshal(bytes, &data); err != nil {
fmt.Println("json transform", err)
}
return data.Content
}
func getAgent() string {
agent := [...]string{
"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0",
"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
"Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
"Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",
"User-Agent,Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"User-Agent, Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
"User-Agent,Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
len1 := len(agent)
return agent[r.Intn(len1)]
}
func atriSwitch() zero.Rule {
return func(ctx *zero.Ctx) bool {
return enable
}
}