From f8d82e44b9fc0b8153a6b381fc57514292aa86ef Mon Sep 17 00:00:00 2001 From: garret Date: Tue, 6 Jul 2021 20:45:18 +0100 Subject: add scenebleed detector --- README.md | 4 ++++ scenebleed.lua | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 scenebleed.lua diff --git a/README.md b/README.md index ad5c367..ec3a45f 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,10 @@ Replaces `--` with `—`. I do not have an em-dash key on my keyboard. +### Scenebleed Detector + +Finds scenebleeds in the selected lines, and marks them with an effect (`bleed`). + ### tagstrip gets rid of tags (and comments) in the selected line(s) diff --git a/scenebleed.lua b/scenebleed.lua new file mode 100644 index 0000000..2a73c2f --- /dev/null +++ b/scenebleed.lua @@ -0,0 +1,32 @@ +script_name="Scenebleed Detector" +script_description="marks possible scenebleeds with an effect" +script_author="garret" +script_version="2021-07-06" + +function main(sub, sel) + local thresh = aegisub.frame_from_ms(500) + local bleedstring = "bleed" + -- tried to make config file work, failed, so shit's hardcoded + + local keyframes = aegisub.keyframes() + for j,i in ipairs(sel) do + line = sub[i] + local start_frame = aegisub.frame_from_ms(line.start_time) + local end_frame = aegisub.frame_from_ms(line.end_time) + for index, frame in ipairs(keyframes) do + if end_frame > frame and end_frame < frame + thresh or start_frame < frame and start_frame >= frame - thresh then + -- off the kf, but not by more than the threshold + if line.effect == "" then + line.effect = bleedstring + else + line.effect = line.effect.."; "..bleedstring + end + sub[i] = mark(line) + end + end + end + aegisub.set_undo_point(script_name) + return sel +end + +aegisub.register_macro(script_name, script_description, main) -- cgit v1.2.3-70-g09d2