feat(bilibiliparse): B站视频解析 视频上传开关 (#1196)
Some checks are pending
打包最新版为 Docker Image / build docker (push) Waiting to run
最新版 / Build binary CI (386, linux) (push) Waiting to run
最新版 / Build binary CI (386, windows) (push) Waiting to run
最新版 / Build binary CI (amd64, linux) (push) Waiting to run
最新版 / Build binary CI (amd64, windows) (push) Waiting to run
最新版 / Build binary CI (arm, linux) (push) Waiting to run
最新版 / Build binary CI (arm64, linux) (push) Waiting to run
PushLint / lint (push) Waiting to run

* add control for getVideoDownload

* fix: typo
This commit is contained in:
莫思潋 2025-09-03 13:02:12 +08:00 committed by GitHub
parent 35292a69fc
commit ac2d53352c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -24,8 +24,10 @@ import (
) )
const ( const (
enableHex = 0x10 enableVideoSummary = int64(0x10)
unableHex = 0x7fffffff_fffffffd disableVideoSummary = ^enableVideoSummary
enableVideoDownload = int64(0x20)
disableVideoDownload = ^enableVideoDownload
bilibiliparseReferer = "https://www.bilibili.com" bilibiliparseReferer = "https://www.bilibili.com"
) )
@ -92,9 +94,9 @@ func init() {
data := c.GetData(ctx.Event.GroupID) data := c.GetData(ctx.Event.GroupID)
switch option { switch option {
case "开启", "打开", "启用": case "开启", "打开", "启用":
data |= enableHex data |= enableVideoSummary
case "关闭", "关掉", "禁用": case "关闭", "关掉", "禁用":
data &= unableHex data &= disableVideoSummary
default: default:
return return
} }
@ -105,6 +107,35 @@ func init() {
} }
ctx.SendChain(message.Text("已", option, "视频总结")) ctx.SendChain(message.Text("已", option, "视频总结"))
}) })
en.OnRegex(`^(开启|打开|启用|关闭|关掉|禁用)视频上传$`, zero.AdminPermission).SetBlock(true).
Handle(func(ctx *zero.Ctx) {
gid := ctx.Event.GroupID
if gid <= 0 {
// 个人用户设为负数
gid = -ctx.Event.UserID
}
option := ctx.State["regex_matched"].([]string)[1]
c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
if !ok {
ctx.SendChain(message.Text("找不到服务!"))
return
}
data := c.GetData(ctx.Event.GroupID)
switch option {
case "开启", "打开", "启用":
data |= enableVideoDownload
case "关闭", "关掉", "禁用":
data &= disableVideoDownload
default:
return
}
err := c.SetData(gid, data)
if err != nil {
ctx.SendChain(message.Text("出错啦: ", err))
return
}
ctx.SendChain(message.Text("已", option, "视频上传"))
})
en.OnRegex(searchVideo).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleVideo) en.OnRegex(searchVideo).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleVideo)
en.OnRegex(searchDynamic).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleDynamic) en.OnRegex(searchDynamic).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleDynamic)
en.OnRegex(searchArticle).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleArticle) en.OnRegex(searchArticle).SetBlock(true).Limit(limit.LimitByGroup).Handle(handleArticle)
@ -127,7 +158,7 @@ func handleVideo(ctx *zero.Ctx) {
return return
} }
c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx]) c, ok := ctx.State["manager"].(*ctrl.Control[*zero.Ctx])
if ok && c.GetData(ctx.Event.GroupID)&enableHex == enableHex { if ok && c.GetData(ctx.Event.GroupID)&enableVideoSummary == enableVideoSummary {
summaryMsg, err := getVideoSummary(cfg, card) summaryMsg, err := getVideoSummary(cfg, card)
if err != nil { if err != nil {
msg = append(msg, message.Text("ERROR: ", err)) msg = append(msg, message.Text("ERROR: ", err))
@ -136,12 +167,14 @@ func handleVideo(ctx *zero.Ctx) {
} }
} }
ctx.SendChain(msg...) ctx.SendChain(msg...)
downLoadMsg, err := getVideoDownload(cfg, card, cachePath) if ok && c.GetData(ctx.Event.GroupID)&enableVideoDownload == enableVideoDownload {
if err != nil { downLoadMsg, err := getVideoDownload(cfg, card, cachePath)
ctx.SendChain(message.Text("ERROR: ", err)) if err != nil {
return ctx.SendChain(message.Text("ERROR: ", err))
return
}
ctx.SendChain(downLoadMsg...)
} }
ctx.SendChain(downLoadMsg...)
} }
func handleDynamic(ctx *zero.Ctx) { func handleDynamic(ctx *zero.Ctx) {