3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
11 path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
15 db=sqlite3.connect(dbpath)
16 recdata="\"id\",\"type\",\"chtxt\",\"title\",\"btime\",\"etime\",\"deltaday\",\"opt\"\n"
17 recdata="id,type,chtxt,title,btime,etime,deltaday,opt\n"
18 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"):
29 elif typet=="keyevery":
39 btime=btime.replace("-","/")
40 etime=etime.replace("-","/")
41 if btime[0:5]==etime[0:5]:
43 s="\""+str(id)+"\",\""+typet+"\",\""+chtxt+"\",\""+title+"\",\""+btime+"\",\""+etime+"\",\""+deltaday+"\",\""+opt+"\"\n"
44 s=str(id)+","+typet+","+chtxt+","+title+","+btime+","+etime+","+deltaday+","+opt+"\n"
46 f=open(path+"/recdatum.csv","w")
50 db=sqlite3.connect(dbpath)
52 for bctype, ontv, chtxt, ch, csch ,updatetime in db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata"):
54 for bctype,channel,display in db.execute("SELECT bctype,channel,display FROM ch WHERE channel=\""+ontv+"\""):
56 chopt=chopt+"<option value="+chtxt+">"+display+"</option>\n "
59 def reserv_recday(keyword,chtxt,btime,etime,deltatime,opt,deltaday,day):
63 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
64 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
65 dt=int(day)-bt.isoweekday()
68 dbt=bt+datetime.timedelta(days=dt)
69 det=et+datetime.timedelta(days=dt)
70 btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
71 etime=det.strftime("%Y-%m-%d %H:%M:%S")
72 return reserv("keyevery",keyword,chtxt,btime,etime,deltatime,opt,"7")
73 def reserv(type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
76 db=sqlite3.connect(dbpath)
79 dbexe="SELECT type,chdata.bctype,rectime.chtxt,rectime.title FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt"
80 #dbexe="SELECT bctype,chtxt,title FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt"
82 dbexe=dbexe+" WHERE NOT( ( rectime.etime <= "+bt+" ) OR ( rectime.btime >= "+et+" ) )"
83 for typet,bctypet, chtxtt, titlet in db.execute(dbexe):
84 if (typet=="rec") or (typet=="res") or (typet=="key") or (typet=="keyevery"):
85 if bctypet.find("cs")>-1:
87 elif bctypet.find("bs")>-1:
89 elif bctypet.find("te")>-1:
93 for bctypet, chtxtt in db.execute("SELECT bctype,chtxt FROM chdata WHERE chtxt=\'"+chtxt+"\'"):
95 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
96 if bctype.find("cs")>-1:
98 elif bctype.find("bs")>-1:
100 elif bctype.find("te")>-1:
102 if MaxS>-1 and MaxT>-1:
103 recline="\""+type+"\",\""+chtxt+"\",\""+keyword+"\",datetime(\""+btime+"\"),datetime(\""+etime+"\"),\""+deltatime+"\",\""+opt+"\",\""+deltaday+"\""
105 db.execute('insert into rectime ("type","chtxt","title","btime","etime","deltatime","opt","deltaday") values ('+recline+')')
111 def station2chtxt(station):
112 db=sqlite3.connect(dbpath)
114 for bctype, ontv, chtxt, ch, csch ,updatetime in db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station=\""+station+"\""):
118 def station_name2chtxt(station):
119 db=sqlite3.connect(dbpath)
121 for bctype, ontv, chtxt, ch, csch ,updatetime in db.execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station_name=\""+station+"\""):
125 def readHtmlSrcSimple():
126 f = open(path+'rswi.htm')
131 def readRecFinisSimple():
132 f = open(path+'fin.htm')
136 def readRecFinisOver():
137 f = open(path+'finover.htm')
141 def readRecSchedule():
142 f = open(path+'schedule.htm')
155 if f.getfirst('mode')=="schedule":
159 if f.getfirst('station_name'):
160 station=f.getfirst('station_name')
161 chtxt=station_name2chtxt(station)
162 if f.getfirst('station'):
163 station=f.getfirst('station')
164 chtxt=station2chtxt(station)
166 if f.getfirst('type'):
167 type=f.getfirst('type')
168 if f.getfirst('title'):
169 title=f.getfirst('title')
170 if f.getfirst('chtxt'):
171 chtxt=f.getfirst('chtxt')
172 if f.getfirst('btime'):
173 btime=f.getfirst('btime')
174 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
175 if f.getfirst('etime'):
176 etime=f.getfirst('etime')
177 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
180 dt=delt.days*24*60*60+delt.seconds
182 dd=datetime.timedelta(days=1)
184 etime=et.strftime("%Y-%m-%d %H:%M:%S")
186 d1=datetime.datetime(bt.year,0,0)
187 d2=datetime.datetime(bt.year+1,0,0)
190 etime=et.strftime("%Y-%m-%d %H:%M:%S")
193 if f.getfirst('size'):
194 size=f.getfirst('size')
196 if f.getfirst('opts'):
197 opts=f.getfirst('opts')
199 if f.getfirst('deltahour',""):
200 deltahour=f.getfirst('deltahour',"")
202 if f.getfirst('deltaday',""):
203 deltaday=f.getfirst('deltaday',"")
205 if f.getfirst('exec',""):
206 exect=f.getfirst('exec',"")
209 htmdate= readHtmlSrcSimple()
210 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
212 htmdate=htmdate.replace("<!--btime-value//-->",btime)
213 htmdate=htmdate.replace("<!--etime-value//-->",etime)
214 htmdate=htmdate.replace("<!--type-value//-->",type)
215 htmdate=htmdate.replace("<!--ch-value//-->",chtxt)
216 htmdate=htmdate.replace("<!--title-value//-->",title)
217 htmdate=htmdate.replace("<!--size-value//-->",size)
218 htmdate=htmdate.replace("<!--opts-value//-->",opts)
222 if f.getfirst('type')=="keyday":
224 dayt=f.getfirst('day_Mon')
226 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
227 dayt=f.getfirst('day_Tue')
229 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
230 dayt=f.getfirst('day_Wed')
232 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
233 dayt=f.getfirst('day_Thu')
235 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
236 dayt=f.getfirst('day_Fri')
238 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
239 dayt=f.getfirst('day_Sat')
241 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
242 dayt=f.getfirst('day_Sun')
244 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
247 htmdate=readRecFinisSimple()
249 htmdate=readRecFinisOver()
255 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
256 restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
258 htmdate=readRecFinisSimple()
260 htmdate=readRecFinisOver()
263 if exect=="schedule":
264 htmdate=readRecSchedule()