Add regex filter
This commit is contained in:
parent
234d43cc01
commit
bb5d1b15b7
@ -618,8 +618,13 @@ 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})
|
||||||
@ -777,6 +782,7 @@ def GetCommentProcessor(input_file):
|
|||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
global Filter
|
||||||
logging.basicConfig(format='%(levelname)s: %(message)s')
|
logging.basicConfig(format='%(levelname)s: %(message)s')
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
sys.argv.append('--help')
|
sys.argv.append('--help')
|
||||||
@ -789,6 +795,7 @@ def main():
|
|||||||
parser.add_argument('-a', '--alpha', metavar=_('ALPHA'), help=_('Text opacity'), type=float, default=1.0)
|
parser.add_argument('-a', '--alpha', metavar=_('ALPHA'), help=_('Text opacity'), type=float, default=1.0)
|
||||||
parser.add_argument('-dm', '--duration-marquee', metavar=_('SECONDS'), help=_('Duration of scrolling comment display [default: %s]') % 5, type=float, default=5.0)
|
parser.add_argument('-dm', '--duration-marquee', metavar=_('SECONDS'), help=_('Duration of scrolling comment display [default: %s]') % 5, type=float, default=5.0)
|
||||||
parser.add_argument('-ds', '--duration-still', metavar=_('SECONDS'), help=_('Duration of still comment display [default: %s]') % 5, type=float, default=5.0)
|
parser.add_argument('-ds', '--duration-still', metavar=_('SECONDS'), help=_('Duration of still comment display [default: %s]') % 5, type=float, default=5.0)
|
||||||
|
parser.add_argument('-fl', '--filter', help=_('Regular expression to filter comments'))
|
||||||
parser.add_argument('-p', '--protect', metavar=_('HEIGHT'), help=_('Reserve blank on the bottom of the stage'), type=int, default=0)
|
parser.add_argument('-p', '--protect', metavar=_('HEIGHT'), help=_('Reserve blank on the bottom of the stage'), type=int, default=0)
|
||||||
parser.add_argument('-r', '--reduce', action='store_true', help=_('Reduce the amount of comments if stage is full'))
|
parser.add_argument('-r', '--reduce', action='store_true', help=_('Reduce the amount of comments if stage is full'))
|
||||||
parser.add_argument('file', metavar=_('FILE'), nargs='+', help=_('Comment file to be processed'))
|
parser.add_argument('file', metavar=_('FILE'), nargs='+', help=_('Comment file to be processed'))
|
||||||
@ -799,6 +806,11 @@ def main():
|
|||||||
height = int(height)
|
height = int(height)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise ValueError(_('Invalid stage size: %r') % args.size)
|
raise ValueError(_('Invalid stage size: %r') % args.size)
|
||||||
|
try:
|
||||||
|
if args.filter:
|
||||||
|
Filter = re.compile(args.filter)
|
||||||
|
except:
|
||||||
|
raise ValueError(_('Invalid filter: %s') % args.filter)
|
||||||
Danmaku2ASS(args.file, args.format, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.duration_marquee, args.duration_still, args.reduce)
|
Danmaku2ASS(args.file, args.format, args.output, width, height, args.protect, args.font, args.fontsize, args.alpha, args.duration_marquee, args.duration_still, args.reduce)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user