From 87f3caa7d3957fdb0f79bd55f1ba000f640b3d91 Mon Sep 17 00:00:00 2001 From: odrling Date: Tue, 13 Aug 2019 19:34:50 +0200 Subject: [PATCH] unkf --- unkf.lua | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 unkf.lua diff --git a/unkf.lua b/unkf.lua new file mode 100644 index 0000000..3513f1a --- /dev/null +++ b/unkf.lua @@ -0,0 +1,43 @@ +local tr = aegisub.gettext + +script_name = tr"unkf" +script_description = tr"replace kf/ko tags in selected lines by regular k tags" +script_author = "amoethyst" +script_version = "1.0" + + +function split_line(subs, sel) + local expr_kof = "^(.-{[^}]*\\k)[of](.*)$" + local expr_K = "^(.-{[^}]*\\)K(.*)$" + local before, after + + for _, i in ipairs(sel) do + line = subs[i] + + -- replace ko and kf tags + while true do + before, after = line.text:match(expr_kof) + if before == nil then + break + else + line.text = before .. after + end + end + + -- replace K tags + while true do + before, after = line.text:match(expr_K) + if before == nil then + break + else + line.text = before .. "k" .. after + end + end + + subs[i] = line + end + + aegisub.set_undo_point(script_name) +end + +aegisub.register_macro(script_name, script_description, split_line)