ZeroBot-Plugin/plugin/zaobao/zaobao.go
Jiang-Red a862e5be7c
添加 早报插件及设置欢迎语增加更多自定义 (#147)
* 添加 早报插件

* 添加 早报插件

* 添加 早报插件

* 添加 设置欢迎语更多自定义

* 添加 help说明

* 添加 manager设置欢迎语说明

* 怪

* 🎨 改进代码样式

* Update zaobao.go

* Update zaobao.go

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: 源文雨 <41315874+fumiama@users.noreply.github.com>
2022-03-11 23:47:39 +08:00

73 lines
2.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package zaobao 易即今日公众号api的今日早报
package zaobao
import (
"os"
"time"
"github.com/tidwall/gjson"
zero "github.com/wdvxdr1123/ZeroBot"
"github.com/wdvxdr1123/ZeroBot/message"
control "github.com/FloatTech/zbputils/control"
"github.com/FloatTech/zbputils/file"
"github.com/FloatTech/zbputils/web"
"github.com/FloatTech/zbputils/control/order"
)
const (
api = "http://api.soyiji.com/news_jpg"
referer = "safe.soyiji.com"
ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66"
)
func init() { // 插件主体
engine := control.Register("zaobao", order.AcquirePrio(), &control.Options{
DisableOnDefault: true,
Help: "zaobao\n" +
"api早上8点更新推荐定时在8点30后\n" +
"配合插件job中的记录在'cron'触发的指令使用\n" +
"------示例------\n" +
"每天早上九点定时发送\n" +
"记录在'00 9 * * *'触发的指令\n" +
"今日早报",
PrivateDataFolder: "zaobao",
})
cachePath := engine.DataFolder()
os.RemoveAll(cachePath)
err := os.MkdirAll(cachePath, 0755)
if err != nil {
panic(err)
}
zaobaoFile := cachePath + "zaobao_" + time.Now().Format("2006-01-02") + ".jpg"
engine.OnFullMatch("今日早报", zero.OnlyGroup).SetBlock(false).
Handle(func(ctx *zero.Ctx) {
err := download(zaobaoFile)
if err != nil {
ctx.SendChain(message.Text("ERROR:", err))
return
}
ctx.SendChain(message.Image("file:///" + file.BOTPATH + "/" + zaobaoFile))
})
}
func download(zaobaoFile string) error { // 获取图片链接并且下载
if file.IsNotExist(zaobaoFile) {
data, err := web.GetDataWith(web.NewDefaultClient(), api, "GET", "", ua)
if err != nil {
return err
}
zaobaoURL := gjson.Get(string(data), "url").String()
data, err = web.GetDataWith(web.NewDefaultClient(), zaobaoURL, "GET", referer, ua)
if err != nil {
return err
}
err = os.WriteFile(zaobaoFile, data, 0666)
if err != nil {
return err
}
}
return nil
}