mirror of
https://github.com/odrling/Aegisub
synced 2025-04-11 22:56:02 +02:00
44 lines
1.0 KiB
Lua
44 lines
1.0 KiB
Lua
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)
|