OSDN Git Service

some fixes
[rec10/rec10-git.git] / rec10 / trunk / src / recdb.py
index 048868f..127c579 100644 (file)
@@ -4,60 +4,73 @@
 # Copyright (C) 2009 Yukikaze
 import os
 import sqlite3
-#import japanesenkf
-#japanesenkf.overrideEncodings()
+import recdb
 dbpath=str(os.path.dirname(os.path.abspath(__file__)))+"/"+"ch.db"
 db=sqlite3.connect(dbpath)
-#try:
-#db.execute('drop table rectime')
-#db.commit()
-#except:
-    #  test=""
+
+global REC_RESERVE
+REC_RESERVE="res"
+global REC_FINAL_RESERVE
+REC_FINAL_RESERVE="rec"
+global REC_END
+REC_END="end"
+global REC_GRID
+REC_GRID="grid"
+global REC_ENCODE_QUE
+REC_ENCODE_QUE="ts2avi"
+global REC_MIXING_SOUND
+REC_MIXING_SOUND="mixsound"
+global REC_MISS_ENCODE
+REC_MISS_ENCODE="miss"
+global REC_KEYWORD
+REC_KEYWORD="key"
+global REC_KEYWORD_EVERY_SOME_DAYS
+REC_KEYWORD_EVERY_SOME_DAYS="keyevery"
+global REC_FIN_DECODE
+REC_FIN_DECODE="tsfin"
+global REC_MISS_DECODE
+REC_MISS_DECODE="tsmiss"
+global REC_TS_DECODING
+REC_TS_DECODING="tsdecoding"
 try:
     db.execute('create table rectime (type TEXT,chtxt TEXT,title TEXT,btime TEXT,etime TEXT,deltatime TEXT,deltaday TEXT,opt TEXT,id INTEGER PRIMARY KEY,UNIQUE(type,chtxt,title,btime,deltaday))')
 except:
     #print "テーブル作成に失敗しました"
-    ""
     db.commit()
     db.close()
 def recreserv(title,chtxt,btime,etime,opt):#optにはa(アニメ)d(副音声)v(xvid)
-    db=sqlite3.connect(dbpath)
-    recline="\"res\",\""+chtxt+"\",\""+title+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+opt+"\""
-    db.execute('insert into rectime ("type","chtxt","title","btime","etime","opt") values ('+recline+')')
-    db.commit()
-    db.close()
+    rec_reckey("res",title,chtxt,btime,etime,opt)
 def keyreserv(keyword,chtxt,btime,etime,deltatime,opt):
     db=sqlite3.connect(dbpath)
-    recline="\"key\",\""+chtxt+"\",\""+keyword+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+deltatime+"\",\""+opt+"\""
+    recline="\""+recdb.REC_KEYWORD+"\",\""+chtxt+"\",\""+keyword+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+deltatime+"\",\""+opt+"\""
     db.execute('insert into rectime ("type","chtxt","title","btime","etime","deltatime","opt") values ('+recline+')')
     db.commit()
     db.close()
 def everyreserv(keyword,chtxt,btime,etime,deltatime,opt,deltaday):
     db=sqlite3.connect(dbpath)
-    recline="\"keyevery\",\""+chtxt+"\",\""+keyword+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+deltatime+"\",\""+opt+"\",\""+deltaday+"\""
+    recline="\""+recdb.REC_KEYWORD_EVERY_SOME_DAYS+"\",\""+chtxt+"\",\""+keyword+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+deltatime+"\",\""+opt+"\",\""+deltaday+"\""
     db.execute('insert into rectime ("type","chtxt","title","btime","etime","deltatime","opt","deltaday") values ('+recline+')')
     db.commit()
     db.close()
 def lastrecreserv(title,chtxt,btime,etime,opt):#optにはa(アニメ)d(副音声)v(xvid)##btimeなどは2006-07-17 13:25:23の形
