X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=rec10%2Ftrunk%2Fsrc%2Ftimerec.py;h=2e941f56c5250b46b18694a224483e967b8c1a3f;hb=80e7263645a70a5d2dd8ed65d7c0950467d74f8e;hp=91b5b764a91ef72c653924e1b6680c0d3cdf6276;hpb=a217064c262340d4449ccf7064c0e640b1f16bf7;p=rec10%2Frec10-git.git diff --git a/rec10/trunk/src/timerec.py b/rec10/trunk/src/timerec.py index 91b5b76..2e941f5 100644 --- a/rec10/trunk/src/timerec.py +++ b/rec10/trunk/src/timerec.py @@ -11,7 +11,6 @@ import configreader #import japanesenkf import ts2x264 import tv2avi -import tv2ts import recdb import chdb import status @@ -24,9 +23,8 @@ def task(): 数分毎に実行されるタスク処理 予定によって子プロセスを生成し処理する。 """ + recdb.delete_old("6") tasks=recdb.getnow("1") - #tasks=recdb.getall() - print tasks if len(tasks)==0: update=chdb.update() print "番組表更新処理" @@ -43,22 +41,42 @@ def task(): print bctype epgdb.updatebc(bctype) sys.exit(0) + for task in tasks: - #value=line.split(",") - if task["type"]=="res":#"res,"+chtxt+","+title+","+btime+","+etime+","+opt + try: chtxt=task['chtxt'] + except: + chtxt="" + try: title=task['title'] + except: + title="" + try: btime=task['btime'] + bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") + except: + btime="" + bt=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S") + try: etime=task['etime'] + et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") + except: + etime="" + et=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S") + try: opt=task['opt'] - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - tnow=datetime.datetime.now() - dt=bt-tnow - dt=dt.days*24*60*60+dt.seconds - print dt - if dt<58*60*60: - recdb.delrec(title,chtxt,btime) - recdb.lastrecreserv(title,chtxt,btime,etime,opt) + except: + opt="" + tnow=datetime.datetime.now() + dtt=bt-tnow# + dt=dtt.days*24*60*60+dtt.seconds + #value=line.split(",") + if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt + if dt<58*60: + recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime) + #recdb.delrec(title,chtxt,btime) + recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt) + #recdb.lastrecreserv(title,chtxt,btime,etime,opt) """if dt >30*60: pid=os.fork() if pid>0:#親プロセスの場合 @@ -68,93 +86,56 @@ def task(): sys.exit(0) """ - elif task["type"]=="key":#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt - chtxt=task['chtxt'] - #title=task['title'] - btime=task['btime'] - etime=task['etime'] - keyword=task['title'] + elif task["type"]==recdb.REC_KEYWORD:#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt deltatime=task['deltatime'] - opt=task['opt'] - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - tnow=datetime.datetime.now() - dt=bt-tnow - dt=dt.days*24*60*60+dt.seconds - #print dt - if dt<30*60*60: - recdata=epgdb.searchtime(keyword,btime,deltatime) - if len(recdata)>0: - recdb.delkey(keyword,chtxt,btime,deltatime) - recdata=recdata[0] - #print recdata - recds=recdata.split(",") - chtxt=recds[0] - title=recds[1] - btime=recds[2] - etime=recds[3] - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") - btime=bt.strftime("%Y-%m-%d %H:%M:%S") - etime=et.strftime("%Y-%m-%d %H:%M:%S") - recdb.lastrecreserv(title,chtxt,btime,etime,opt) - elif task["type"]=="keyevery":#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday - chtxt=task['chtxt'] - #title=task['title'] - btime=task['btime'] - etime=task['etime'] - keyword=task['title'] + + if dt<30*60: + recdatum=epgdb.searchtime(title,btime,deltatime) + if len(recdatum)>0: + #recdb.delkey(title,chtxt,btime,deltatime) + recdb.del_reckey(recdb.REC_KEYWORD, title, chtxt, btime) + for recdata in recdatum: + #recdata=recdata[0] + #print recdata + recds=recdata.split(",") + chtxt=recds[0] + title=recds[1] + btime=recds[2] + etime=recds[3] + bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") + et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") + btime=bt.strftime("%Y-%m-%d %H:%M:%S") + etime=et.strftime("%Y-%m-%d %H:%M:%S") + recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt) + else : + print "nothing match" + elif task["type"]==recdb.REC_KEYWORD_EVERY_SOME_DAYS:#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday deltatime=task['deltatime'] - opt=task['opt'] deltaday=task['deltaday'] dd=datetime.timedelta(days=int(deltaday)) - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") - tnow=datetime.datetime.now() - dt=bt-tnow - dtt=dt.days*24*60*60+dt.seconds - if dt.days<0: - recdb.delevery(keyword,chtxt,btime,deltatime,deltaday) + if dtt.days<0: + recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime) bt=bt+dd et=et+dd btxt=bt.strftime("%Y-%m-%d %H:%M:%S") etxt=et.strftime("%Y-%m-%d %H:%M:%S") - recdb.everyreserv(keyword,chtxt,btxt,etxt,deltatime,opt,deltaday) - elif dtt<30*60*60: - recdb.keyreserv(keyword,chtxt,btime,etime,deltatime,opt) - recdb.delevery(keyword,chtxt,btime,deltatime,deltaday) + recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday) + elif dt<30*60*60: + recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt) + recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime) + #recdb.delevery(keyword,chtxt,btime,deltatime,deltaday) bt=bt+dd et=et+dd btxt=bt.strftime("%Y-%m-%d %H:%M:%S") etxt=et.strftime("%Y-%m-%d %H:%M:%S") - recdb.everyreserv(keyword,chtxt,btxt,etxt,deltatime,opt,deltaday) - """ - recdata=epgdb.searchtime(keyword,btime,deltatime) - if len(recdata)>0: - recdata=recdata[0] - recds=recdata.split(",") - chtxt=recds[0] - title=recds[1] - btime=recds[2] - etime=recds[3] - recdb.lastrecreserv(title,chtxt,btime,etime,opt) - """ - elif task["type"]=="rec":#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt - chtxt=task['chtxt'] - title=task['title'] - btime=task['btime'] - etime=task['etime'] - #keyword=task['keyword'] - #deltatime==task['deltatime'] - opt=task['opt'] - - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - tnow=datetime.datetime.now() - dt=bt-tnow - dt=dt.days*24*60*60+dt.seconds - #print "dt="+str(dt) - if dt<6*60*60: - recdb.dellastrec(title,chtxt,btime) - recdb.recend(title,chtxt,btime,etime,opt) + recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday) + elif task["type"]==recdb.REC_FINAL_RESERVE:#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt + print dt + if dt<6*60: + #recdb.dellastrec(title,chtxt,btime) + recdb.del_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime) + #recdb.recend(title,chtxt,btime,etime,opt) + recdb.rec_reckey(recdb.REC_TS_DECODING, title, chtxt, btime, etime, opt) print "録画開始" pid=os.fork() if pid>0:#親プロセスの場合 @@ -163,36 +144,25 @@ def task(): #print title tv2avi.timetv2avi(recpath+"/"+title+".avi",chtxt,btime,etime,opt) if not os.access(recpath+"/"+title+".ts", os.F_OK): - recdb.delend(title,chtxt,btime) - recdb.misrecwrite(title,chtxt,btime,etime,opt) + #recdb.del_reckey("tsfin", title, chtxt, btime) + recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime) + recdb.rec_reckey(recdb.REC_MISS_DECODE, title, chtxt, btime, etime, opt) + else: + recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime) + tnow=datetime.datetime.now() + bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") + et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") + dt=tnow-bt + bt=tnow+datetime.timedelta(seconds=600) + et=et+dt+datetime.timedelta(seconds=600) + btime=bt.strftime("%Y-%m-%d %H:%M:%S") + etime=et.strftime("%Y-%m-%d %H:%M:%S") + recdb.rec_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime,etime,opt) + recdb.rec_reckey(recdb.REC_FIN_DECODE,title,chtxt,btime,etime,opt) sys.exit(0) - elif task["type"]=="b25-avi": - title=task['title'] - opt=task['opt'] - pid=os.fork() - """if pid>0:#親プロセスの場合 - "" - else: - #print title - tv2avi.b252avi(recpath+"/"+title+".avi", chtxt,opt) - #tv2avi.timetv2avi(recpath+"/"+title+".avi",chtxt,btime,etime,opt) - if not os.access(recpath+"/"+title+".avi", os.F_OK): - recdb.delend(title,chtxt,btime) - recdb.misrecwrite(title,chtxt,btime,etime,opt) - sys.exit(0)""" - elif task["type"]=="ts2avi": - title=task['title'] - opt=task['opt'] - btime=task['btime'] - etime=task['etime'] - chtxt=task['chtxt'] - tnow=datetime.datetime.now() - bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S") - et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S") - dt=bt-tnow - dt=dt.days*24*60*60+dt.seconds + elif task["type"]==recdb.REC_ENCODE_QUE: if dt<10*60: - if status.getEncoding()<3: + if status.getEncoding()<2: pid=os.fork() if pid>0:#親プロセスの場合 "" @@ -202,16 +172,20 @@ def task(): pin=recpath+"/"+title+".ts" if re.search("d",opt): pin=recpath+"/"+title+"sa.avi" + if re.search("5",opt): + pin=recpath+"/"+title+"sa.avi" pout=recpath+"/"+title+".avi" print pin+":"+pout+":"+opt + recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime) + recdb.rec_reckey("local", title, chtxt, btime, etime, opt) ts2x264.ts2x264(pin, pout, opt) - recdb.del_reckey("ts2avi",title,chtxt,btime) + #tv2avi.timetv2avi(recpath+"/"+title+".avi",chtxt,btime,etime,opt) sys.exit(0) else: - recdb.del_reckey("ts2avi",title,chtxt,btime) + recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime) bt=bt+datetime.timedelta(seconds=600) et=et+datetime.timedelta(seconds=600) btime=bt.strftime("%Y-%m-%d %H:%M:%S") etime=et.strftime("%Y-%m-%d %H:%M:%S") - recdb.rec_reckey("ts2avi",title,chtxt,btime,etime,opt) + recdb.rec_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime,etime,opt)