mirror of
https://github.com/morpheus65535/bazarr
synced 2025-02-22 14:00:52 +00:00
merge from Sub-Zero.bundle
merge some fixes from panal/Sub-Zero.bundle
This commit is contained in:
parent
1432f83bf4
commit
859922b9c7
5 changed files with 31 additions and 20 deletions
7
libs/subzero/modification/exc.py
Normal file
7
libs/subzero/modification/exc.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
# coding=utf-8
|
||||
class EmptyEntryError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class EmptyLineError(Exception):
|
||||
pass
|
|
@ -7,7 +7,8 @@ import pysubs2
|
|||
import logging
|
||||
import time
|
||||
|
||||
from .mods import EMPTY_TAG_PROCESSOR, EmptyEntryError
|
||||
from .mods import EMPTY_TAG_PROCESSOR
|
||||
from .exc import EmptyEntryError
|
||||
from .registry import registry
|
||||
from subzero.language import Language
|
||||
import six
|
||||
|
@ -15,8 +16,6 @@ import six
|
|||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
lowercase_re = re.compile(r'(?sux)[a-zà-ž]')
|
||||
|
||||
|
||||
class SubtitleModifications(object):
|
||||
debug = False
|
||||
|
@ -189,7 +188,7 @@ class SubtitleModifications(object):
|
|||
sub = processor.process(sub)
|
||||
|
||||
if sub.strip():
|
||||
if lowercase_re.search(sub):
|
||||
if not sub.isupper():
|
||||
return False
|
||||
|
||||
entry_used = True
|
||||
|
@ -302,11 +301,11 @@ class SubtitleModifications(object):
|
|||
mod = self.initialized_mods[identifier]
|
||||
|
||||
try:
|
||||
line = mod.modify(line.strip(), entry=entry.text, debug=self.debug, parent=self, index=index,
|
||||
line = mod.modify(line.strip(), entry=t, debug=self.debug, parent=self, index=index,
|
||||
**args)
|
||||
except EmptyEntryError:
|
||||
if self.debug:
|
||||
logger.debug(u"%d: %s: %r -> ''", index, identifier, entry.text)
|
||||
logger.debug(u"%d: %s: %r -> ''", index, identifier, t)
|
||||
skip_entry = True
|
||||
break
|
||||
|
||||
|
@ -331,11 +330,11 @@ class SubtitleModifications(object):
|
|||
mod = self.initialized_mods[identifier]
|
||||
|
||||
try:
|
||||
line = mod.modify(line.strip(), entry=entry.text, debug=self.debug, parent=self, index=index,
|
||||
line = mod.modify(line.strip(), entry=t, debug=self.debug, parent=self, index=index,
|
||||
procs=["last_process"], **args)
|
||||
except EmptyEntryError:
|
||||
if self.debug:
|
||||
logger.debug(u"%d: %s: %r -> ''", index, identifier, entry.text)
|
||||
logger.debug(u"%d: %s: %r -> ''", index, identifier, t)
|
||||
skip_entry = True
|
||||
break
|
||||
|
||||
|
|
|
@ -109,9 +109,3 @@ empty_line_post_processors = [
|
|||
]
|
||||
|
||||
|
||||
class EmptyEntryError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
class EmptyLineError(Exception):
|
||||
pass
|
||||
|
|
|
@ -3,7 +3,8 @@ from __future__ import absolute_import
|
|||
from __future__ import unicode_literals
|
||||
import re
|
||||
|
||||
from subzero.modification.mods import SubtitleTextModification, empty_line_post_processors, EmptyEntryError, TAG
|
||||
from subzero.modification.mods import SubtitleTextModification, empty_line_post_processors, TAG
|
||||
from subzero.modification.exc import EmptyEntryError
|
||||
from subzero.modification.processors.re_processor import NReProcessor
|
||||
from subzero.modification import registry
|
||||
|
||||
|
@ -93,7 +94,7 @@ class HearingImpaired(SubtitleTextModification):
|
|||
|
||||
# remove music entries
|
||||
NReProcessor(re.compile(r'(?ums)(^[-\s>~]*[*#¶♫♪]+\s*.+|.+\s*[*#¶♫♪]+\s*$)'),
|
||||
"", name="HI_music"),
|
||||
"", name="HI_music", entry=True),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ from __future__ import absolute_import
|
|||
import re
|
||||
import logging
|
||||
|
||||
from subzero.modification.exc import EmptyEntryError
|
||||
from subzero.modification.processors import Processor
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -15,13 +16,22 @@ class ReProcessor(Processor):
|
|||
pattern = None
|
||||
replace_with = None
|
||||
|
||||
def __init__(self, pattern, replace_with, name=None, supported=None):
|
||||
def __init__(self, pattern, replace_with, name=None, supported=None, entry=False, **kwargs):
|
||||
super(ReProcessor, self).__init__(name=name, supported=supported)
|
||||
self.pattern = pattern
|
||||
self.replace_with = replace_with
|
||||
self.use_entry = entry
|
||||
|
||||
def process(self, content, debug=False, **kwargs):
|
||||
return self.pattern.sub(self.replace_with, content)
|
||||
def process(self, content, debug=False, entry=None, **kwargs):
|
||||
if not self.use_entry:
|
||||
return self.pattern.sub(self.replace_with, content)
|
||||
|
||||
ret = self.pattern.sub(self.replace_with, entry)
|
||||
if not ret:
|
||||
raise EmptyEntryError()
|
||||
elif ret != entry:
|
||||
return ret
|
||||
return content
|
||||
|
||||
|
||||
class NReProcessor(ReProcessor):
|
||||
|
@ -37,7 +47,7 @@ class MultipleWordReProcessor(ReProcessor):
|
|||
}
|
||||
replaces found key in pattern with the corresponding value in data
|
||||
"""
|
||||
def __init__(self, snr_dict, name=None, parent=None, supported=None):
|
||||
def __init__(self, snr_dict, name=None, parent=None, supported=None, **kwargs):
|
||||
super(ReProcessor, self).__init__(name=name, supported=supported)
|
||||
self.snr_dict = snr_dict
|
||||
|
||||
|
|
Loading…
Reference in a new issue