OSDN Git Service

implement mysql function.(RC1)
[rec10/rec10-git.git] / rec10 / trunk / src / timerec.py
index 2a2a0ab..9cc4f9d 100644 (file)
@@ -23,28 +23,34 @@ def task():
     予定によって子プロセスを生成し処理する。
     """
     recdb.delete_old("6")
-    tasks=recdb.getnow("1")
+    tasks=recdb.getnow("2")
+    #print tasks
     inum=recdb.countRecNow("1")
     print "now-rectask"
-    print inum+status.getBSCSRecording()+status.getTERecording()
+    print "inum:"+str(inum)+"bscsrec:"+str(status.getBSCSRecording())+"terec:"+str(status.getTERecording())
     if inum+status.getBSCSRecording()+status.getTERecording() < 2:
-    #if ( inum < 2 ) and ( status.getBSCSRecording()+status.getTERecording() < 2 ):#1個ならTE|BS/CSのどちらかが埋まってる可能性はないので1以下にした。
         update=chdb.update()
         #print "番組表更新処理"
         print update
-        if len(update)>0:
+        if len(update)>0 and status.getEPGUpdating()==0:
             print "番組表を更新"
-            print update
+            status.setEPGUpdating(1)
             pid=os.fork()
-            if pid>0:#親プロセスの場合
+            if pid!=0:#親プロセスの場合
                 ""
             else:#子プロセスの場合 アップデートを行って終了
+                i=0
                 for bctype in update:
                     time.sleep(1)
                     print bctype
                     epgdb.updatebc(bctype)
-                sys.exit(0)
-
+                    update=chdb.update()
+                    i=i+1
+                    print update
+                    if i>10:
+                        break
+                status.setEPGUpdating(0)
+                sys.exit()
     for task in tasks:
         #print task
         try:
@@ -72,26 +78,38 @@ def task():
         except:
             opt=""
         tnow=datetime.datetime.now()
-        dtt=bt-tnow#
+        dtt=bt-tnow
         dt=dtt.days*24*60*60+dtt.seconds
-        
         if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt
             isUpdate=0
             print dt
-            if (dt<58*60 and dt>10*60):
+            if (dt<58*60 and dt>20*60):
                 pid=os.fork()
-                if pid>0:#親プロセスの場合
+                if pid!=0:#親プロセスの場合
                     ""
                 else:#子プロセスの場合 アップデートを行って終了
-                    if len(chdb.chtxtsearch(chtxt)['ch'])>2:
-                        if recdb.countRecNow_minutes_BSCS("10")+status.getBSCSRecording() <2:
+                    cht=chdb.chtxtsearch(chtxt)['bctype']
+                    if cht.find('te')!=-1:
+                        cht='te'
+                    else:
+                        cht='bscs'
+                    if cht=='bscs':
+                        gettaskbscs=recdb.countRecNow_minutes_BSCS("10")
+                        getnowbscs=status.getBSCSRecording()
+                        bscs=getnowbscs+gettaskbscs
+                        if bscs <2:
+                            print "now(bscs):"+str(getnowbscs)+" task(bscs):"+str(gettaskbscs)
                             epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
                             time.sleep(10)
                             isUpdate=1
                         else:
                             isUpdate=0
-                    if len(chdb.chtxtsearch(chtxt)['ch'])<3:
+                    if cht=="te":
+                        gettaskte=recdb.countRecNow_minutes_TE("10")
+                        getnowte=status.getTERecording()
+                        bscs=getnowte+gettaskte
                         if recdb.countRecNow_minutes_TE("10")+status.getTERecording() <2:
+                            print "now(te):"+str(getnowte)+" task(te):"+str(gettaskte)
                             epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
                             time.sleep(10)
                             isUpdate=1
@@ -118,7 +136,7 @@ def task():
                             print "nothing match"
                     else:
                         ""
-                    sys.exit(0)
+                    sys.exit()
             elif dt<=10*60:
                 try:
                     recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
@@ -130,18 +148,18 @@ def task():
             deltatime=task['deltatime']
             if dt<90*60:
                 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,deltatime,chtxt)
-                chtxtt=recdata[0]
-                titlet=recdata[1]
-                btimet=recdata[2]
-                etimet=recdata[3]
-                bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
-                et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
-                btimet=bt.strftime("%Y-%m-%d %H:%M:%S")
-                etimet=et.strftime("%Y-%m-%d %H:%M:%S")
-                if chtxt!="":
+                if recdata[1]!="":
+                    chtxtt=recdata[0]
+                    titlet=recdata[1]
+                    btimet=recdata[2]
+                    etimet=recdata[3]
+                    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.del_reckey(recdb.REC_KEYWORD, title, chtxt, btime)
-                        recdb.rec_reckey(recdb.REC_FINAL_RESERVE, titlet, chtxtt, btimet, etimet, opt)
+                        recdb.rec_reckey(recdb.REC_RESERVE, titlet, chtxtt, btimet, etimet, opt)
                     except Exception,inst:
                         print type(inst)
                         print inst
@@ -158,7 +176,7 @@ def task():
                 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
                 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
                 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
-            elif dt<30*60*60:
+            elif dt<120*60:
                 recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt)
                 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
                 bt=bt+dd
@@ -174,7 +192,7 @@ def task():
                 recdb.rec_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime, etime, opt)
                 print "録画開始"
                 pid=os.fork()
-                if pid>0:#親プロセスの場合
+                if pid!=0:#親プロセスの場合
                     ""
                 else:
                     #print title
@@ -189,12 +207,12 @@ def task():
                     btime=bt.strftime("%Y-%m-%d %H:%M:%S")
                     etime=et.strftime("%Y-%m-%d %H:%M:%S")
                     recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
-                    sys.exit(0)
+                    sys.exit()
         elif task["type"]==recdb.REC_TS_DECODE_QUE:
             if dt<10*60:
                 if status.getB25Decoding()<2:
                     pid=os.fork()
-                    if pid>0:#親プロセスの場合
+                    if pid!=0:#親プロセスの場合
                             ""
                     else:
                         pin=recpath+"/"+title
@@ -218,7 +236,7 @@ def task():
                         print checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")
                         if checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")==1:
                             os.remove(recpath+"/"+title+".ts.b25")
-                        sys.exit(0)
+                        sys.exit()
                 else:
                     recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
                     bt=bt+datetime.timedelta(seconds=600)
@@ -228,7 +246,7 @@ def task():
                     recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
         elif task["type"]==recdb.REC_ENCODE_QUE:
             if dt<10*60:
-                if status.getEncoding()<2:
+                if status.getEncoding()<int(configreader.getenv("enc_max")):
                     pid=os.fork()
                     if pid>0:#親プロセスの場合
                             ""
@@ -245,7 +263,7 @@ def task():
                         tv2avi.ts2avi(pin, pout, opt)
                         recdb.del_reckey(recdb.REC_ENCODE_LOCAL,title,chtxt,btime)
                         recdb.rec_reckey(recdb.REC_FIN_LOCAL, title, chtxt, btime, etime, opt)
-                        sys.exit(0)
+                        sys.exit()
                 else:
                     recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
                     bt=bt+datetime.timedelta(seconds=600)