X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=rec10%2Ftrunk%2Fsrc%2Ftv2ts.py;h=8e2c7e7730f04dfb5f6d83811c8e9cf76583aafc;hb=f6022365e728801ca9ef715b78c7c9c807990cfa;hp=a01b0260eda0722bd3bc8d2089292f53d6c94ae1;hpb=2d0fd598eec8b926e8e5662221f3f4a07c9dd72e;p=rec10%2Frec10-git.git diff --git a/rec10/trunk/src/tv2ts.py b/rec10/trunk/src/tv2ts.py index a01b026..8e2c7e7 100644 --- a/rec10/trunk/src/tv2ts.py +++ b/rec10/trunk/src/tv2ts.py @@ -3,41 +3,47 @@ #import sys # モジュール属性 argv を取得するため import commands import os -import shutil +import os.path import time -import sys +import traceback import configreader import status +import recdblist mypath = str(os.path.dirname(os.path.abspath(__file__))) + "/" -def tv2tsmix(pout, ch, time): +def tv2tsmix(pout, ch, time,getlog=0): tv2b25ts(pout + ".b25", ch, time) - b252tsmix(pout + ".b25", pout) + txt=b252tsmix(pout + ".b25", pout) + return txt #if os.access(pout, os.F_OK): # try: # os.remove(pout + ".b25") # except: # "" def tv2ts(pout, ch, csch, time): - ext = os.path.splitext(pout)[1]#ext=".なんたら" - tempt = os.path.split(pout) - path = tempt[0] - if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.changeBSCSRecording(1) - else: - status.changeTERecording(1) - tv2b25ts(pout + ".b25", ch, time) - if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.changeBSCSRecording(-1) + if ch.replace(" ","").isdigit(): + if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 + status.changeBSCSRecording(1) + else: + status.changeTERecording(1) + try: + tv2b25ts(pout + ".b25", ch, time) + except Exception, inst: + recdblist.addCommonlogEX(u"Error",u"tv2ts(tv2ts.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 + status.changeBSCSRecording(-1) + else: + status.changeTERecording(-1) else: - status.changeTERecording(-1) + ch="0" + csch="0" b252tsmix(pout + ".b25", pout + ".tsmix") tch="0" - if csch!="0": + if csch!=u"0": tch=csch - elif ch=="101": + elif ch==u"101": tch="101" - elif ch=="102": + elif ch==u"102": tch="102" #else: # tch=ch @@ -49,88 +55,59 @@ def tv2ts(pout, ch, csch, time): except: "" def b252ts(pout, ch, csch): - ext = os.path.splitext(pout)[1]#ext=".なんたら" - tempt = os.path.split(pout) - path = tempt[0] b252tsmix(pout + ".b25", pout + ".tsmix") - tch="0" - if csch!="0": - tch=csch - elif ch=="101": - tch="101" - elif ch=="102": - tch="102" - #else: - # tch=ch + tch=u"0" + if ch.replace(" ","").isdigit(): + if csch!=u"0": + tch=csch + elif ch==u"101": + tch=u"101" + elif ch==u"102": + tch=u"102" + else: + tch="0" tsmix2ts(pout + ".tsmix", pout, tch) - if os.access(pout, os.F_OK): - try: - #os.remove(path + "/" + t + ext) - "" - except: - "" def tv2b25ts(pout, ch, time): - exe = configreader.getpath('recpt1') + exe = configreader.getConfPath('recpt1') if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 status.changeBSCSRecording(1) else: status.changeTERecording(1) - doexe = exe + ' ' + ch + ' ' + time + ' \'' + pout + '\'' - print doexe - txt="####recpt1-log####\n" - txt = txt + commands.getoutput(doexe) - logo=pout.replace(".ts.b25",".log") - f=open(logo,'w') - f.write(txt) - f.close() + try: + doexe = exe + ' ' + ch + ' ' + time + ' \'' + pout + '\'' + recdblist.printutf8(doexe) + recdblist.addLog(pout, doexe, u"recpt1ログ-コマンド") + recdblist.addLog(pout, unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8'), u"recpt1ログ-詳細") + except Exception, inst: + recdblist.addCommonlogEX(u"Error",u"tv2b25ts(tv2ts.py)", str(type(inst)),str(inst)) if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 status.changeBSCSRecording(-1) else: status.changeTERecording(-1) -def tv2b25ts_b25(pout, ch, time): - exe = configreader.getpath('recpt1') - doexe = exe + ' --b25 ' + ch + ' ' + time + ' \'' + pout + '\'' - os.system(doexe) def b252tsmix(pin, pout): - if not (os.path.exists(pout) and os.path.getsize(pin)==os.path.getsize(pout)): - exe = configreader.getpath('b25') - #doexe = exe.encode('utf-8') + u' \"' + pin.encode('utf-8') + u'\" \"' + pout.encode('utf-8') + u'\"' + if not (os.path.exists(pout) and os.path.getsize(pin)>os.path.getsize(pout)*0.95 and os.path.getsize(pin)1000: - s=s-1000 - stxt=txt[s:] - else: - stxt=txt - s=stxt.find("\n") - if s>0: - s=s+len("\n") - stxt=stxt[s:] - txt = "\n####b25-log####\n"+stxt - f=open(logo,'a') - f.write(txt) - f.close() + recdblist.printutf8(doexe) + txt = unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8') + recdblist.addLog(pin, doexe, u"b25ログ-コマンド") + recdblist.addLog(pin, txt, u"b25ログ-詳細") + return txt def tsmix2ts(pin, pout, csch):#csch=0ならcsの処理をしない - """if csch==0: - shutil.move(pin,pout) - else:""" - doexe = configreader.getpath("tssplitter") + " \""+ pin + "\" \""+ pout + "\" " + str(csch) + doexe = configreader.getConfPath("tssplitter") + " \""+ pin + "\" \""+ pout + "\" " + str(csch) doexe = "nice -n 18 " + doexe - logo=pin.replace(".ts.tsmix",".log") os.environ['LANG']="ja_JP.UTF-8" - txt = commands.getoutput(doexe) - stxt=txt - txt = "\n####tssplit-log####\nCommand:"+doexe+"\nlog:\n"+stxt - f=open(logo,'a') - f.write(txt) - f.close() + txt = unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8') + recdblist.addLog(pin, doexe, u"TsSplitログ-コマンド") + recdblist.addLog(pin, txt, u"TsSplitログ-詳細") time.sleep(1) - if os.access(pout, os.F_OK): + if os.access(pout, os.F_OK) and os.path.getsize(pout)>10*1000*1000: os.remove(pin)