3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
6 import cgitb;cgitb.enable()
11 import rec10web_dbSQLite
13 path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
15 database=rec10web_dbSQLite.DB_SQLite(dbpath)
17 dl=database.select_all_rectime()
18 recdata="id,type,chtxt,title,btime,etime,deltaday,opt\n"
26 deltatime=d['deltatime']
27 deltaday=d['deltaday']
39 elif typet=="keyevery":
51 btime=btime.replace("-","/")
52 etime=etime.replace("-","/")
53 if btime[0:5]==etime[0:5]:
55 s="\""+str(id)+"\",\""+typet+"\",\""+chtxt+"\",\""+title+"\",\""+btime+"\",\""+etime+"\",\""+deltaday+"\",\""+opt+"\"\n"
56 s=str(id)+","+typet+","+chtxt+","+title+","+btime+","+etime+","+deltaday+","+opt+"\n"
58 f=open(path+"/recdatum.csv","w")
62 dl=database.select_all_chdata()
64 for bctype, ontv, chtxt, ch, csch ,updatetime in dl:
66 for bctype,channel,display in database.select_by_ontv_ch(ontv):
69 chopt=chopt+"<option value="+chtxt+">"+chdisplay+"</option>\n "
72 ret=database.select_by_id_rectime(id)
75 def reserv_recday(keyword,chtxt,btime,etime,deltatime,opt,deltaday,day):
79 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
80 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
81 dt=int(day)-bt.isoweekday()
84 dbt=bt+datetime.timedelta(days=dt)
85 det=et+datetime.timedelta(days=dt)
86 btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
87 etime=det.strftime("%Y-%m-%d %H:%M:%S")
88 return reserv("keyevery",keyword,chtxt,btime,etime,deltatime,opt,"7")
89 def reserv(type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
92 tsnum=database.count_schedule_rectime(btime,etime)
97 bctypegetdb=database.select_by_chtxt_chdata(chtxt)
98 for bctypet,ontvt,chtxtt,cht,cscht,updatetimet in bctypegetdb:
100 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
101 if bctype.find("cs")>-1:
103 elif bctype.find("bs")>-1:
105 elif bctype.find("te")>-1:
107 if MaxS>-1 and MaxT>-1:
108 database.add_rectime(type=type,chtxt=chtxt,title=keyword,btime=btime,etime=etime,deltatime=deltatime,deltaday=deltaday,opt=opt)
112 def change_reserv(id,type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
118 tsnum=database.count_schedule_rectime(btime,etime)
123 for bctypet, chtxtt in database.select_by_chtxt_chdata(chtxt):
125 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
126 if bctype.find("cs")>-1:
128 elif bctype.find("bs")>-1:
130 elif bctype.find("te")>-1:
132 if MaxS>-1 and MaxT>-1:
133 database.del_by_id_rectime(id)
134 database.add_rectime(type=type, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, deltaday=deltaday, opt=opt)
138 def station2chtxt(station):
140 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_chdata(station):
143 def station_name2chtxt(station):
145 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_name_chdata(station):
148 def readHtmlSrcSimple():
149 f = open(path+'rswi.htm')
154 f = open(path+'rswi_edit.htm')
159 def readRecFinisSimple():
160 f = open(path+'fin.htm')
164 def readRecFinisOver():
165 f = open(path+'finover.htm')
169 def readRecSchedule():
170 f = open(path+'schedule.htm')
183 if f.getfirst('mode')=="schedule":
187 if f.getfirst('station_name'):
188 station=f.getfirst('station_name')
189 chtxt=station_name2chtxt(station)
190 if f.getfirst('station'):
191 station=f.getfirst('station')
192 chtxt=station2chtxt(station)
194 if f.getfirst('type'):
195 type=f.getfirst('type')
196 if f.getfirst('title'):
197 title=f.getfirst('title')
198 if f.getfirst('chtxt'):
199 chtxt=f.getfirst('chtxt')
200 if f.getfirst('btime'):
201 btime=f.getfirst('btime')
202 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
203 if f.getfirst('etime'):
204 etime=f.getfirst('etime')
205 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
208 dt=delt.days*24*60*60+delt.seconds
210 dd=datetime.timedelta(days=1)
212 etime=et.strftime("%Y-%m-%d %H:%M:%S")
214 d1=datetime.datetime(bt.year,0,0)
215 d2=datetime.datetime(bt.year+1,0,0)
218 etime=et.strftime("%Y-%m-%d %H:%M:%S")
221 if f.getfirst('size'):
222 size=f.getfirst('size')
224 if f.getfirst('opts'):
225 opts=f.getfirst('opts')
227 if f.getfirst('deltahour',""):
228 deltahour=f.getfirst('deltahour',"")
230 if f.getfirst('deltaday',""):
231 deltaday=f.getfirst('deltaday',"")
233 if f.getfirst('exec',""):
234 exect=f.getfirst('exec',"")
237 htmdate= readHtmlSrcSimple()
238 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
239 htmdate=htmdate.replace("<!--btime-value//-->",btime)
240 htmdate=htmdate.replace("<!--etime-value//-->",etime)
241 htmdate=htmdate.replace("<!--type-value//-->",type)
242 htmdate=htmdate.replace("<!--ch-value//-->",chtxt)
243 htmdate=htmdate.replace("<!--title-value//-->",title)
244 htmdate=htmdate.replace("<!--size-value//-->",size)
245 htmdate=htmdate.replace("<!--opts-value//-->",opts)
249 if f.getfirst('type')=="keyday":
251 dayt=f.getfirst('day_Mon')
253 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
254 dayt=f.getfirst('day_Tue')
256 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
257 dayt=f.getfirst('day_Wed')
259 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
260 dayt=f.getfirst('day_Thu')
262 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
263 dayt=f.getfirst('day_Fri')
265 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
266 dayt=f.getfirst('day_Sat')
268 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
269 dayt=f.getfirst('day_Sun')
271 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
274 htmdate=readRecFinisSimple()
276 htmdate=readRecFinisOver()
282 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
283 restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
285 htmdate=readRecFinisSimple()
287 htmdate=readRecFinisOver()
290 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(re.search('edit-exec:',exect)):
291 editnum=exect.replace("edit-exec:","")
292 restxt=change_reserv(editnum,type, title, chtxt, btime, etime, deltahour, opts, deltaday)
294 htmdate=readRecFinisSimple()
296 htmdate=readRecFinisOver()
298 if exect=="schedule":
299 htmdate=readRecSchedule()
300 if re.search('edit:',exect):
301 editnum=exect.replace("edit:","")
302 htmdate= readHtmlEdit()
303 iddata=edit_date(editnum)
304 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
305 htmdate=htmdate.replace("<!--ch-value//-->",iddata["chtxt"])
306 htmdate=htmdate.replace("<!--btime-value//-->",iddata["btime"])
307 htmdate=htmdate.replace("<!--etime-value//-->",iddata["etime"])
308 htmdate=htmdate.replace("<!--type-value//-->",iddata["type"])
309 htmdate=htmdate.replace("<!--ch-value//-->",iddata["chtxt"])
310 htmdate=htmdate.replace("<!--title-value//-->",iddata["title"])
311 htmdate=htmdate.replace("<!--size-value//-->",size)
312 htmdate=htmdate.replace("<!--opts-value//-->",iddata["opt"])
313 htmdate=htmdate.replace("<!--exec-value//-->","edit-exec:"+editnum)
314 print "Content-Type: text/html\n"