From b09025a330d2f1ef86be53f90393e0f7516489eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?=
<41315874+fumiama@users.noreply.github.com>
Date: Wed, 1 May 2024 02:27:18 +0900
Subject: [PATCH] =?UTF-8?q?chore:=20del=20cangtoushi=20due=20to=20?=
=?UTF-8?q?=E4=BD=BF=E3=81=88=E3=81=AA=E3=81=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 10 ---
main.go | 1 -
plugin/cangtoushi/cangtoushi.go | 139 --------------------------------
3 files changed, 150 deletions(-)
delete mode 100644 plugin/cangtoushi/cangtoushi.go
diff --git a/README.md b/README.md
index 21c6ad5c..efcdea19 100644
--- a/README.md
+++ b/README.md
@@ -540,16 +540,6 @@ print("run[CQ:image,file="+j["img"]+"]")
- [x] 随机书评
-
-
- 藏头诗
-
- `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/cangtoushi"`
-
- - [x] 藏头诗[xxx]
-
- - [x] 藏尾诗[xxx]
-
选择困难症帮手
diff --git a/main.go b/main.go
index a0623b8b..47967b88 100644
--- a/main.go
+++ b/main.go
@@ -71,7 +71,6 @@ import (
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/baseamasiro" // base天城文加解密
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili" // b站相关
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/bookreview" // 哀伤雪刃吧推书记录
- _ "github.com/FloatTech/ZeroBot-Plugin/plugin/cangtoushi" // 藏头诗
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/chess" // 国际象棋
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/choose" // 选择困难症帮手
_ "github.com/FloatTech/ZeroBot-Plugin/plugin/chouxianghua" // 说抽象话
diff --git a/plugin/cangtoushi/cangtoushi.go b/plugin/cangtoushi/cangtoushi.go
deleted file mode 100644
index 74e5455a..00000000
--- a/plugin/cangtoushi/cangtoushi.go
+++ /dev/null
@@ -1,139 +0,0 @@
-// Package cangtoushi 藏头诗
-package cangtoushi
-
-import (
- "fmt"
- "io"
- "net/http"
- "net/http/cookiejar"
- "net/url"
- "strings"
-
- ctrl "github.com/FloatTech/zbpctrl"
- "github.com/FloatTech/zbputils/control"
- "github.com/antchfx/htmlquery"
- zero "github.com/wdvxdr1123/ZeroBot"
- "github.com/wdvxdr1123/ZeroBot/message"
- "github.com/wdvxdr1123/ZeroBot/utils/helper"
-)
-
-const (
- loginURL = "https://www.shicimingju.com/cangtoushi/"
- searchURL = "https://www.shicimingju.com/cangtoushi/index.html"
- ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"
- referer = "https://www.shicimingju.com/cangtoushi/index.html"
-)
-
-var (
- gCurCookieJar *cookiejar.Jar
- csrf string
-)
-
-func init() {
- engine := control.AutoRegister(&ctrl.Options[*zero.Ctx]{
- DisableOnDefault: false,
- Brief: "藏头诗, 藏尾诗",
- Help: "- 藏头诗[xxx]\n- 藏尾诗[xxx]",
- })
- engine.OnRegex(`藏头诗\s?([一-龥]{3,10})$`).SetBlock(true).Handle(func(ctx *zero.Ctx) {
- kw := ctx.State["regex_matched"].([]string)[1]
- err := login()
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- data, err := search(kw, "7", "0")
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- text, err := dealHTML(helper.BytesToString(data))
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- ctx.SendChain(message.Text(text))
- })
-
- engine.OnRegex(`藏尾诗\s?([一-龥]{3,10})$`).SetBlock(true).Handle(func(ctx *zero.Ctx) {
- kw := ctx.State["regex_matched"].([]string)[1]
- err := login()
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- data, err := search(kw, "7", "2")
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- text, err := dealHTML(helper.BytesToString(data))
- if err != nil {
- ctx.SendChain(message.Text("ERROR: ", err))
- return
- }
- ctx.SendChain(message.Text(text))
- })
-}
-
-func login() error {
- gCurCookieJar, _ = cookiejar.New(nil)
- client := &http.Client{
- Jar: gCurCookieJar,
- }
- request, err := http.NewRequest("GET", loginURL, nil)
- if err != nil {
- return err
- }
- request.Header.Add("User-Agent", ua)
- response, err := client.Do(request)
- if err != nil {
- return err
- }
- data, err := io.ReadAll(response.Body)
- if err != nil {
- return err
- }
- response.Body.Close()
- doc, err := htmlquery.Parse(strings.NewReader(helper.BytesToString(data)))
- if err != nil {
- return err
- }
- csrf = htmlquery.SelectAttr(htmlquery.FindOne(doc, "//input[@name='_csrf']"), "value")
- return nil
-}
-
-func search(kw, zishu, position string) (data []byte, err error) {
- postStr := fmt.Sprintf("_csrf=%s&kw=%s&zishu=%s&position=%s", url.QueryEscape(csrf), url.QueryEscape(kw), zishu, position)
- client := &http.Client{
- Jar: gCurCookieJar,
- }
- request, err := http.NewRequest("POST", searchURL, strings.NewReader(postStr))
- if err != nil {
- return nil, err
- }
- request.Header.Add("Referer", referer)
- request.Header.Add("User-Agent", ua)
- request.Header.Add("Content-Type", "application/x-www-form-urlencoded")
- response, err := client.Do(request)
- if err != nil {
- return nil, err
- }
- data, err = io.ReadAll(response.Body)
- if err != nil {
- return nil, err
- }
- response.Body.Close()
- return
-}
-
-func dealHTML(data string) (text string, err error) {
- doc, err := htmlquery.Parse(strings.NewReader(data))
- if err != nil {
- return "", err
- }
- text = htmlquery.InnerText(htmlquery.FindOne(doc, "//div[@class='card']/div[@class='card']"))
- text = strings.ReplaceAll(text, " ", "")
- text = strings.Replace(text, "\n", "", 1)
- return text, nil
-}