#!/usr/bin/python
# coding: UTF-8
# Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
-import os
-import sqlite3
-#import japanesenkf
-#japanesenkf.overrideEncodings()
-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=""
-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()
-def keyreserv(keyword,chtxt,btime,etime,deltatime,opt):
- db=sqlite3.connect(dbpath)
- recline="\"key\",\""+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+"\""
- 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()
-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()
-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()
-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()
-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()
-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()
-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()
-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()
+# Copyright (C) 2009-2010 Yukikaze
+import chdb
+import rec10d
+import recdblist
-def deltitle(key):
- db=sqlite3.connect(dbpath)
- i=0
- for title in db.execute("SELECT title FROM rectime WHERE title like \"%"+key+"%\""):
- i=i+1
- if i==1:
- db.execute("delete from rectime where title like \'%"+key+"%\'")
- 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 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_timeline(type=recdblist.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_timeline(type=recdblist.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
+def everyreserv(keyword, chtxt, btime, etime, deltatime, opt, deltaday,count):
+ 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=count)
+def rec_reckey(type, title, chtxt, btime, etime, opt):
+ rec10d.rec10db.add_timeline(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
+def del_reckey(type, title, chtxt, btime):
+ rec10d.rec10db.del_timeline(type=type, title=title, chtxt=chtxt, btime=btime)
+def add_auto_keyword(chtxt,title,btime,etime):
+ rec10d.rec10db.add_auto_timeline_keyword(chtxt, title, btime, etime)
+def add_auto_bayes(chtxt,title,btime,etime,point):
+ rec10d.rec10db.add_auto_timeline_bayes(chtxt, title, btime, etime,point)
def getnow(dhour):
- db=sqlite3.connect(dbpath)
- recdata=[]
- db.execute("DELETE FROM rectime WHERE NOT type = \"miss\" AND btime < datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')")
- 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\')"):
- 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)
- db.commit()
- db.close()
- return recdata
+ dhour = int(dhour)
+ dminutes = 60 * dhour
+ dminutes = str(dminutes)
+ return rec10d.rec10db.select_bytime_timeline(dminutes)
+def getnow_minutes(dminutes):
+ return rec10d.rec10db.select_bytime_timeline(dminutes)
+def countRecNow(dhour):
+ d = getnow(dhour)
+ ret = 0
+ for i in d:
+ t = i['type']
+ if t == "key" or t == "keyevery" or t == "rec" or t == "res":
+ ret = ret + 1
+ return ret
+def countRecNow_minutes(dminutes):
+ d = getnow_minutes(dminutes)
+ ret = 0
+ for i in d:
+ t = i['type']
+ if t == "key" or t == "keyevery" or t == "rec" or t == "res":
+ ret = ret + 1
+ return ret
+def countRecNow_minutes_BSCS(dminutes):
+ d = getnow_minutes(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:
+ ret = ret + 1
+ return ret
+def countRecNow_minutes_TE(dminutes):
+ d = getnow_minutes(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:
+ ret = ret + 1
+ return ret
+def delete_old(dhour):
+ """
+ delete keys except recdblist.REC_MISS_ENCODE and recdblist.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
+ """
+ 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():
- db=sqlite3.connect(dbpath)
- recdata=[]
- for typet, chtxt, title, btime, etime, deltatime ,deltaday ,opt in db.execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime"):
- 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
+ return rec10d.rec10db.select_all_timeline()
+def rec_reclog(title,chtxt,btime,etime,opt,exp,longexp,category):
+ rec10d.rec10db.add_in_timeline_log(chtxt,title,btime,etime,opt,exp,longexp,category)
+def get_key():
+ return rec10d.rec10db.select_all_in_auto_jbk_key()
+def checkduplicate(title,chtxt,epgbtime,epgetime):
+ tl=rec10dbselect_byepgtime_all_timeline(epgbtime,epgetime)
+ dup=0
+ for t in tl:
+ if t["title"]==title and t["chtxt"]==chtxt:
+ dup=1
+ return dup
\ No newline at end of file