bazarr/libs/subzero/modification/mods/offset.py

44 lines
1.3 KiB
Python
Raw Normal View History

2018-10-31 16:08:29 +00:00
# coding=utf-8
2019-09-17 02:04:27 +00:00
from __future__ import absolute_import
2018-10-31 16:08:29 +00:00
import logging
from subzero.modification.mods import SubtitleModification
from subzero.modification import registry
2019-09-17 02:04:27 +00:00
import six
2018-10-31 16:08:29 +00:00
logger = logging.getLogger(__name__)
class ShiftOffset(SubtitleModification):
identifier = "shift_offset"
description = "Change the timing of the subtitle"
exclusive = False
advanced = True
args_mergeable = True
modifies_whole_file = True
long_description = "Adds or substracts a certain amount of time from the whole subtitle to match your media"
@classmethod
def merge_args(cls, args1, args2):
2019-09-17 02:04:27 +00:00
new_args = dict((key, int(value)) for key, value in six.iteritems(args1))
2018-10-31 16:08:29 +00:00
2019-09-17 02:04:27 +00:00
for key, value in six.iteritems(args2):
2018-10-31 16:08:29 +00:00
if not int(value):
continue
if key in new_args:
new_args[key] += int(value)
else:
new_args[key] = int(value)
2019-09-17 02:04:27 +00:00
return dict([k_v for k_v in six.iteritems(new_args) if bool(k_v[1])])
2018-10-31 16:08:29 +00:00
def modify(self, content, debug=False, parent=None, **kwargs):
parent.f.shift(h=int(kwargs.get("h", 0)), m=int(kwargs.get("m", 0)), s=int(kwargs.get("s", 0)),
ms=int(kwargs.get("ms", 0)))
registry.register(ShiftOffset)