aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgarret <garret@airmail.cc>2021-07-06 20:45:18 +0100
committergarret <garret@airmail.cc>2021-07-06 20:45:18 +0100
commitf8d82e44b9fc0b8153a6b381fc57514292aa86ef (patch)
tree4b13772587ca2461b6cef360ff801ec18a843a94
parentc5e9acf3dc03eec78543f49ba61a3212d6dda477 (diff)
downloadaegisub-scripts-f8d82e44b9fc0b8153a6b381fc57514292aa86ef.tar.gz
aegisub-scripts-f8d82e44b9fc0b8153a6b381fc57514292aa86ef.tar.bz2
aegisub-scripts-f8d82e44b9fc0b8153a6b381fc57514292aa86ef.zip
add scenebleed detector
-rw-r--r--README.md4
-rw-r--r--scenebleed.lua32
2 files changed, 36 insertions, 0 deletions
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)