-    db=sqlite3.connect(dbpath)
-    recline="\"rec\",\""+chtxt+"\",\""+title+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+opt+"\""
-    #db.execute('insert into rectime ("type","chtxt","title","btime","etime","opt") values ('+recline+')')
-    db.execute('insert into rectime (type,chtxt,title,btime,etime,opt) values ('+recline+')')
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use rec_reckey(recdb.REC_FINAL_RESERVE,title,chtxt,btime,etime,opt) instead of lastrecreserv(title,chtxt,btime,etime,opt)
+    """
+    rec_reckey(recdb.REC_FINAL_RESERVE,title,chtxt,btime,etime,opt)
 def misrecwrite(title,chtxt,btime,etime,opt):
-    db=sqlite3.connect(dbpath)
-    recline="\"miss\",\""+chtxt+"\",\""+title+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+opt+"\""
-    #db.execute('insert into rectime ("type","chtxt","title","btime","etime","opt") values ('+recline+')')
-    db.execute('insert into rectime (type,chtxt,title,btime,etime,opt) values ('+recline+')')
-    db.commit()
-    db.close()
+
+    """
+    Caution this is old function and you should not use it.
+    Please use rec_reckey(recdb.REC_MISS_ENCODE,title,chtxt,btime,etime,opt) instead.
+    """
+    rec_reckey(recdb.REC_MISS_ENCODE,title,chtxt,btime,etime,opt)
 def recend(title,chtxt,btime,etime,opt):#optにはa(アニメ)d(副音声)v(xvid)
-    db=sqlite3.connect(dbpath)
-    recline="\"end\",\""+chtxt+"\",\""+title+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+opt+"\""
-    db.execute('insert into rectime ("type","chtxt","title","btime","etime","opt") values ('+recline+')')
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use rec_reckey(recdb.REC_END,title,chtxt,btime,etime,opt) instead.
+    """
+    rec_reckey(recdb.REC_END,title,chtxt,btime,etime,opt)
 def rec_reckey(type,title,chtxt,btime,etime,opt):
     db=sqlite3.connect(dbpath)
     recline="\""+type+"\",\""+chtxt+"\",\""+title+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+opt+"\""
@@ -65,31 +78,35 @@ def rec_reckey(type,title,chtxt,btime,etime,opt):
     db.commit()
     db.close()
 def delrec(title,chtxt,btime):
