суббота, 28 сентября 2013 г.

Fix subtitles in srt format

Small helper script to add time offset to entire entries in subtitle file:
 import sys  
 assert(len(sys.argv[1]) > 3)  
 fin  = open(sys.argv[1], 'r')  
 fout = open(sys.argv[2], 'w')  
 delta = int(sys.argv[3])  
 def updClock(m, s):  
   while s >= 60:  
     s -= 60  
     m += 1  
   while s < 0:  
     s += 60   
     m -= 1  
   return m,s    
 def adddelta(time, dt):  
   # 00:00:37,149  
   h,m,s_ms = time.split(':')  
   s,ms = s_ms.split(',')  
   m,s = updClock(int(m), int(s) + dt)  
   h,m = updClock(int(h), int(m))  
   return '%d:%d:%d,%s'%(h,m,s,ms)     
 for line in fin.readlines():  
   # 00:00:37,149 --> 00:00:39,083  
   parts = line.split(' --> ')  
   if len(parts) <= 1:  
     fout.write(line)  
     continue  
   fout.write(adddelta(parts[0], delta) + ' --> ' + adddelta(parts[1], delta))  
 fout.close()  
Usage: python

вторник, 12 марта 2013 г.

IDEA Ant script updater for Scala (Updated for 2.10) (Scons builder)


The way build yours IDEA project with Scala sources with command line tools:

- Generate <project-name>.xml Ant build script from IDE (Build -&gt; Generate Ant Build ...)
- Update this xml with given (under cut) scons builder
- Run Ant

Example:
 dataprocessor_ant_xml = env.IdeaAntUpdater(  
   target = 'DataProcessor/dataprocessor_with_main.xml',  
   source = 'DataProcessor/dataprocessor.xml',  
   jar2MainClass = {   
     'DataProcessor.jar' : 'com.kavanga.StreamProcessor',   
   },  
   scala = True,  
 )  
 dataprocessor_jar = env.SimpleAnt(  
   target = [   
     'DataProcessor/out/artifacts/DataProcessor_jar/DataProcessor.jar',  
   ],  
   source = [ dataprocessor_ant_xml, 'DataProcessor/dataprocessor.properties' ] + protobuf_nodes,  
   source_dirs = [ 'DataProcessor/src' ],  
 )