diff options
Diffstat (limited to 'macros/pos2an.lua')
-rw-r--r-- | macros/pos2an.lua | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/macros/pos2an.lua b/macros/pos2an.lua deleted file mode 100644 index 7b67b00..0000000 --- a/macros/pos2an.lua +++ /dev/null @@ -1,69 +0,0 @@ -script_name = "pos -> an" -script_description = "double click the video then snap to an \\an" -script_author = "garret" -script_version = "1" - - -local function escape_pattern(txt) - local magic_chars = "%^%$%(%)%%.%[%]%*%+%-%?" - return txt:gsub("(["..magic_chars.."])", "%%%1") -end - -local function main(sub, sel) - local vidx, vidy = aegisub.video_size() - local left = vidx * 0.25 - local right = vidx - (vidx * 0.25) - local top = vidy * 0.32 - local bottom = vidy - (vidx * 0.35) - -- todo: have these customisable in a gui in v2 - - if not vidx then - aegisub.log("open a video") - aegisub.cancel() - -- todo: might be nice to use script res for this - -- but realistically if youre using this, youve got a video open - end - for _, i in ipairs(sel) do - local line = sub[i] - local x - local y - local tag - local c = 0 - line.text = string.gsub(line.text, "\\an%d", "") - line.text = string.gsub(line.text, "{}", "") - for postag, posx, posy in string.gmatch(line.text, "{[^}]*(\\pos%(([^,]+), *([^)]+)%))[^}]*}") do - if c == 0 then - x = tonumber(posx) - y = tonumber(posy) - tag = escape_pattern(postag) - end - c = c + 1 - end - if c == 0 then goto continue end - -- aegi is luajit - - local s - - if y <= top then - s = "t" elseif - y >= bottom then s = "b" - else s = "c" end - - if x <= left then - s = s.."l" elseif - x >= right then s = s.."r" - else s = s.."c" end - - local AN_MAP = { - tl = 7, tc = 8, tr = 9, - cl = 4, cc = 5, cr = 6, - bl = 1, bc = 2, br = 3, - } - - line.text = string.gsub(line.text, tag, "\\an"..AN_MAP[s]) - sub[i] = line - ::continue:: - end -end - -aegisub.register_macro(script_name, script_description, main) |