aboutsummaryrefslogtreecommitdiffstats
path: root/become-fansubber.lua
diff options
context:
space:
mode:
Diffstat (limited to 'become-fansubber.lua')
-rw-r--r--become-fansubber.lua52
1 files changed, 32 insertions, 20 deletions
diff --git a/become-fansubber.lua b/become-fansubber.lua
index 376a630..9f5ac32 100644
--- a/become-fansubber.lua
+++ b/become-fansubber.lua
@@ -1,40 +1,52 @@
script_name="CR Restyler"
script_description="become a fansubber with a click of a button"
script_author = "garret"
-script_version = "2021-06-15"
+script_version = "2.0.0-dev"
+include("karaskel.lua")
include("cleantags.lua")
--- Main -> Default
--- Top -> an8
--- italics -> i1
--- flashback -> default
-function add_tags(line)
- local txt = line.text
- local style = line.style
- if style:match("Italics") then
+-- TODO: detect already existing tags
+ -- probably need some kind of ass parsing, or a hack with match()
+
+function add_tags(txt, italic, align) -- everything except txt is boolean. nil = don't change, !nil = change to this value
+
+--[[not quite happy with this, it overwrites the alignment - ie line is "{\an4} blah blah" and style is an8, it just changes it to an8
+realisticly this _probably_ won't be a problem, but still would like to try and stop it at some point to be safe
+italics is fine, it just does {\i1\i0}, which is jank and bad but works fine so i won't worry about it too much]]
+ if italic == true then
txt="{\\i1}"..txt
+ elseif italics == false then
+ txt="{\\i0}"..txt
end
- if style:match("Top") then
- txt="{\\an8}"..txt
+ if align ~= nil then
+ txt="{\\an"..align.."}"..txt
end
- line.text = cleantags(txt)
- return line
+ txt = cleantags(txt)
+ return txt
end
-function change_styles(line)
- local style = line.style
- if style:match("Top") or style:match("Italics") or style:match("Main") or style:match("Flashback") then
- line.style="Default"
+function get_new(old, new)
+ local i = nil
+ if old ~= new then
+ i = old
end
- return line
+ return i
end
function main(sub, sel)
+ local _, styles = karaskel.collect_head(sub) -- i'd like to not have it log if possible
+ local new_style_name = "Default" -- the one we'll be changing stuff to - TODO: configurable
+ local new_style = styles[new_style_name]
for h, i in ipairs(sel) do
+ -- maybe don't do if the style has "sign" in the name?
+ -- need proper list of stuff cr uses
local line = sub[i]
- line = add_tags(line)
- line = change_styles(line)
+ local old_style = styles[line.style]
+ local italic = get_new(old_style.italic, new_style.italic)
+ local align = get_new(old_style.align, new_style.align)
+ line.style = new_style_name
+ line.text = add_tags(line.text, italic, align)
sub[i] = line
end
aegisub.set_undo_point(script_name)