mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
🔥 drop ioutil
This commit is contained in:
parent
81d6a06dbe
commit
edd9feb8f8
@ -1,6 +1,6 @@
|
|||||||
linters-settings:
|
linters-settings:
|
||||||
errcheck:
|
errcheck:
|
||||||
ignore: fmt:.*,io/ioutil:^Read.*
|
ignore: fmt:.*
|
||||||
ignoretests: true
|
ignoretests: true
|
||||||
|
|
||||||
goimports:
|
goimports:
|
||||||
|
|||||||
@ -250,7 +250,6 @@ print("run[CQ:image,file="+j["img"]+"]")
|
|||||||
- **bilibili** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili"`
|
- **bilibili** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili"`
|
||||||
- [x] >vup info [名字 | uid]
|
- [x] >vup info [名字 | uid]
|
||||||
- [x] >user info [名字 | uid]
|
- [x] >user info [名字 | uid]
|
||||||
- [x] /开启粉丝日报
|
|
||||||
- **嘉然** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/diana"`
|
- **嘉然** `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/diana"`
|
||||||
- [x] 小作文
|
- [x] 小作文
|
||||||
- [x] 发大病
|
- [x] 发大病
|
||||||
|
|||||||
@ -1,165 +0,0 @@
|
|||||||
package bilibili
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"net/http"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
control "github.com/FloatTech/zbputils/control"
|
|
||||||
"github.com/FloatTech/zbputils/process"
|
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
|
||||||
|
|
||||||
"github.com/FloatTech/zbputils/control/order"
|
|
||||||
)
|
|
||||||
|
|
||||||
type follower struct {
|
|
||||||
Mid int `json:"mid"`
|
|
||||||
Uname string `json:"uname"`
|
|
||||||
Video int `json:"video"`
|
|
||||||
Roomid int `json:"roomid"`
|
|
||||||
Rise int `json:"rise"`
|
|
||||||
Follower int `json:"follower"`
|
|
||||||
GuardNum int `json:"guardNum"`
|
|
||||||
AreaRank int `json:"areaRank"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// 开启日报推送
|
|
||||||
func init() {
|
|
||||||
fansDaily()
|
|
||||||
en := control.Register("fansdaily", order.AcquirePrio(), &control.Options{
|
|
||||||
DisableOnDefault: true,
|
|
||||||
Help: "fansdaily\n- /开启粉丝日报\n- /关闭粉丝日报",
|
|
||||||
})
|
|
||||||
zero.OnCommand("开启粉丝日报", zero.AdminPermission).SetBlock(true).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
m, ok := control.Lookup("fansdaily")
|
|
||||||
if ok {
|
|
||||||
if m.IsEnabledIn(ctx.Event.GroupID) {
|
|
||||||
ctx.Send(message.Text("已启用!"))
|
|
||||||
} else {
|
|
||||||
m.Enable(ctx.Event.GroupID)
|
|
||||||
ctx.Send(message.Text("添加成功!"))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ctx.Send(message.Text("找不到该服务!"))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
en.OnCommand("关闭粉丝日报", zero.AdminPermission).SetBlock(true).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
m, ok := control.Lookup("fansdaily")
|
|
||||||
if ok {
|
|
||||||
if m.IsEnabledIn(ctx.Event.GroupID) {
|
|
||||||
m.Disable(ctx.Event.GroupID)
|
|
||||||
ctx.Send(message.Text("关闭成功!"))
|
|
||||||
} else {
|
|
||||||
ctx.Send(message.Text("未启用!"))
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ctx.Send(message.Text("找不到该服务!"))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 定时任务每天晚上最后2分钟执行一次
|
|
||||||
func fansDaily() {
|
|
||||||
_, err := process.CronTab.AddFunc("58 23 * * *", func() { sendNotice() })
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取数据拼接消息链并发送
|
|
||||||
func getMsg() message.MessageSegment {
|
|
||||||
var (
|
|
||||||
diana = fansapi("672328094")
|
|
||||||
ava = fansapi("672346917")
|
|
||||||
eileen = fansapi("672342685")
|
|
||||||
bella = fansapi("672353429")
|
|
||||||
carol = fansapi("351609538")
|
|
||||||
)
|
|
||||||
return message.Text(
|
|
||||||
time.Now().Format("2006-01-02"), " Asoul全团粉丝日报如下", "\n\n",
|
|
||||||
"uid: ", diana.Mid, "\n",
|
|
||||||
"名字: ", diana.Uname, "\n",
|
|
||||||
"当前粉丝数: ", diana.Follower, "\n",
|
|
||||||
"今日涨粉数: ", diana.Rise, "\n",
|
|
||||||
"视频投稿数: ", diana.Video, "\n",
|
|
||||||
"直播间id: ", diana.Roomid, "\n",
|
|
||||||
"舰队: ", diana.GuardNum, "\n",
|
|
||||||
"直播总排名: ", diana.AreaRank, "\n",
|
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", "672328094", "\n\n",
|
|
||||||
|
|
||||||
"uid: ", ava.Mid, "\n",
|
|
||||||
"名字: ", ava.Uname, "\n",
|
|
||||||
"当前粉丝数: ", ava.Follower, "\n",
|
|
||||||
"今日涨粉数: ", ava.Rise, "\n",
|
|
||||||
"视频投稿数: ", ava.Video, "\n",
|
|
||||||
"直播间id: ", ava.Roomid, "\n",
|
|
||||||
"舰队: ", ava.GuardNum, "\n",
|
|
||||||
"直播总排名: ", ava.AreaRank, "\n",
|
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", "672346917", "\n\n",
|
|
||||||
|
|
||||||
"uid: ", eileen.Mid, "\n",
|
|
||||||
"名字: ", eileen.Uname, "\n",
|
|
||||||
"当前粉丝数: ", eileen.Follower, "\n",
|
|
||||||
"今日涨粉数: ", eileen.Rise, "\n",
|
|
||||||
"视频投稿数: ", eileen.Video, "\n",
|
|
||||||
"直播间id: ", eileen.Roomid, "\n",
|
|
||||||
"舰队: ", eileen.GuardNum, "\n",
|
|
||||||
"直播总排名: ", eileen.AreaRank, "\n",
|
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", "672342685", "\n\n",
|
|
||||||
|
|
||||||
"uid: ", bella.Mid, "\n",
|
|
||||||
"名字: ", bella.Uname, "\n",
|
|
||||||
"当前粉丝数: ", bella.Follower, "\n",
|
|
||||||
"今日涨粉数: ", bella.Rise, "\n",
|
|
||||||
"视频投稿数: ", bella.Video, "\n",
|
|
||||||
"直播间id: ", bella.Roomid, "\n",
|
|
||||||
"舰队: ", bella.GuardNum, "\n",
|
|
||||||
"直播总排名: ", bella.AreaRank, "\n",
|
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", "672353429", "\n\n",
|
|
||||||
|
|
||||||
"uid: ", carol.Mid, "\n",
|
|
||||||
"名字: ", carol.Uname, "\n",
|
|
||||||
"当前粉丝数: ", carol.Follower, "\n",
|
|
||||||
"今日涨粉数: ", carol.Rise, "\n",
|
|
||||||
"视频投稿数: ", carol.Video, "\n",
|
|
||||||
"直播间id: ", carol.Roomid, "\n",
|
|
||||||
"舰队: ", carol.GuardNum, "\n",
|
|
||||||
"直播总排名: ", carol.AreaRank, "\n",
|
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", "351609538",
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取数据拼接消息链并发送
|
|
||||||
func sendNotice() {
|
|
||||||
m, ok := control.Lookup("fansdaily")
|
|
||||||
if ok {
|
|
||||||
msg := getMsg()
|
|
||||||
zero.RangeBot(func(id int64, ctx *zero.Ctx) bool {
|
|
||||||
for _, g := range ctx.GetGroupList().Array() {
|
|
||||||
grp := g.Get("group_id").Int()
|
|
||||||
if m.IsEnabledIn(grp) {
|
|
||||||
ctx.SendGroupMessage(grp, msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 请求api
|
|
||||||
func fansapi(uid string) *follower {
|
|
||||||
url := "https://api.vtbs.moe/v1/detail/" + uid
|
|
||||||
resp, err := http.Get(url)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
result := &follower{}
|
|
||||||
if err := json.NewDecoder(resp.Body).Decode(result); err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
@ -2,7 +2,7 @@
|
|||||||
package bilibili
|
package bilibili
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
control "github.com/FloatTech/zbputils/control"
|
control "github.com/FloatTech/zbputils/control"
|
||||||
@ -47,7 +47,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(res.Body)
|
body, err := io.ReadAll(res.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
return
|
return
|
||||||
|
|||||||
@ -1,11 +1,12 @@
|
|||||||
package bilibili
|
package bilibili
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/FloatTech/zbputils/web"
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
@ -23,37 +24,62 @@ func init() {
|
|||||||
}
|
}
|
||||||
id := res.Get("data.result.0.mid").String()
|
id := res.Get("data.result.0.mid").String()
|
||||||
// 获取详情
|
// 获取详情
|
||||||
json := fansapi(id)
|
fo, err := fansapi(id)
|
||||||
|
if err != nil {
|
||||||
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
|
return
|
||||||
|
}
|
||||||
ctx.SendChain(message.Text(
|
ctx.SendChain(message.Text(
|
||||||
"uid: ", json.Mid, "\n",
|
"uid: ", fo.Mid, "\n",
|
||||||
"名字: ", json.Uname, "\n",
|
"名字: ", fo.Uname, "\n",
|
||||||
"当前粉丝数: ", json.Follower, "\n",
|
"当前粉丝数: ", fo.Follower, "\n",
|
||||||
"24h涨粉数: ", json.Rise, "\n",
|
"24h涨粉数: ", fo.Rise, "\n",
|
||||||
"视频投稿数: ", json.Video, "\n",
|
"视频投稿数: ", fo.Video, "\n",
|
||||||
"直播间id: ", json.Roomid, "\n",
|
"直播间id: ", fo.Roomid, "\n",
|
||||||
"舰队: ", json.GuardNum, "\n",
|
"舰队: ", fo.GuardNum, "\n",
|
||||||
"直播总排名: ", json.AreaRank, "\n",
|
"直播总排名: ", fo.AreaRank, "\n",
|
||||||
"数据来源: ", "https://vtbs.moe/detail/", json.Mid, "\n",
|
"数据来源: ", "https://vtbs.moe/detail/", fo.Mid, "\n",
|
||||||
"数据获取时间: ", time.Now().Format("2006-01-02 15:04:05"),
|
"数据获取时间: ", time.Now().Format("2006-01-02 15:04:05"),
|
||||||
))
|
))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 搜索api:通过把触发指令传入的昵称找出uid返回
|
// 搜索api:通过把触发指令传入的昵称找出uid返回
|
||||||
func uid(keyword string) (gjson.Result, error) {
|
func uid(keyword string) (*gjson.Result, error) {
|
||||||
api := "http://api.bilibili.com/x/web-interface/search/type?search_type=bili_user&&user_type=1&keyword=" + keyword
|
api := "http://api.bilibili.com/x/web-interface/search/type?search_type=bili_user&&user_type=1&keyword=" + keyword
|
||||||
resp, err := http.Get(api)
|
data, err := web.GetData(api)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return gjson.Result{}, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if resp.StatusCode != http.StatusOK {
|
|
||||||
return gjson.Result{}, errors.New("code not 200")
|
|
||||||
}
|
|
||||||
data, _ := ioutil.ReadAll(resp.Body)
|
|
||||||
resp.Body.Close()
|
|
||||||
json := gjson.ParseBytes(data)
|
json := gjson.ParseBytes(data)
|
||||||
if json.Get("data.numResults").Int() == 0 {
|
if json.Get("data.numResults").Int() == 0 {
|
||||||
return gjson.Result{}, errors.New("查无此人")
|
return nil, errors.New("查无此人")
|
||||||
}
|
}
|
||||||
return json, nil
|
return &json, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type follower struct {
|
||||||
|
Mid int `json:"mid"`
|
||||||
|
Uname string `json:"uname"`
|
||||||
|
Video int `json:"video"`
|
||||||
|
Roomid int `json:"roomid"`
|
||||||
|
Rise int `json:"rise"`
|
||||||
|
Follower int `json:"follower"`
|
||||||
|
GuardNum int `json:"guardNum"`
|
||||||
|
AreaRank int `json:"areaRank"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// 请求api
|
||||||
|
func fansapi(uid string) (*follower, error) {
|
||||||
|
url := "https://api.vtbs.moe/v1/detail/" + uid
|
||||||
|
resp, err := http.Get(url)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer resp.Body.Close()
|
||||||
|
result := &follower{}
|
||||||
|
if err := json.NewDecoder(resp.Body).Decode(result); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ package github
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@ -119,7 +119,7 @@ func netGet(dest string, header http.Header) ([]byte, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
23
plugin/inject/main.go
Normal file
23
plugin/inject/main.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Package inject 注入指令
|
||||||
|
package inject
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/FloatTech/zbputils/control"
|
||||||
|
"github.com/FloatTech/zbputils/control/order"
|
||||||
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
en := control.Register("inject", order.AcquirePrio(), &control.Options{
|
||||||
|
DisableOnDefault: false,
|
||||||
|
Help: "注入指令\n" +
|
||||||
|
"- run[CQ码]",
|
||||||
|
})
|
||||||
|
// 运行 CQ 码
|
||||||
|
en.OnPrefix("run", zero.SuperUserPermission).SetBlock(true).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
// 可注入,权限为主人
|
||||||
|
ctx.Send(message.UnescapeCQCodeText(ctx.State["args"].(string)))
|
||||||
|
})
|
||||||
|
}
|
||||||
@ -2,8 +2,6 @@
|
|||||||
package lolicon
|
package lolicon
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -16,6 +14,7 @@ import (
|
|||||||
"github.com/FloatTech/zbputils/img/pool"
|
"github.com/FloatTech/zbputils/img/pool"
|
||||||
"github.com/FloatTech/zbputils/math"
|
"github.com/FloatTech/zbputils/math"
|
||||||
"github.com/FloatTech/zbputils/process"
|
"github.com/FloatTech/zbputils/process"
|
||||||
|
"github.com/FloatTech/zbputils/web"
|
||||||
|
|
||||||
"github.com/FloatTech/zbputils/control/order"
|
"github.com/FloatTech/zbputils/control/order"
|
||||||
)
|
)
|
||||||
@ -38,17 +37,11 @@ func init() {
|
|||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
go func() {
|
go func() {
|
||||||
for i := 0; i < math.Min(cap(queue)-len(queue), 2); i++ {
|
for i := 0; i < math.Min(cap(queue)-len(queue), 2); i++ {
|
||||||
resp, err := http.Get(api)
|
data, err := web.GetData(api)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if resp.StatusCode != http.StatusOK {
|
|
||||||
ctx.SendChain(message.Text("ERROR: code ", resp.StatusCode))
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
data, _ := ioutil.ReadAll(resp.Body)
|
|
||||||
resp.Body.Close()
|
|
||||||
json := gjson.ParseBytes(data)
|
json := gjson.ParseBytes(data)
|
||||||
if e := json.Get("error").Str; e != "" {
|
if e := json.Get("error").Str; e != "" {
|
||||||
ctx.SendChain(message.Text("ERROR: ", e))
|
ctx.SendChain(message.Text("ERROR: ", e))
|
||||||
|
|||||||
@ -509,12 +509,6 @@ func init() { // 插件主体
|
|||||||
}
|
}
|
||||||
ctx.SendChain(message.Text("找不到服务!"))
|
ctx.SendChain(message.Text("找不到服务!"))
|
||||||
})
|
})
|
||||||
// 运行 CQ 码
|
|
||||||
engine.OnRegex(`^run(.*)$`, zero.SuperUserPermission).SetBlock(true).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
// 可注入,权限为主人
|
|
||||||
ctx.Send(message.UnescapeCQCodeText(ctx.State["regex_matched"].([]string)[1]))
|
|
||||||
})
|
|
||||||
// 根据 gist 自动同意加群
|
// 根据 gist 自动同意加群
|
||||||
// 加群请在github新建一个gist,其文件名为本群群号的字符串的md5(小写),内容为一行,是当前unix时间戳(10分钟内有效)。
|
// 加群请在github新建一个gist,其文件名为本群群号的字符串的md5(小写),内容为一行,是当前unix时间戳(10分钟内有效)。
|
||||||
// 然后请将您的用户名和gist哈希(小写)按照username/gisthash的格式填写到回答即可。
|
// 然后请将您的用户名和gist哈希(小写)按照username/gisthash的格式填写到回答即可。
|
||||||
|
|||||||
@ -5,7 +5,7 @@ import (
|
|||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@ -231,7 +231,7 @@ func netGet(url string, header http.Header) []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
result, _ := ioutil.ReadAll(res.Body)
|
result, _ := io.ReadAll(res.Body)
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,6 +245,6 @@ func netPost(url string, data url.Values, header http.Header) []byte {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
result, _ := ioutil.ReadAll(res.Body)
|
result, _ := io.ReadAll(res.Body)
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
package nbnhhsh
|
package nbnhhsh
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@ -31,7 +31,7 @@ func getValue(text string) []string {
|
|||||||
urlValues.Add("text", text)
|
urlValues.Add("text", text)
|
||||||
resp, err := http.PostForm("https://lab.magiconch.com/api/nbnhhsh/guess", urlValues)
|
resp, err := http.PostForm("https://lab.magiconch.com/api/nbnhhsh/guess", urlValues)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
body, err := io.ReadAll(resp.Body)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
json := gjson.ParseBytes(body)
|
json := gjson.ParseBytes(body)
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package novel
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/cookiejar"
|
"net/http/cookiejar"
|
||||||
"net/url"
|
"net/url"
|
||||||
@ -164,7 +164,7 @@ func search(searchKey string) (searchHTML string) {
|
|||||||
log.Errorln("[novel]", err)
|
log.Errorln("[novel]", err)
|
||||||
}
|
}
|
||||||
defer searchResp.Body.Close()
|
defer searchResp.Body.Close()
|
||||||
searchData, err := ioutil.ReadAll(searchResp.Body)
|
searchData, err := io.ReadAll(searchResp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("[novel] get response for url=%s got error=%s\n", searchURL, err.Error())
|
log.Errorf("[novel] get response for url=%s got error=%s\n", searchURL, err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package runcode
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"io/ioutil"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
@ -181,7 +181,7 @@ func runCode(code string, runType [2]string) (string, error) {
|
|||||||
if body.StatusCode != http.StatusOK {
|
if body.StatusCode != http.StatusOK {
|
||||||
return "", errors.New("code not 200")
|
return "", errors.New("code not 200")
|
||||||
}
|
}
|
||||||
res, err := ioutil.ReadAll(body.Body)
|
res, err := io.ReadAll(body.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,11 +2,6 @@
|
|||||||
package translation
|
package translation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"github.com/tidwall/gjson"
|
"github.com/tidwall/gjson"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/message"
|
"github.com/wdvxdr1123/ZeroBot/message"
|
||||||
@ -14,29 +9,11 @@ import (
|
|||||||
control "github.com/FloatTech/zbputils/control"
|
control "github.com/FloatTech/zbputils/control"
|
||||||
"github.com/FloatTech/zbputils/ctxext"
|
"github.com/FloatTech/zbputils/ctxext"
|
||||||
"github.com/FloatTech/zbputils/process"
|
"github.com/FloatTech/zbputils/process"
|
||||||
|
"github.com/FloatTech/zbputils/web"
|
||||||
|
|
||||||
"github.com/FloatTech/zbputils/control/order"
|
"github.com/FloatTech/zbputils/control/order"
|
||||||
)
|
)
|
||||||
|
|
||||||
func tl(d string) ([]byte, error) {
|
|
||||||
url := "https://api.cloolc.club/fanyi?data=" + d
|
|
||||||
resp, err := http.Get(url)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(err)
|
|
||||||
}
|
|
||||||
data, err := ioutil.ReadAll(resp.Body)
|
|
||||||
_ = resp.Body.Close()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if code := resp.StatusCode; code != 200 {
|
|
||||||
// 如果返回不是200则立刻抛出错误
|
|
||||||
errmsg := fmt.Sprintf("code %d", code)
|
|
||||||
return nil, errors.New(errmsg)
|
|
||||||
}
|
|
||||||
return data, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
control.Register("translation", order.AcquirePrio(), &control.Options{
|
control.Register("translation", order.AcquirePrio(), &control.Options{
|
||||||
DisableOnDefault: false,
|
DisableOnDefault: false,
|
||||||
@ -45,11 +22,11 @@ func init() {
|
|||||||
}).OnRegex(`^>TL\s(-.{1,10}? )?(.*)$`).SetBlock(true).Limit(ctxext.LimitByUser).
|
}).OnRegex(`^>TL\s(-.{1,10}? )?(.*)$`).SetBlock(true).Limit(ctxext.LimitByUser).
|
||||||
Handle(func(ctx *zero.Ctx) {
|
Handle(func(ctx *zero.Ctx) {
|
||||||
msg := []string{ctx.State["regex_matched"].([]string)[2]}
|
msg := []string{ctx.State["regex_matched"].([]string)[2]}
|
||||||
rely, err := tl(msg[0])
|
data, err := web.GetData("https://api.cloolc.club/fanyi?data=" + msg[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.SendChain(message.Text("ERROR: ", err))
|
ctx.SendChain(message.Text("ERROR: ", err))
|
||||||
}
|
}
|
||||||
info := gjson.ParseBytes(rely)
|
info := gjson.ParseBytes(data)
|
||||||
repo := info.Get("data.0")
|
repo := info.Get("data.0")
|
||||||
process.SleepAbout1sTo2s()
|
process.SleepAbout1sTo2s()
|
||||||
ctx.SendChain(message.Text(repo.Get("value.0")))
|
ctx.SendChain(message.Text(repo.Get("value.0")))
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
@ -199,7 +199,7 @@ func (vdb *VtbDB) GetVtbList() (uidList []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
bytes, err := ioutil.ReadAll(resp.Body)
|
bytes, err := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorln(err)
|
log.Errorln(err)
|
||||||
return
|
return
|
||||||
@ -262,7 +262,7 @@ func (vdb *VtbDB) StoreVtb(uid string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
bytes, err := ioutil.ReadAll(resp.Body)
|
bytes, err := io.ReadAll(resp.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorln(err)
|
log.Errorln(err)
|
||||||
return
|
return
|
||||||
|
|||||||
@ -3,9 +3,9 @@ package wtf
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
|
||||||
"net/http"
|
|
||||||
"net/url"
|
"net/url"
|
||||||
|
|
||||||
|
"github.com/FloatTech/zbputils/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
/* JS path getter for https://wtf.hiigara.net/ranking
|
/* JS path getter for https://wtf.hiigara.net/ranking
|
||||||
@ -134,12 +134,7 @@ func (w *wtf) predict(names ...string) (string, error) {
|
|||||||
name += "/" + url.QueryEscape(n)
|
name += "/" + url.QueryEscape(n)
|
||||||
}
|
}
|
||||||
u := apiprefix + w.path + name
|
u := apiprefix + w.path + name
|
||||||
resp, err := http.Get(u)
|
r, err := web.GetData(u)
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
r, err := io.ReadAll(resp.Body)
|
|
||||||
resp.Body.Close()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user