expose font/size as commandline flags

This commit is contained in:
j 2018-09-09 14:44:48 +02:00
parent 53cc05c7ff
commit d1c5f301b0

View file

@ -265,9 +265,9 @@ sequence_template = '''
def wrap_text(start, end, text, fontsize=30): def wrap_text(start, end, text, fontsize=30):
margin = 40 margin = 40
width = 640 width = 640
#font = os.path.join(base, 'DejaVuSansCondensedBold.ttf') font = os.path.join(base, 'DejaVuSansCondensedBold.ttf')
font = '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf' if not os.path.exists(font):
font = '/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf'
n = 10 n = 10
alltxt = [] alltxt = []
text = ox.strip_tags(ox.decode_html(text)) text = ox.strip_tags(ox.decode_html(text))
@ -295,8 +295,11 @@ class Fcp:
font = 'Courier New' font = 'Courier New'
#font = 'Lucida Grande' #font = 'Lucida Grande'
def __init__(self): def __init__(self, size=None, font=None):
pass if size is not None:
self.fontsize = size
if font is not None:
self.font = font
def add_srt(self, srt, wrap=True): def add_srt(self, srt, wrap=True):
data = ox.srt.load(srt) data = ox.srt.load(srt)
@ -343,19 +346,22 @@ class Fcp:
f.write(s) f.write(s)
f.write(fcp_footer) f.write(fcp_footer)
if __name__ == '__main__': if __name__ == '__main__':
usage = "usage: %prog srtfile" usage = "usage: %prog srtfile"
parser = OptionParser(usage=usage) parser = OptionParser(usage=usage)
parser.add_option('-w', '--wrap', dest='wrap', help='rewrap text', action="store_true") parser.add_option('-w', '--wrap', dest='wrap', help='rewrap text', action="store_true")
parser.add_option('-s', '--size', dest='size', help='font size, default=18', type=int, default=18)
parser.add_option('-f', '--font', dest='font', help='font name, default="Courier New"', type=str, default='Courier New')
(opts, args) = parser.parse_args() (opts, args) = parser.parse_args()
if not args: if not args:
parser.print_help() parser.print_help()
sys.exit() sys.exit()
srt = args[0] srt = args[0]
output = srt.replace('.srt', '') + '.xml' output = srt.replace('.srt', '') + '.xml'
fcp = Fcp() fcp = Fcp(font=opts.font, size=int(opts.size))
fcp.add_srt(srt, opts.wrap) fcp.add_srt(srt, opts.wrap)
fcp.save(output) fcp.save(output)