OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / rec10 / trunk / src / recdb.py
index 6177afb..8f3b41b 100644 (file)
@@ -1,65 +1,36 @@
 #!/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
-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"
+import recdblist
 
-def recreserv(title, chtxt, btime, etime, opt):#optにはa(アニメ)d(副音声)v(xvid)
-    rec_reckey("res", title, chtxt, btime, etime, 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']
@@ -67,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']
@@ -75,28 +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()
-
+    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