Add parse_offsets utility script
This commit is contained in:
parent
6c3f960ffb
commit
8c850d22b4
1 changed files with 45 additions and 0 deletions
45
app/parse_offsets.py
Normal file
45
app/parse_offsets.py
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
import json
|
||||||
|
import logging
|
||||||
|
import argparse
|
||||||
|
import sys
|
||||||
|
|
||||||
|
logger = logging.getLogger("svganim.fixer")
|
||||||
|
argParser = argparse.ArgumentParser(
|
||||||
|
description="Helper tool to fix timings after glitch"
|
||||||
|
)
|
||||||
|
argParser.add_argument(
|
||||||
|
"--input", type=str, help="Filename to run on (.json_appendable)"
|
||||||
|
)
|
||||||
|
args = argParser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
with open(args.input, "r") as fp:
|
||||||
|
events = json.loads("[" + fp.read() + "]")
|
||||||
|
time_offset = 0
|
||||||
|
for i, event in enumerate(events):
|
||||||
|
if type(event) is list:
|
||||||
|
pass
|
||||||
|
elif event['event'] == "offset":
|
||||||
|
time_offset += event['offset']
|
||||||
|
# print a reverseable event that is ignored by this script
|
||||||
|
event = {
|
||||||
|
'event': 'added_offset',
|
||||||
|
'offset': event['offset']
|
||||||
|
}
|
||||||
|
elif event['event'] == 'added_offset':
|
||||||
|
logger.warning('ignore existing offset')
|
||||||
|
continue
|
||||||
|
|
||||||
|
elif event["event"] == "viewbox":
|
||||||
|
for key, box in enumerate(event['viewboxes']):
|
||||||
|
event['viewboxes'][key]['t'] += time_offset
|
||||||
|
elif event["event"] == "stroke":
|
||||||
|
event['points'] = [[p[0], p[1], p[2], p[3] + time_offset]
|
||||||
|
for p in event['points']]
|
||||||
|
|
||||||
|
if i>0:
|
||||||
|
sys.stdout.write(",\n")
|
||||||
|
sys.stdout.write(json.dumps(event))
|
||||||
|
|
||||||
|
if time_offset == 0:
|
||||||
|
logger.warning('\n\nNo offset defined in file, please do so by adding {"event":"offset", "offset": miliseconds} at the line from which the offset should be added.')
|
Loading…
Reference in a new issue