3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
8 path = str(os.path.dirname(os.path.abspath(__file__))) + "/"
9 dbpath = path + "ch.db"
12 def __init__(self,dbpath):
14 def connect_db(self,tout=10):
21 return sqlite3.connect(self.dbpath, timeout=tout)
22 def close_db(self,db):
24 def select_by_ontv_ch(self,ontv):
25 db=self.connect_db(120)
26 ret=db.execute("SELECT bctype,channel,display FROM ch WHERE channel= ? ",(ontv,))
30 def select_all_rectime(self):
31 db=self.connect_db(120)
33 for id,typet, chtxt, title, btime, etime, deltatime, deltaday, opt in db.execute("SELECT id,type,chtxt,title,btime,etime,deltatime,deltaday,opt FROM rectime"):
38 ret['title']=title.encode('utf-8')
49 ret['deltatime']=deltatime
50 elif typet == 'keyevery':
51 ret['deltatime']=deltatime
52 ret['deltaday']=deltaday
56 def select_by_chtxt_rectime(self,chtxt):
57 db=self.connect_db(120)
59 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in db.execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE chtxt = ? ",(chtxt,)):
63 ret['title']=title.encode('utf-8')
72 ret['deltatime']=deltatime
73 elif typet == 'keyevery':
74 ret['deltatime']=deltatime
75 ret['deltaday']=deltaday
79 def select_by_id_rectime(self,id):
80 db=self.connect_db(120)
82 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in db.execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE id = ? ",(id,)):
86 ret['title']=title.encode('utf-8')
95 ret['deltatime']=deltatime
96 elif typet == 'keyevery':
97 ret['deltatime']=deltatime
98 ret['deltaday']=deltaday
102 def select_all_chdata(self):
103 db=self.connect_db(120)
104 ret=db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata")
108 def select_by_chtxt_chdata(self,chtxt):
109 db=self.connect_db(120)
110 ret=db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE chtxt=?",(chtxt,))
114 def select_by_station_chdata(self,station):
115 db=self.connect_db(120)
116 ret=db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station=?",(station,))
120 def select_by_station_name_chdata(self,station_name):
121 db=self.connect_db(120)
122 ret=db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station_name=?",(station_name,))
126 def add_rectime(self,type="", chtxt="", title="", btime="", etime="", deltatime="", deltaday="", opt=""):
127 db = self.connect_db(480)
128 db.execute('INSERT OR IGNORE INTO rectime (type,chtxt,title,btime,etime,deltatime,deltaday,opt) values (?,?,?,datetime(?),datetime(?),?,?,?)', (type, chtxt, title, btime, etime, deltatime, deltaday, opt))
131 def count_schedule_rectime(self,btime,etime):
134 return [te num,bs/cs num]
136 db=self.connect_db(120)
137 dbexe="SELECT type,chdata.bctype,rectime.chtxt,rectime.title FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt"
138 dbexe=dbexe+" WHERE NOT( ( rectime.etime <= ? ) OR ( rectime.btime >= ? ) )"
141 for typet,bctypet, chtxtt, titlet in db.execute(dbexe,(btime,etime)):
142 if (typet=="rec") or (typet=="res") or (typet=="key") or (typet=="keyevery"):
143 if bctypet.find("cs")>-1:
145 elif bctypet.find("bs")>-1:
147 elif bctypet.find("te")>-1:
151 def del_by_id_rectime(self,id):
152 db=self.connect_db(120)
153 db.execute('DELETE FROM rectime WHERE id='+id)