From: qydysky Date: Sat, 18 Nov 2023 05:19:25 +0000 (+0800) Subject: Improve 指定房间录制区间优化 X-Git-Tag: v0.11.6~2 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=a782d6d7dc446e82ab77e305a1e2237c09c8fee2;p=bili_danmu%2F.git Improve 指定房间录制区间优化 --- diff --git a/README.md b/README.md index e09f236..40c156a 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ - `start`时检查是否在直播,是则开始录制,如已在录制则切片。 - `end`时如已在录制则停止录制。 -- 在开播时,若在`start`与`end`之间,则录制,不在则不录制(仅检查同时有`start`,`end`的`fromTo`)。 +- 存在同时有`start`,`end`的`fromTo`,则开播时,若在`start`与`end`之间,则录制。不存在同时有`start`,`end`的`fromTo`,则一开播就录制。 - 5s内只能触发一个`fromTo`,所以同房间各`start`、`end`之间间隔不要少于5s。 ```json diff --git a/Reply/F/recStartEnd/recStartEnd.go b/Reply/F/recStartEnd/recStartEnd.go index 699c5a2..2c66975 100644 --- a/Reply/F/recStartEnd/recStartEnd.go +++ b/Reply/F/recStartEnd/recStartEnd.go @@ -87,12 +87,18 @@ func recStartCheck(ctx context.Context, ptr *c.Common) error { if setting, ok := roomSetting[ptr.Roomid]; ok { now := time.Now() t := now.Hour()*3600 + now.Minute()*60 + now.Second() + 1 + var hasSpace = false for _, v := range setting { - if v.start != 0 && v.end != 0 && t <= v.end && t >= v.start { - return nil + if v.start != 0 && v.end != 0 { + hasSpace = true + if t <= v.end && t >= v.start { + return nil + } } } - return errors.New("当前不在设定时间段内") + if hasSpace { + return errors.New("当前不在设定时间段内") + } } return nil } diff --git a/demo/config/config_K_v.json b/demo/config/config_K_v.json index 531e455..a8e2cfe 100644 --- a/demo/config/config_K_v.json +++ b/demo/config/config_K_v.json @@ -104,7 +104,7 @@ "after":["ffmpeg","-i","0.{type}","-y","-c","copy","1.{type}"] } ], - "指定房间录制区间-help":"指定roomid的房间在指定时间段内将会开启录制.start时检查是否在直播,是则开始录制,如已在录制则切片.end时停止录制.在开播时,若在start与end之间,则录制,5s内只能触发一个fromTo", + "指定房间录制区间-help":"指定roomid的房间在指定时间段内将会开启录制.start时检查是否在直播,是则开始录制,如已在录制则切片.end时停止录制.在开播时,若同时有start与end的fromTo,且当前在start与end之间,则录制,若无同时有start与end,则开播就录制。5s内只能触发一个fromTo", "指定房间录制区间":[ { "roomid":0,