OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / rec10 / trunk / src / recdb.py
index fb5dd10..8f3b41b 100644 (file)
 #!/usr/bin/python
 # coding: UTF-8
 # Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
+# Copyright (C) 2009-2011 Yukikaze
 import chdb
+import n_gram
 import rec10d
-import recdb
-"""
-task names
-"""
-global REC_RESERVE
-global REC_FINAL_RESERVE
-global REC_END
-global REC_ENCODE_GRID
-global REC_ENCODE_LOCAL
-global REC_ENCODE_QUE
-global REC_MIXING_SOUND
-global REC_MISS_ENCODE
-global REC_KEYWORD
-global REC_KEYWORD_EVERY_SOME_DAYS
-global REC_FIN_DECODE
-global REC_FIN_LOCAL
-global REC_MISS_DECODE
-global REC_TS_DECODE_QUE
-global REC_TS_DECODING
-global REC_TS_RECORDING
-global REC_AVI_TO_MKV
-global REC_AVI_TO_MP4
-global REC_MKV_TO_MP4
-global REC_CHANGING_CANTAINER
+import recdblist
 
-#ここから処理のちに移動
-global REC_MOVE_AFTER_RECORD
-global REC_MOVE_AFTER_RECORD_FINAL
-global REC_MOVE_AFTER_RECORD_RECORDING
-global REC_MOVE_AFTER_DECODE
-global REC_MOVE_AFTER_DECODE_FINAL
-global REC_MOVE_AFTER_DECODE_RECORDING
-global REC_MOVE_AFTER_DECODE_DECODE_QUE
-global REC_MOVE_AFTER_DECODE_DECODING
-global REC_MOVE_AFTER_ENCODE
-global REC_MOVE_AFTER_ENCODE_FINAL
-global REC_MOVE_AFTER_ENCODE_RECORDING
-global REC_MOVE_AFTER_ENCODE_DECODE_QUE
-global REC_MOVE_AFTER_ENCODE_DECODING
-global REC_MOVE_AFTER_ENCODE_ENCODE_QUE
-global REC_MOVE_AFTER_ENCODE_ENCODING
-global REC_MOVE_END
-
-#ここから自動で提起される処理。
-global REC_AUTO_SUGGEST_REC
-global REC_AUTO_SUGGEST_DECODE
-global REC_AUTO_SUGGEST_ENCODE
-global REC_AUTO_SUGGEST_AVI2MP4
-global REC_AUTO_SUGGEST_MKV2MP4
-global REC_BAYES_SUGGEST
-global REC_AUTO_KEYWORD
-REC_RESERVE = "res"
-REC_FINAL_RESERVE = "rec"
-REC_END = "end"
-REC_ENCODE_GRID = "grid"
-REC_ENCODE_LOCAL = "local"
-REC_ENCODE_QUE = "ts2avi"
-REC_MIXING_SOUND = "mixsound"
-REC_MISS_ENCODE = "miss"
-REC_KEYWORD = "key"
-REC_KEYWORD_EVERY_SOME_DAYS = "keyevery"
-REC_FIN_DECODE = "tsfin"
-REC_FIN_LOCAL = "fin_local"
-REC_MISS_DECODE = "tsmiss"
-REC_TS_DECODE_QUE = "b252ts"
-REC_TS_DECODING = "tsdecoding"
-REC_TS_RECORDING = "tsrecording"
-REC_CHANGING_CANTAINER = "changingcontainer"
-REC_AVI_TO_MKV = "avi2mkv"
-REC_AVI_TO_MP4 = "avi2mp4"
-REC_MKV_TO_MP4 = "mkv2mp4"
-
-REC_MOVE_AFTER_RECORD = "move_rec"
-REC_MOVE_AFTER_RECORD_FINAL = "move_rec_final"
-REC_MOVE_AFTER_RECORD_RECORDING ="move_rec_recording"
-REC_MOVE_AFTER_DECODE = "move_dec"
-REC_MOVE_AFTER_DECODE_FINAL = "move_dec_final"
-REC_MOVE_AFTER_DECODE_RECORDING = "move_dec_recording"
-REC_MOVE_AFTER_DECODE_DECODE_QUE ="move_dec_que"
-REC_MOVE_AFTER_DECODE_DECODING = "move_dec_decoding"
-REC_MOVE_AFTER_ENCODE = "move_enc"
-REC_MOVE_AFTER_ENCODE_FINAL = "move_enc_final"
-REC_MOVE_AFTER_ENCODE_RECORDING = "move_enc_recording"
-REC_MOVE_AFTER_ENCODE_DECODE_QUE = "move_enc_decque"
-REC_MOVE_AFTER_ENCODE_DECODING = "move_enc_decoding"
-REC_MOVE_AFTER_ENCODE_ENCODE_QUE = "move_enc_encque"
-REC_MOVE_AFTER_ENCODE_ENCODING = "move_enc_encoding"
-REC_MOVE_END = "move_end"
-
-REC_AUTO_SUGGEST_REC = "auto_suggest_rec"
-REC_AUTO_SUGGEST_DECODE = "auto_suggest_dec"
-REC_AUTO_SUGGEST_ENCODE = "auto_suggest_enc"
-REC_AUTO_SUGGEST_AVI2MP4 = "auto_suggest_a24"
-REC_AUTO_SUGGEST_MKV2MP4 = "auto_suggest_m24"
-REC_AUTO_KEYWORD = "auto_keyword"
-REC_BAYES_SUGGEST ="bayes_suggest"
-
-def recreserv(title, chtxt, btime, etime, opt):#optにはa(アニメ)d(副音声)v(xvid)
-    rec_reckey("res", title, chtxt, btime, etime, opt)
-def auto_keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
-    rec10d.rec10db.add_rectime(type=recdb.REC_AUTO_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
-def keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
-    rec10d.rec10db.add_rectime(type=recdb.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
-def everyreserv(keyword, chtxt, btime, etime, deltatime, opt, deltaday):
-    rec10d.rec10db.add_rectime(type=recdb.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday)
-def rec_reckey(type, title, chtxt, btime, etime, opt):
-    rec10d.rec10db.add_rectime(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
-def del_reckey(type, title, chtxt, btime):
-    rec10d.rec10db.del_rectime(type=type, title=title, chtxt=chtxt, btime=btime)
-def getnow(dhour):
+def reserveKeyword(keyword, chtxt, btime, etime, deltatime, opt):
+    rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
+def reserveEverydayKeyword(keyword, chtxt, btime, etime, deltatime, opt, deltaday,count):
+    tcount=count
+    if tcount<0:
+        tcount=-1
+    rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday,counter=tcount)
+def reserveReckey(type, title, chtxt, btime, etime, opt):
+    rec10d.rec10db.add_timeline(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
+def deleteReckey(type, title, chtxt, btime):
+    rec10d.rec10db.del_timeline(type=type, title=title, chtxt=chtxt, btime=btime)
+def reserveAutoKeyword(chtxt,title,btime,etime):
+    rec10d.rec10db.add_auto_timeline_keyword(chtxt, title, btime, etime)
+def addAutoBayesKeyword(chtxt,title,btime,etime,point):
+    rec10d.rec10db.add_auto_timeline_bayes(chtxt, title, btime, etime,point)
+def getProgramsInTheseHours(dhour):
     dhour = int(dhour)
     dminutes = 60 * dhour
     dminutes = str(dminutes)
-    return rec10d.rec10db.select_bytime_rectime(dminutes)
-def getnow_minutes(dminutes):
-    return rec10d.rec10db.select_bytime_rectime(dminutes)
+    return rec10d.rec10db.select_bytime_timeline(dminutes)
+def getProgramsInTheseMinutes(dminutes):
+    return rec10d.rec10db.select_bytime_timeline(dminutes)
 def countRecNow(dhour):
-    d = getnow(dhour)
+    d = getProgramsInTheseHours(dhour)
     ret = 0
     for i in d:
         t = i['type']
@@ -129,7 +38,7 @@ def countRecNow(dhour):
             ret = ret + 1
     return ret
 def countRecNow_minutes(dminutes):
-    d = getnow_minutes(dminutes)
+    d = getProgramsInTheseMinutes(dminutes)
     ret = 0
     for i in d:
         t = i['type']
@@ -137,31 +46,50 @@ def countRecNow_minutes(dminutes):
             ret = ret + 1
     return ret
 def countRecNow_minutes_BSCS(dminutes):
-    d = getnow_minutes(dminutes)
+    d = getProgramsInTheseMinutes(dminutes)
     ret = 0
     for i in d:
         t = i['type']
         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
-            if len(chdb.chtxtsearch(i['chtxt'])['ch']) > 2:
+            if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) > 2:
                 ret = ret + 1
     return ret
 def countRecNow_minutes_TE(dminutes):
-    d = getnow_minutes(dminutes)
+    d = getProgramsInTheseMinutes(dminutes)
     ret = 0
     for i in d:
         t = i['type']
         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
-            if len(chdb.chtxtsearch(i['chtxt'])['ch']) < 3:
+            if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) < 3:
                 ret = ret + 1
     return ret
-def delete_old(dhour):
+def deleteOldProgramBeforeTheseHours(dhour):
     """
-    delete keys except recdb.REC_MISS_ENCODE and recdb.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
+    delete keys except recdblist.REC_MISS_ENCODE and recdblist.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
     """
-    rec10d.rec10db.delete_old_rectime(dhour)
-def getall():
-    return rec10d.rec10db.select_all_rectime()
-def rec_reclog(title,chtxt,btime,etime,opt,exp,longexp,category):
-    rec10d.rec10db.add_reclog(chtxt,title,btime,etime,opt,exp,longexp,category)
-def get_key():
-    return rec10d.rec10db.select_all_recjbk()
\ No newline at end of file
+    rec10d.rec10db.delete_old_timeline(dhour)
+def delete_old_auto_keyword(dhour):
+    rec10d.rec10db.delete_old_auto_timeline_keyword(dhour)
+def delete_old_auto_bayes(dhour):
+    rec10d.rec10db.delete_old_auto_timeline_bayes(dhour)
+def getAll():
+    return rec10d.rec10db.select_all_timeline()
+def addRecLogProgram(title,chtxt,btime,etime,opt,exp,longexp,category):
+    rec10d.rec10db.add_in_timeline_log(chtxt,title,btime,etime,opt,exp,longexp,category)
+def getAllJbkKeyword():
+    return rec10d.rec10db.select_all_in_auto_jbk_key()
+def checkDuplicated(title,chtxt,epgbtime,epgetime):
+    tl=rec10d.rec10db.select_byepgtime_all_timeline(epgbtime,epgetime)
+    nel=rec10d.rec10db.select_bytime_all_timeline(epgbtime, epgetime)
+    dup=0
+    for t in tl:
+        if t["title"]==title and t["chtxt"]==chtxt:
+            dup=1
+        elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
+            dup=1
+    for t in nel:
+        if t["title"]==title and t["chtxt"]==chtxt:
+            dup=1
+        elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
+            dup=1
+    return dup