#!/usr/bin/env python
#coding:utf8
input_file=None
version=\'0.1\'
progname=\'subconvert\'
from optparse import OptionParser
usage = u"%prog [options]"
parser = OptionParser(usage=usage,version="%s %s" % (progname,version) )
parser.add_option("-f", dest="input_file",help=u"Путь к файлу", metavar="INPUT_FILE",default=input_file)
opts,args = parser.parse_args()
import sys,os
if not opts.input_file:
print "Не указан обрабатываемый файл"
exit(0)
else:
input_file=opts.input_file
try:
file_name=\'\'.join(input_file.split(\'.\')[:-1])
file_ext=\'\'.join(input_file.split(\'.\')[-1:])
ass=file(input_file,\'r\')
except:
print "Не удалось открыть файл %s" % input_file
os.system("notify-send \'Не удалось открыть файл %s\'" % input_file)
exit(0)
import re
line=re.compile(r\'\\d+,(\\d+:\\d+:\\d+.\\d+),(\\d+:\\d+:\\d+.\\d+),[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,(.*)\')
strip=re.compile(r\'{[^}]*}\')
def timeto(time_string):
try:
h,m,s=time_string.replace(\',\',\'.\').split(\':\')
if len(s.split(\'.\'))==2: s,ms=s.split(\'.\')
else: ms=\'000\'
if len(ms)==1: ms+=\'00\'
if len(ms)==2: ms+=\'0\'
return "%02d:%02d:%02d,%s" % ( int(h),int(m),int(s), ms )
except:
print "Не удалось парсить строку времени %s" % time_string
exit(1)
srt=list()
for ln in ass:
if line.findall(ln):
start=line.findall(ln)[0][0]
finish=line.findall(ln)[0][1]
text=strip.sub(\'\', line.findall(ln)[0][2])
srt.append("%s --> %s\\n%s" % (timeto(start) ,timeto(finish), text.strip()))
srt.sort()
f=open(file_name+\'.srt\' ,\'w\')
for n,i in enumerate(srt):
f.write("%d\\n%s\\n\\n" % (n+1,i))
f.close()