-    db=sqlite3.connect(dbpath)
-    db.execute("delete from rectime where type = \'res\' AND title = \'"+title+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use del_reckey(recdb.REC_RESERVE,title,chtxt,btime) instead.
+    """
+    del_reckey(recdb.REC_RESERVE,title,chtxt,btime)
 def delkey(keyword,chtxt,btime,deltatime):
-    db=sqlite3.connect(dbpath)
-    db.execute("delete from rectime where deltatime = \'"+deltatime+"\' AND type = \'key\' AND title = \'"+keyword+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use del_reckey(recdb.REC_FINAL_RESERVE,keyword,chtxt,btime) instead.
+    """
+    del_reckey(recdb.REC_KEYWORD,keyword,chtxt,btime)
 def dellastrec(title,chtxt,btime):
-    db=sqlite3.connect(dbpath)
-    db.execute("delete from rectime where type = \'rec\' AND title = \'"+title+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use del_reckey(recdb.REC_FINAL_RESERVE,title,chtxt,btime) instead.
+    """
+    del_reckey(recdb.REC_FINAL_RESERVE,title,chtxt,btime)
 def delevery(keyword,chtxt,btime,deltatime,deltaday):
-    db=sqlite3.connect(dbpath)
-    db.execute("delete from rectime where deltaday = \'"+deltaday+"\' AND deltatime = \'"+deltatime+"\' AND type = \'keyevery\' AND title = \'"+keyword+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
-    db.commit()
-    db.close()
+    """
+    Caution this is old function and you should not use it.
+    Please use del_reckey(recdb.REC_FINAL_RESERVE,keyword,chtxt,btime) instead.
+    """
+    del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS,keyword,chtxt,btime)
 def delend(title,chtxt,btime):
-    db=sqlite3.connect(dbpath)
-    db.execute("delete from rectime where type = \'end\' AND title = \'"+title+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
-    db.commit()
-    db.close()
-
+    """
+    Caution this is old function and you should not use it.
+    Please use del_reckey(recdb.REC_END,title,chtxt,btime) instead.
+    """
+    del_reckey(recdb.REC_END,title,chtxt,btime)
 def deltitle(key):
     db=sqlite3.connect(dbpath)
     i=0
@@ -104,23 +121,9 @@ def del_reckey(type,title,chtxt,btime):
     db.execute("delete from rectime where type = \'"+type+"\' AND title = \'"+title+"\' AND chtxt = \'"+chtxt+"\' AND btime = datetime(\""+btime+"\")")
     db.commit()
     db.close()
-"""def delkeyword(key):
-    db=sqlite3.connect(dbpath)
-    i=0
-    #print "SELECT * FROM rectime WHERE keyword like \'%"+key+"+%\'"
-    for keyword in db.execute("SELECT * FROM rectime WHERE keyword like \'%"+key+"%\'"):
-        i=i+1
-        print keyword
-    print i
-    if i==1:
-        db.execute("delete from rectime where keyword like \'%"+key+"%\'")
-    db.commit()
-    db.close()
-    """
 def getnow(dhour):
     db=sqlite3.connect(dbpath)
-    recdata=[]
-    db.execute("DELETE FROM rectime WHERE NOT ( type = \"miss\" OR type = \"keyevery\" ) AND btime < datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')")
+    recdatum=[]
     for typet, chtxt, title, btime, etime, deltatime ,deltaday ,opt in db.execute("SELECT type, chtxt, title, DATETIME(btime), DATETIME(etime), deltatime ,deltaday ,opt FROM rectime WHERE btime < datetime(\'now\',\'localtime\',\'+"+dhour+" hours\') AND btime >datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')"):
         ret={}
         ret['type']=typet
@@ -134,84 +137,18 @@ def getnow(dhour):
         elif typet=='keyevery':
             ret['deltatime']=deltatime
             ret['deltaday']=deltaday
-        recdata.append(ret)
-        """
-        if typet=='res':
-            ret={}
-            ret['type']='res'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-        elif typet=='rec':
-            ret={}
-            ret['type']='rec'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print title.encode('utf-8')
-            recdata.append(ret)
-        elif typet=='key':
-            ret={}
-            ret['type']='key'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['deltatime']=deltatime
-            ret['opt']=opt
-            recdata.append(ret)
-        elif typet=='keyevery':
-            ret={}
-            ret['type']='keyevery'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['deltatime']=deltatime
-            ret['opt']=opt
-            ret['deltaday']=deltaday
-            recdata.append(ret)
-        elif typet=='end':
-            ret={}
-            ret['type']='end'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-        elif typet=='miss':
-            ret={}
-            ret['type']='miss'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-        elif typet=='b25-avi':
-            ret={}
-            ret['type']='b25-avi'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-
-        """
+        recdatum.append(ret)
+    db.commit()
+    db.close()
+    return recdatum
+def delete_old(dhour):
+    """
+    delete keys except recdb.REC_MISS_ENCODE and recdb.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
+    """
+    db=sqlite3.connect(dbpath)
+    db.execute("DELETE FROM rectime WHERE NOT ( type = \""+recdb.REC_MISS_ENCODE+"\" OR type = \""+recdb.REC_KEYWORD_EVERY_SOME_DAYS+"\" ) AND btime < datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')")
     db.commit()
     db.close()
-    return recdata
 def getall():
     db=sqlite3.connect(dbpath)
     recdata=[]
@@ -229,57 +166,5 @@ def getall():
             ret['deltatime']=deltatime
             ret['deltaday']=deltaday
         recdata.append(ret)
-        """
-        if typet=='res':
-            ret={}
-            ret['type']='res'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-        elif typet=='rec':
-            ret={}
-            ret['type']='rec'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-        elif typet=='key':
-            ret={}
-            ret['type']='key'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['deltatime']=deltatime
-            ret['opt']=opt
-            recdata.append(ret)
-        elif typet=='keyevery':
-            ret={}
-            ret['type']='keyevery'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['deltatime']=deltatime
-            ret['opt']=opt
-            ret['deltaday']=deltaday
-            recdata.append(ret)
-        if typet=='miss':
-            ret={}
-            ret['type']='miss'
-            ret['chtxt']=chtxt
-            ret['title']=title.encode('utf-8')
-            ret['btime']=btime
-            ret['etime']=etime
-            ret['opt']=opt
-            #print ret
-            recdata.append(ret)
-
-            """
     db.close()
     return recdata