X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=rec10%2Ftrunk%2Fsrc%2Ftimerec.py;h=5df579356e20a6a0ab4d86ddd91d66f932b6b9a4;hb=43c276a8a8e46246ca1c638e2b929d4cbe0afb7c;hp=405fee5f22170b64a1a1bac03ee4dabb15ad4684;hpb=acb708002a1283ec8fb3a0a84545a86583da5c20;p=rec10%2Frec10-git.git diff --git a/rec10/trunk/src/timerec.py b/rec10/trunk/src/timerec.py index 405fee5..5df5793 100644 --- a/rec10/trunk/src/timerec.py +++ b/rec10/trunk/src/timerec.py @@ -33,14 +33,14 @@ def task(): 予定によって子プロセスを生成し処理する。 """ try: - if rec10d.rec10db.select_installed_in_status()==0: + if rec10d.rec10db.select_installed_in_status()==0 or rec10d.rec10db.select_version_in_status() 0: break + time.sleep(5) + auto_process.update_all_timeline_epg() + sys.exit() + else: + pid = os.fork() + if pid != 0: + "" + else: + auto_process.update_all_timeline_epg() sys.exit() for task in tasks: typetxt = task["type"] @@ -173,10 +182,22 @@ def task(): if pid > 0:#親プロセスの場合 "" else: + makeMP4=0 + try: + if configreader.getenv("make_mp4")==1: + makeMP4=1 + except: + "" + if re.search("m", opt): + makeMP4=0 + if re.search("4", opt): + makeMP4=1 recdb.del_reckey(recdblist.REC_AVI_TO_MKV, title, chtxt, btime) recdb.rec_reckey(recdblist.REC_CHANGING_CANTAINER, title, chtxt, btime, etime, opt) - #tv2mp4.avi2mp4(os.path.join(recpath,title+".avi"),os.path.join(recpath,title+".mkv"),opt) - tv2mkv.avi2mkv(os.path.join(recpath,title+".avi"),os.path.join(recpath,title+".mkv"),opt) + if makeMP4==1: + tv2mp4.raw2mp4(os.path.join(recpath,title+".264"),os.path.join(recpath,title+".mp4"),opt) + else: + tv2mkv.raw2mkv(os.path.join(recpath,title+".264"),os.path.join(recpath,title+".mkv"),opt) recdb.del_reckey(recdblist.REC_CHANGING_CANTAINER, title, chtxt, btime) sys.exit() elif task["type"] == recdblist.REC_AVI_TO_MP4: @@ -185,9 +206,23 @@ def task(): if pid > 0:#親プロセスの場合 "" else: + makeMP4=0 + try: + if configreader.getenv("make_mp4")==1: + makeMP4=1 + except: + "" + if re.search("m", opt): + makeMP4=0 + if re.search("4", opt): + makeMP4=1 recdb.del_reckey(recdblist.REC_AVI_TO_MP4, title, chtxt, btime) recdb.rec_reckey(recdblist.REC_CHANGING_CANTAINER, title, chtxt, btime, etime, opt) - tv2mp4.avi2mp4(os.path.join(recpath,title+".avi"),os.path.join(recpath,title+".mp4"),opt) + if makeMP4==1: + tv2mp4.ts2mp4(pin, pout, opt) + tv2mp4.raw2mp4(os.path.join(recpath,title+".264"),os.path.join(recpath,title+".mp4"),opt) + else: + tv2mkv.raw2mkv(os.path.join(recpath,title+".264"),os.path.join(recpath,title+".mkv"),opt) recdb.del_reckey(recdblist.REC_CHANGING_CANTAINER, title, chtxt, btime) sys.exit() elif task["type"] == recdblist.REC_MKV_TO_MP4: @@ -232,15 +267,15 @@ def search_keyword(key): recdb.recreserv(titlet,chtxtt, btimet, etimet,topt) except Exception, inst: print "error occures in search_keyword_auto_jbk" - print type(inst) - print inst + print str(type(inst)) + print str(inst) else: try: recdb.add_auto_keyword(chtxtt, titlet, btimet, etimet) except Exception, inst: print "error occures in search_keyword" - print type(inst) - print inst + print str(type(inst)) + print str(inst) def type_reserve(typetxt,chtxt,title,bt,et,opt): btime = bt.strftime("%Y-%m-%d %H:%M:%S") etime = et.strftime("%Y-%m-%d %H:%M:%S") @@ -278,9 +313,9 @@ def type_reserve(typetxt,chtxt,title,bt,et,opt): auto_rec.add_key("ALL", titlen,exp+" "+longexp) recdblist.printutf8(u"追いかけ機能実行中: "+title+" : "+titlen+" "+btimen+" "+etimen) except Exception, inst: - print "Error happended in Oikake DB" - print type(inst) - print inst + print "Error happened in Oikake DB" + print str(type(inst)) + print str(inst) else: recdblist.printutf8(u"追いかけ機能エラー:番組データが見付かりません。") else: @@ -309,7 +344,7 @@ def type_reserve(typetxt,chtxt,title,bt,et,opt): auto_rec.add_key("ALL", titlen,exp+" "+longexp) recdblist.printutf8(u"追いかけ機能実行中: "+title+" : "+titlen+" "+btimen+" "+etimen) except Exception, inst: - print "Error happended in Oikake DB" + print "Error happened in Oikake DB" print type(inst) print inst elif dt <= 20 * 60: @@ -345,7 +380,13 @@ def type_final(typetxt,chtxt,title,bt,et,opt): if os.path.exists(ti): tcheck=tcheck+1 if re.search("N", opt) or tcheck>0: - newtitle=newtitle+u"_"+bt.strftime("%Y%m%d%H%M") + iff="" + try: + iff=u"("+configreader.getenv("iff")+u")_" + except: + iff="" + newtime=bt + newtitle=newtitle+u"_"+iff+newtime.strftime("%Y-%m-%dT%H-%M-%S") recdb.rec_reckey(typetxting, newtitle, chtxt, btime, etime, opt) recdblist.printutf8(u"録画開始 "+newtitle+" "+btime+" "+etime) tv2avi.timetv2b25(recpath + "/" + newtitle + ".avi", chtxt, btime, etime, opt) @@ -361,7 +402,10 @@ def type_final(typetxt,chtxt,title,bt,et,opt): etime = et.strftime("%Y-%m-%d %H:%M:%S") recdb.rec_reckey(typetxtdecque, newtitle, chtxt, btime, etime, opt) else: - shutil.copy(os.path.join(recpath,title+".ts.b25"), os.path.join(movepath,title+".ts.b25")) + try: + shutil.copy(os.path.join(recpath,title+".ts.b25"), os.path.join(movepath,title+".ts.b25")) + except: + "" recdb.rec_reckey(recdblist.REC_MOVE_END, newtitle, chtxt, btime, etime, opt) sys.exit() def type_keyword(typetxt,chtxt,title,bt,et,opt,deltatime): @@ -418,7 +462,6 @@ def type_keyword_every_day(type,chtxt,title,bt,et,opt,deltatime,deltaday): etxt = et.strftime("%Y-%m-%d %H:%M:%S") recdb.everyreserv(title, chtxt, btxt, etxt, deltatime, opt, deltaday) elif dt < 120 * 60: - recdb.keyreserv(title, chtxt, btime, etime, deltatime, opt) recdb.del_reckey(recdblist.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime) bt = bt + dd et = et + dd @@ -426,7 +469,23 @@ def type_keyword_every_day(type,chtxt,title,bt,et,opt,deltatime,deltaday): etxt = et.strftime("%Y-%m-%d %H:%M:%S") recdb.everyreserv(title, chtxt, btxt, etxt, deltatime, opt, deltaday) - + recdata = epgdb.searchtime2(title, btime, deltatime, chtxt) + if recdata[1] != "": + chtxtt = recdata[0] + titlet = recdata[1] + btimet = recdata[2] + etimet = recdata[3] + exp = recdata[4] + longexp = recdata[5] + category=recdata[6] + bt = datetime.datetime.strptime(btimet, "%Y-%m-%d %H:%M:%S") + et = datetime.datetime.strptime(etimet, "%Y-%m-%d %H:%M:%S") + btimet = bt.strftime("%Y-%m-%d %H:%M:%S") + etimet = et.strftime("%Y-%m-%d %H:%M:%S") + #try: + recdb.keyreserv(titlet, chtxtt, btimet, etimet, deltatime, opt) + else: + recdb.keyreserv(title, chtxt, btime, etime, deltatime, opt) def type_decode_que(typetxt,chtxt,title,bt,et,opt): btime = bt.strftime("%Y-%m-%d %H:%M:%S") etime = et.strftime("%Y-%m-%d %H:%M:%S") @@ -454,6 +513,11 @@ def type_decode_que(typetxt,chtxt,title,bt,et,opt): if not os.access(recpath + "/" + title + ".ts", os.F_OK): recdb.del_reckey(typetxting, title, chtxt, btime) recdb.rec_reckey(typetxtmiss, title, chtxt, btime, etime, opt) + else: + ch=checker.checkB25Decode(recpath + "/" + title + ".ts.b25", recpath + "/" + title + ".ts") + print ch + if ch == 1: + os.remove(recpath + "/" + title + ".ts.b25") bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S") et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S") dt = et-bt @@ -465,10 +529,15 @@ def type_decode_que(typetxt,chtxt,title,bt,et,opt): etime = et.strftime("%Y-%m-%d %H:%M:%S") recdb.rec_reckey(typetxtencque, title, chtxt, btime, etime, opt) else: - shutil.copy(os.path.join(recpath,title+".ts"), os.path.join(movepath,title+".ts")) + try: + shutil.copy(os.path.join(recpath,title+".ts"), os.path.join(movepath,title+".ts")) + except Exception, inst: + errtxt="Error happened in type_decode_que in timerec.\n" + errtxt=errtxt+"move ts error.\n" + errtxt=errtxt+str(type(inst))+"\n" + errtxt=errtxt+str(inst) + recdblist.addlog(os.path.join(recpath,title+".ts"), errtxt, "timerec-move(Decode) error") recdb.rec_reckey(recdblist.REC_MOVE_END, title, chtxt, btime, etime, opt) - if checker.checkB25Decode(recpath + "/" + title + ".ts.b25", recpath + "/" + title + ".ts") == 1: - os.remove(recpath + "/" + title + ".ts.b25") else: recdb.del_reckey(typetxtnow, title, chtxt, btime) bt = bt + datetime.timedelta(seconds=600) @@ -492,30 +561,57 @@ def type_encode_que(typetxt,chtxt,title,bt,et,opt): typetxtfin=recdblist.REC_FIN_LOCAL if dt < 10 * 60: if status.getEncoding() < int(configreader.getenv("enc_max")): + recdb.del_reckey(typetxtnow, title, chtxt, btime) + recdb.rec_reckey(typetxting, title, chtxt, btime, etime, opt) recdblist.printutf8(opt) pin = recpath + "/" + title + ".ts" if re.search("d", opt): pin = recpath + "/" + title + ".m2v" - if not os.path.exists(pin): - tv2avi.dualaudio2sep(os.path.join(recpath, title+".ts"),"167") + if not os.path.exists(pin) or os.path.getsize(pin)<100*1000: + paac2 = recpath + "/" + title + "_2.aac" + pmp32 = recpath + "/" + title + "_2.mp3" + if not os.path.exists(paac2) and not os.path.exists(pmp32): + tv2avi.dualaudio2sep(os.path.join(recpath, title+".ts"),"167") time.sleep(3) - if re.search("5", opt): - pin = recpath + "/" + title + ".sa.avi" - if not os.path.exists(pin): - tv2avi.pentaaudiots2avi(os.path.join(recpath, title+".ts"), pin) + elif re.search("5", opt): + pin = recpath + "/" + title + ".m2v" + if not os.path.exists(pin) or os.path.getsize(pin)<100*1000: + paac2 = recpath + "/" + title + "_2.aac" + pmp32 = recpath + "/" + title + "_2.mp3" + if not os.path.exists(paac2) and not os.path.exists(pmp32): + tv2avi.pentaaudio2sep(os.path.join(recpath, title+".ts")) time.sleep(3) - #pout = recpath + "/" + title + ".avi" - pout = recpath + "/" + title + ".mkv" + makeMP4=0 + try: + if configreader.getenv("make_mp4")==1: + makeMP4=1 + except: + "" + if re.search("m", opt): + makeMP4=0 + if re.search("4", opt): + makeMP4=1 recdblist.printutf8(pin) - #recdblist.printutf8(pin+":"+pout+":"+opt) - recdb.del_reckey(typetxtnow, title, chtxt, btime) - recdb.rec_reckey(typetxting, title, chtxt, btime, etime, opt) - tv2mkv.ts2mkv(pin, pout, opt) - #tv2mp4.ts2mp4(pin, pout, opt) - #tv2avi.ts2avi(pin, pout, opt) + if makeMP4==1: + pout = recpath + "/" + title + ".mp4" + tv2mp4.ts2mp4(pin, pout, opt) + else: + pout = recpath + "/" + title + ".mkv" + tv2mkv.ts2mkv(pin, pout, opt) recdb.del_reckey(typetxting, title, chtxt, btime) + time.sleep(10) if re.search("E", opt): - shutil.copy(os.path.join(recpath,title+".mp4"), os.path.join(movepath,title+".mp4")) + try: + if os.path.exists(os.path.join(recpath,title+".mp4")): + shutil.copy(os.path.join(recpath,title+".mp4"), os.path.join(movepath,title+".mp4")) + elif os.path.exists(os.path.join(recpath,title+".mkv")): + shutil.copy(os.path.join(recpath,title+".mkv"), os.path.join(movepath,title+".mkv")) + except Exception, inst: + errtxt="Error happened in type_encode_que in timerec.\n" + errtxt=errtxt+"move mkv/mp4 error.\n" + errtxt=errtxt+str(type(inst))+"\n" + errtxt=errtxt+str(inst) + recdblist.addlog(os.path.join(recpath,title+".ts"), errtxt, "timerec-move(Encode) error") recdb.rec_reckey(recdblist.REC_MOVE_END, title, chtxt, btime, etime, opt) recdb.rec_reckey(typetxtfin, title, chtxt, btime, etime, opt) sys.exit()