X-Git-Url: http://git.osdn.net/view?p=rec10%2Frec10-git.git;a=blobdiff_plain;f=rec10%2Ftrunk%2Fsrc%2Ftv2ts.py;h=bb879652d89f1e0415cbeea8eebb85f2fa413add;hp=3773297159f4c35bfb7a2325e61ca5b8c9b3c5f0;hb=d63ca135202a679bd918561b65e806966f94546e;hpb=d038619da4a8b6e3fd49cf3295b164e2661e028b diff --git a/rec10/trunk/src/tv2ts.py b/rec10/trunk/src/tv2ts.py index 3773297..bb87965 100644 --- a/rec10/trunk/src/tv2ts.py +++ b/rec10/trunk/src/tv2ts.py @@ -1,44 +1,52 @@ #!/usr/bin/python # coding: UTF-8 +# Rec10 TS Recording Tools +# Copyright (C) 2009-2012 Yukikaze #import sys # モジュール属性 argv を取得するため import commands import os -import shutil +import os.path import time -import sys +import traceback import configreader import status import recdblist +import recording_earth_pt1 mypath = str(os.path.dirname(os.path.abspath(__file__))) + "/" -def tv2tsmix(pout, ch, time): - tv2b25ts(pout + ".b25", ch, time) - b252tsmix(pout + ".b25", pout) +def tv2tsmix(pout, ch, time,tsid="0",getlog=0): + tv2b25ts(pout + ".b25", ch, time,tsid) + 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) +def tv2ts(pout, ch, csch, time,tsid): + if ch.replace(" ","").replace("CS","").isdigit(): + if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 + status.changeBSCSRecording(1) + else: + status.changeTERecording(1) + try: + tv2b25ts(pout + ".b25", ch, time,tsid) + 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 @@ -50,92 +58,81 @@ 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(" ","").replace("CS","").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): +def tv2b25ts(pout, ch, time,tsid): + if recording_earth_pt1.useDVB()==0: + exe = configreader.getConfPath('recpt1') + if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 + status.changeBSCSRecording(1) + else: + status.changeTERecording(1) try: - #os.remove(path + "/" + t + ext) - "" + 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) + elif recording_earth_pt1.useDVB()==1: + if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 + status.changeBSCSRecording(1) + else: + status.changeTERecording(1) + try: + recording_earth_pt1.record(ch,tsid,pout,time,0) + 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) + if os.path.exists(pout): + try: + os.chmod(pout,0755) except: "" -def tv2b25ts(pout, ch, time): - exe = configreader.getpath('recpt1') - if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.changeBSCSRecording(1) - else: - status.changeTERecording(1) - doexe = exe + ' ' + ch + ' ' + time + ' \'' + pout + '\'' - recdblist.printutf8(doexe) - txt=u"####recpt1-log####\n" - txt = txt + unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8') - logo=pout.replace(".ts.b25",".log") - f=open(logo,'w') - f.write(txt.encode('utf-8')) - f.close() - 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)): + 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.encode('utf-8')) - f.close() + recdblist.addLog(pin, doexe, u"b25ログ-コマンド") + recdblist.addLog(pin, txt, u"b25ログ-詳細") + recdblist.addCommandLogZip(pin, "b25", "b25", doexe, txt) + 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) + tssplitterex=configreader.getConfPath("java")+" -jar "+configreader.getConfPath("jTsSplitter") + doexe =tssplitterex + " \""+ pin + "\" \""+ pout + "\" " + str(csch) doexe = "nice -n 18 " + doexe - logo=pin.replace(".ts.tsmix",".log") os.environ['LANG']="ja_JP.UTF-8" txt = unicode(commands.getoutput(doexe.encode('utf-8')),'utf-8') - stxt=txt - txt = "\n####tssplit-log####\nCommand:"+doexe+"\nlog:\n"+stxt - f=open(logo,'a') - f.write(txt.encode('utf-8')) - f.close() + 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)