No global variable
This commit is contained in:
parent
ac2a73fc06
commit
afa09710f9
@ -512,7 +512,7 @@ def ConvertFlashRotation(rotY, rotZ, X, Y, width, height):
|
|||||||
return (trX, trY, WrapAngle(outX), WrapAngle(outY), WrapAngle(outZ), scaleXY*100, scaleXY*100)
|
return (trX, trY, WrapAngle(outX), WrapAngle(outY), WrapAngle(outZ), scaleXY*100, scaleXY*100)
|
||||||
|
|
||||||
|
|
||||||
def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, duration_marquee, duration_still, reduced, progress_callback):
|
def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsize, alpha, duration_marquee, duration_still, filter_regex, reduced, progress_callback):
|
||||||
styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)
|
styleid = 'Danmaku2ASS_%04x' % random.randint(0, 0xffff)
|
||||||
WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)
|
WriteASSHead(f, width, height, fontface, fontsize, alpha, styleid)
|
||||||
rows = [[None]*(height-bottomReserved+1) for i in range(4)]
|
rows = [[None]*(height-bottomReserved+1) for i in range(4)]
|
||||||
@ -520,6 +520,8 @@ def ProcessComments(comments, f, width, height, bottomReserved, fontface, fontsi
|
|||||||
if progress_callback and idx % 1000 == 0:
|
if progress_callback and idx % 1000 == 0:
|
||||||
progress_callback(idx, len(comments))
|
progress_callback(idx, len(comments))
|
||||||
if isinstance(i[4], int):
|
if isinstance(i[4], int):
|
||||||
|
if filter_regex and filter_regex.search(i[3]):
|
||||||
|
continue
|
||||||
row = 0
|
row = 0
|
||||||
rowmax = height-bottomReserved-i[7]
|
rowmax = height-bottomReserved-i[7]
|
||||||
while row <= rowmax:
|
while row <= rowmax:
|
||||||
@ -618,13 +620,8 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
Filter = None
|
|
||||||
|
|
||||||
|
|
||||||
def WriteComment(f, c, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid):
|
def WriteComment(f, c, row, width, height, bottomReserved, fontsize, duration_marquee, duration_still, styleid):
|
||||||
text = ASSEscape(c[3])
|
text = ASSEscape(c[3])
|
||||||
if Filter and Filter.search(text):
|
|
||||||
return
|
|
||||||
styles = []
|
styles = []
|
||||||
if c[4] == 1:
|
if c[4] == 1:
|
||||||
styles.append('\\an8\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width/2, 'row': row})
|
styles.append('\\an8\\pos(%(halfwidth)d, %(row)d)' % {'halfwidth': width/2, 'row': row})
|
||||||
@ -729,12 +726,11 @@ def export(func):
|
|||||||
|
|
||||||
@export
|
@export
|
||||||
def Danmaku2ASS(input_files, input_format, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, duration_marquee=5.0, duration_still=5.0, comment_filter=None, is_reduce_comments=False, progress_callback=None):
|
def Danmaku2ASS(input_files, input_format, output_file, stage_width, stage_height, reserve_blank=0, font_face=_('(FONT) sans-serif')[7:], font_size=25.0, text_opacity=1.0, duration_marquee=5.0, duration_still=5.0, comment_filter=None, is_reduce_comments=False, progress_callback=None):
|
||||||
global Filter
|
|
||||||
try:
|
try:
|
||||||
if comment_filter:
|
if comment_filter:
|
||||||
Filter = re.compile(comment_filter)
|
filter_regex = re.compile(comment_filter)
|
||||||
else:
|
else:
|
||||||
Filter = None
|
filter_regex = None
|
||||||
except:
|
except:
|
||||||
raise ValueError(_('Invalid regular expression: %s') % comment_filter)
|
raise ValueError(_('Invalid regular expression: %s') % comment_filter)
|
||||||
fo = None
|
fo = None
|
||||||
@ -744,7 +740,7 @@ def Danmaku2ASS(input_files, input_format, output_file, stage_width, stage_heigh
|
|||||||
fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\r\n')
|
fo = ConvertToFile(output_file, 'w', encoding='utf-8-sig', errors='replace', newline='\r\n')
|
||||||
else:
|
else:
|
||||||
fo = sys.stdout
|
fo = sys.stdout
|
||||||
ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, duration_marquee, duration_still, is_reduce_comments, progress_callback)
|
ProcessComments(comments, fo, stage_width, stage_height, reserve_blank, font_face, font_size, text_opacity, duration_marquee, duration_still, filter_regex, is_reduce_comments, progress_callback)
|
||||||
finally:
|
finally:
|
||||||
if output_file and fo != output_file:
|
if output_file and fo != output_file:
|
||||||
fo.close()
|
fo.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user