#import japanesenkf
import ts2x264
import tv2avi
-import tv2ts
import recdb
import chdb
import status
数分毎に実行されるタスク処理
予定によって子プロセスを生成し処理する。
"""
+ recdb.delete_old("6")
tasks=recdb.getnow("1")
- #tasks=recdb.getall()
- print tasks
if len(tasks)==0:
update=chdb.update()
print "番組表更新処理"
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:#親プロセスの場合
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:#親プロセスの場合
#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:#親プロセスの場合
""
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)