From 80f92954b9873cd0532bf4b2d684c147d36d6a5d Mon Sep 17 00:00:00 2001 From: garret Date: Sun, 17 Nov 2024 00:08:31 +0000 Subject: rename A-B to Check pre-timing --- check-pretiming.lua | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 check-pretiming.lua (limited to 'check-pretiming.lua') diff --git a/check-pretiming.lua b/check-pretiming.lua new file mode 100644 index 0000000..c0a3ff5 --- /dev/null +++ b/check-pretiming.lua @@ -0,0 +1,87 @@ +script_name = "Check pre-timing" +script_description = "Put stuff in empty dialogue lines, so you can see subtitles.\nformerly known as A-B" +script_author = "garret" +script_version = "4.0.0" +script_namespace = "garret.a-b" + +local haveDepCtrl, DependencyControl, depctrl = pcall(require, "l0.DependencyControl") +if haveDepCtrl then + depctrl = DependencyControl { + --feed="TODO", + } +end + +local function switch_indicator(i) + if i == "a" then + return "b" + elseif i == "b" then + return "a" + end +end + +local function strip_tags(text) + return text:gsub("{[^}]-}","") +end + +local function get_indicator(letter, actor) + local indicator + if actor == "" then + indicator = letter + else + indicator = actor.." "..letter + end + return indicator +end + +local function escape_pattern(txt) + local magic_chars = "%^%$%(%)%%.%[%]%*%+%-%?" + return txt:gsub("(["..magic_chars.."])", "%%%1") +end + +local function main(sub, sel) + local i = "a" + for _,li in ipairs(sel) do + local line = sub[li] + local indicator = get_indicator(i, line.actor) + + if line.text == "" then + line.text = indicator + elseif strip_tags(line.text) == "" then + line.text = line.text .. indicator -- apply tags + end + + sub[li] = line + i = switch_indicator(i) + end + aegisub.set_undo_point(script_name) +end + +local function undo(sub, sel) + local i = "a" + for _,li in ipairs(sel) do + local line = sub[li] + local indicator = get_indicator(i, line.actor) + + if line.text == indicator then + line.text = "" + else + local escaped = escape_pattern(indicator) + line.text = line.text:gsub(escaped, "") + end + sub[li] = line + i = switch_indicator(i) + end +end + +local macros = { + {"Add indicators", script_description, main}, + {"Clean up","Gets rid of the indicators once you've adjusted the lines", undo} +} +if haveDepCtrl then + depctrl:registerMacros(macros) +else + for _,macro in ipairs(macros) do + local name, desc, fun = unpack(macro) + aegisub.register_macro(script_name .. '/' .. name, desc, fun) + end +end -- cgit v1.2.3-70-g09d2