OSDN Git Service

put DB accessing functions together(dbSQLite.py).
[rec10/rec10-git.git] / rec10 / trunk / src / epgdb.py
index 562e2df..6a9e5a6 100644 (file)
@@ -3,8 +3,7 @@
 # Rec10 TS Recording Tools
 # Copyright (C) 2009 Yukikaze
 import os
-import time
-import sqlite3
+import rec10d
 import chdb
 import datetime
 import ts2epg
@@ -33,7 +32,9 @@ def updatebc(bctype):
             ts2epg.write(tmppath+"epgdate.xml",chdb.bctypesearch(bctype)['ch'])
             xml2db.xml2db(tmppath+"epgdate.xml",path+"ch.db",bctype)
             break
-        except:
+        except Exception,inst:
+            print type(inst)
+            print inst
             i=i+1
 def updateall():
     update("hisch")
@@ -47,64 +48,20 @@ def updateall():
     update("bs-nhk-1")
     
 def search(titletxt):
-    dbpath=path+"ch.db"
-    db=sqlite3.connect(dbpath)
-    #print dbpath
-    ret=[]
-    for ch, title, start, stop in db.execute("SELECT channel,title,start,stop FROM tv WHERE title LIKE \"%"+titletxt+"%\""):
-        btime=start.replace(" +0900","")
-        btime=btime[0:4]+"-"+btime[4:6]+"-"+btime[6:8]+" "+btime[8:10]+":"+btime[10:12]+":00"
-        etime=stop.replace(" +0900","")
-        etime=etime[0:4]+"-"+etime[4:6]+"-"+etime[6:8]+" "+etime[8:10]+":"+etime[10:12]+":00"
-        try:
-            chtxt=chdb.ontvsearch(ch)['chtxt']
-        except:
-            chtxt="Unknown"
-            #print ch
-        ret.append(chtxt+","+title.encode('utf-8')+","+btime+","+etime)
-    db.close()
-    return ret
-def searchtime(titletxt,time,deltatime):#時間以内のものだけを表示 deltatimeはhours
-    dbpath=path+"ch.db"
-    db=sqlite3.connect(dbpath)
-    #print dbpath
-    ret=[]
-    deltatime=int(deltatime)
-    for ch, title, start, stop in db.execute("SELECT channel,title,start,stop FROM tv WHERE title LIKE \"%"+titletxt+"%\""):
-        btime=start.replace(" +0900","")
-        btime=btime[0:4]+"-"+btime[4:6]+"-"+btime[6:8]+" "+btime[8:10]+":"+btime[10:12]+":00"
-        etime=stop.replace(" +0900","")
-        etime=etime[0:4]+"-"+etime[4:6]+"-"+etime[6:8]+" "+etime[8:10]+":"+etime[10:12]+":00"
-        bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
-        t=datetime.datetime.strptime(time,"%Y-%m-%d %H:%M:%S")
-        try:
-            chtxt=chdb.ontvsearch(ch)['chtxt']
-        except:
-            chtxt="Unknown"
-            #print ch
-        dt=bt-t
-        dt=dt.days*24*60*60+dt.seconds
-        dt=abs(dt)
-        if dt<deltatime*60*60:
-            ret.append(chtxt+","+title.encode('utf-8')+","+btime+","+etime)
-            print title
-    db.close()
-    return ret
+    return rec10d.rec10db.select_by_title_tv(titletxt)
 def searchtime2(titletxt,timet,deltatime,chtxt):
     time=datetime.datetime.strptime(timet,"%Y-%m-%d %H:%M:%S")
-    dbpath=path+"ch.db"
-    db=sqlite3.connect(dbpath)
-    #print dbpath
     ret=[]
     deltatime=int(deltatime)
     beforetime=time.strftime("%Y%m%d%H%M%S")
     aftertime=time+datetime.timedelta(hours=deltatime)
     aftertime=aftertime.strftime("%Y%m%d%H%M%S")
-    dbexe="SELECT chdata.chtxt,title,start,stop FROM tv INNER JOIN chdata WHERE chdata.ontv=tv.channel AND start >= \""+beforetime+"\" AND start <= \""+aftertime+"\" AND chdata.chtxt=\""+chtxt+"\""
-    #print dbexe
     one={}
     tempt=0
-    for chtxtt, title, start, stop in db.execute(dbexe):
+    d=rec10d.rec10db.select_by_time_ngram_tv(beforetime,aftertime,chtxt)
+    print d
+    for chtxtt, title, start, stop in d:
+        print chtxtt+":"+title+":"+start+":"+stop
         ret=[]
         p=n_gram.bigram(titletxt,title)
         btime=start
@@ -125,7 +82,6 @@ def searchtime2(titletxt,timet,deltatime,chtxt):
             tempt=p
         if p>0:
             print title+":"+str(p)+"点"
-    db.close()
     ret.append(one)
     print ret
     return ret