diff --git a/bing/bing.go b/bing/bing.go index dc0b0fa9..38edef7a 100644 --- a/bing/bing.go +++ b/bing/bing.go @@ -1,8 +1,9 @@ package bing import ( - "ZeroBotPlugin/utils" zero "github.com/wdvxdr1123/ZeroBot" + "github.com/wdvxdr1123/ZeroBot/message" + "math/rand" "time" ) @@ -35,7 +36,7 @@ func init() { // 随机发送一篇上面的小作文 zero.OnFullMatch("/小作文"). Handle(func(ctx *zero.Ctx) { - ctx.SendChain(utils.RandText(txt1,txt2,txt3,txt4,txt5,txt6,txt7,txt8,txt9,txt11,txt12,txt13,txt14,txt15,txt16,txt17,txt18,txt19,txt20,txt21,txt22)) + ctx.SendChain(RandText(txt1,txt2,txt3,txt4,txt5,txt6,txt7,txt8,txt9,txt11,txt12,txt13,txt14,txt15,txt16,txt17,txt18,txt19,txt20,txt21,txt22)) }) // 逆天 @@ -48,8 +49,19 @@ func init() { zero.OnFullMatch("随机函数测试", zero.OnlyToMe, zero.AdminPermission). Handle(func(ctx *zero.Ctx) { for i:=1; i<1000; i++ { - ctx.Send(utils.Suiji()) + ctx.Send(Suiji()) time.Sleep(300 * time.Millisecond) } }) } + +func RandText(text ...[]string) message.MessageSegment { + length := len(text) + rand.Seed(time.Now().UnixNano()) + return message.Text(text[rand.Intn(length)]) +} + +func Suiji() int { + rand.Seed(time.Now().UnixNano()) + return rand.Intn(30) +} diff --git a/setutime/keyword.go b/setutime/keyword.go new file mode 100644 index 00000000..1744f41d --- /dev/null +++ b/setutime/keyword.go @@ -0,0 +1,107 @@ +package setutime + +import ( + "encoding/json" + "fmt" + zero "github.com/wdvxdr1123/ZeroBot" + "github.com/wdvxdr1123/ZeroBot/message" + "math/rand" + "net/http" + "time" +) + + +type AutoGenerated struct { + Illusts []struct { + ID int `json:"id"` + Title string `json:"title"` + Type string `json:"type"` + ImageUrls struct { + SquareMedium string `json:"square_medium"` + Medium string `json:"medium"` + Large string `json:"large"` + } `json:"image_urls"` + Caption string `json:"caption"` + Restrict int `json:"restrict"` + User struct { + ID int `json:"id"` + Name string `json:"name"` + Account string `json:"account"` + ProfileImageUrls struct { + Medium string `json:"medium"` + } `json:"profile_image_urls"` + IsFollowed bool `json:"is_followed"` + } `json:"user"` + Tags []struct { + Name string `json:"name"` + TranslatedName interface{} `json:"translated_name"` + } `json:"tags"` + Tools []interface{} `json:"tools"` + PageCount int `json:"page_count"` + Width int `json:"width"` + Height int `json:"height"` + SanityLevel int `json:"sanity_level"` + XRestrict int `json:"x_restrict"` + Series interface{} `json:"series"` + MetaSinglePage struct { + OriginalImageURL string `json:"original_image_url"` + } `json:"meta_single_page,omitempty"` + MetaPages []interface{} `json:"meta_pages"` + TotalView int `json:"total_view"` + TotalBookmarks int `json:"total_bookmarks"` + IsBookmarked bool `json:"is_bookmarked"` + Visible bool `json:"visible"` + IsMuted bool `json:"is_muted"` + } `json:"illusts"` + NextURL string `json:"next_url"` + SearchSpanLimit int `json:"search_span_limit"` +} + + +func init() { + zero.OnRegex(`^来张 (.*)$`, zero.AdminPermission). + Handle(func(ctx *zero.Ctx) { + keyword := ctx.State["regex_matched"].([]string)[1] + soutujson := soutuapi(keyword) + pom1 := "https://i.pixiv.cat" + rannum := Suiji() + pom2 := soutujson.Illusts[rannum].ImageUrls.Large[19:] + ctx.SendChain(message.Image(pom1 + pom2)) + }) + +} + + +// 请求api +func soutuapi(keyword string) *AutoGenerated { + + url := "https://api.pixivel.moe/pixiv?type=search&page=0&mode=partial_match_for_tags&word=" + keyword + method := "GET" + + client := &http.Client { + } + req, err := http.NewRequest(method, url, nil) + + if err != nil { + fmt.Println(err) + } + req.Header.Add("accept", "application/json, text/plain, */*") + + res, err := client.Do(req) + if err != nil { + fmt.Println(err) + } + defer res.Body.Close() + + result := &AutoGenerated{} + if err := json.NewDecoder(res.Body).Decode(result); err != nil { + panic(err) + } + return result +} + +//从json里的30条数据中随机获取一条返回 +func Suiji() int { + rand.Seed(time.Now().UnixNano()) + return rand.Intn(30) +}