OSDN Git Service

some fixes
[rec10/rec10-git.git] / rec10 / trunk / src / timerec.py
index 91b5b76..2e941f5 100644 (file)
@@ -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)