3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
6 import cgitb;cgitb.enable()
7 import rec10web_dbMySQL
8 import rec10web_dbSQLite
12 import rec10web_dbSQLite
15 path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
16 confp=ConfigParser.SafeConfigParser()
21 return confp.get('path',string)
22 def getdbpath(string):
24 return confp.get('db',string)
28 if getdbpath('db')=='MySQL':
29 dbn=getdbpath("mysql_dbname")
30 dbh=getdbpath("mysql_host")
31 dbu=getdbpath("mysql_user")
32 dbpwd=getdbpath("mysql_passwd")
33 dbport=int(getdbpath("mysql_port"))
34 retdb=rec10web_dbMySQL.DB_MySQL(dbname=dbn,host=dbh,user=dbu,passwd=dbpwd,port=dbport)
36 retdb=rec10web_dbSQLite.DB_SQLite(dbpath)
39 dl=database.select_all_rectime()
40 recdata="id,type,chtxt,title,btime,etime,deltaday,opt\n"
49 deltatime=d['deltatime']
50 deltaday=d['deltaday']
62 elif typet=="keyevery":
75 btime=btime.replace("-","/")
76 etime=etime.replace("-","/")
77 if btime[0:5]==etime[0:5]:
79 s="\""+str(id)+"\",\""+typet+"\",\""+chtxt+"\",\""+title+"\",\""+btime+"\",\""+etime+"\",\""+deltaday+"\",\""+opt+"\"\n"
80 s=str(id)+","+typet+","+chtxt+","+title+","+btime+","+etime+","+deltaday+","+opt+"\n"
82 f=open(path+"/recdatum.csv","w")
86 dl=database.select_all_chdata()
88 for bctype, ontv, chtxt, ch, csch ,updatetime in dl:
90 for bctype,channel,display in database.select_by_ontv_ch(ontv):
93 chopt=chopt+"<option value="+chtxt+">"+chdisplay+"</option>\n "
96 ret=database.select_by_id_rectime(id)
99 def reserv_recday(keyword,chtxt,btime,etime,deltatime,opt,deltaday,day):
103 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
104 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
105 dt=int(day)-bt.isoweekday()
108 dbt=bt+datetime.timedelta(days=dt)
109 det=et+datetime.timedelta(days=dt)
110 btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
111 etime=det.strftime("%Y-%m-%d %H:%M:%S")
112 return reserv("keyevery",keyword,chtxt,btime,etime,deltatime,opt,"7")
113 def reserv(type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
116 tsnum=database.count_schedule_rectime(btime,etime)
121 bctypegetdb=database.select_by_chtxt_chdata(chtxt)
122 for bctypet,ontvt,chtxtt,cht,cscht,updatetimet in bctypegetdb:
124 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
125 if bctype.find("cs")>-1:
127 elif bctype.find("bs")>-1:
129 elif bctype.find("te")>-1:
131 if MaxS>-1 and MaxT>-1:
132 database.add_rectime(type=type,chtxt=chtxt,title=keyword,btime=btime,etime=etime,deltatime=deltatime,deltaday=deltaday,opt=opt)
136 def change_reserv(id,type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
142 tsnum=database.count_schedule_rectime(btime,etime)
147 for bctypet, chtxtt in database.select_by_chtxt_chdata(chtxt):
149 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
150 if bctype.find("cs")>-1:
152 elif bctype.find("bs")>-1:
154 elif bctype.find("te")>-1:
156 if MaxS>-1 and MaxT>-1:
157 database.del_by_id_rectime(id)
158 database.add_rectime(type=type, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, deltaday=deltaday, opt=opt)
162 def station2chtxt(station):
164 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_chdata(station):
167 def station_name2chtxt(station):
169 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_name_chdata(station):
172 def readHtmlSrcSimple():
173 f = open(path+'rswi.htm')
178 f = open(path+'rswi_edit.htm')
183 def readRecFinisSimple():
184 f = open(path+'fin.htm')
188 def readRecFinisOver():
189 f = open(path+'finover.htm')
193 def readRecSchedule():
194 f = open(path+'schedule.htm')
209 if f.getfirst('mode')=="schedule":
213 if f.getfirst('station_name'):
214 station=f.getfirst('station_name')
215 chtxt=station_name2chtxt(station)
216 if f.getfirst('station'):
217 station=f.getfirst('station')
218 chtxt=station2chtxt(station)
220 if f.getfirst('type'):
221 type=f.getfirst('type')
222 if f.getfirst('title'):
223 title=f.getfirst('title')
224 if f.getfirst('chtxt'):
225 chtxt=f.getfirst('chtxt')
226 if f.getfirst('btime'):
227 btime=f.getfirst('btime')
228 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
229 if f.getfirst('etime'):
230 etime=f.getfirst('etime')
231 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
234 dt=delt.days*24*60*60+delt.seconds
236 dd=datetime.timedelta(days=1)
238 etime=et.strftime("%Y-%m-%d %H:%M:%S")
240 d1=datetime.datetime(bt.year,0,0)
241 d2=datetime.datetime(bt.year+1,0,0)
244 etime=et.strftime("%Y-%m-%d %H:%M:%S")
247 if f.getfirst('size'):
248 size=f.getfirst('size')
250 if f.getfirst('opts'):
251 opts=f.getfirst('opts')
253 if f.getfirst('deltahour',""):
254 deltahour=f.getfirst('deltahour',"")
256 if f.getfirst('deltaday',""):
257 deltaday=f.getfirst('deltaday',"")
259 if f.getfirst('exec',""):
260 exect=f.getfirst('exec',"")
263 htmdate= readHtmlSrcSimple()
264 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
265 htmdate=htmdate.replace("<!--btime-value//-->",btime)
266 htmdate=htmdate.replace("<!--etime-value//-->",etime)
267 htmdate=htmdate.replace("<!--type-value//-->",type)
268 htmdate=htmdate.replace("<!--ch-value//-->",chtxt)
269 htmdate=htmdate.replace("<!--title-value//-->",title)
270 htmdate=htmdate.replace("<!--size-value//-->",size)
271 htmdate=htmdate.replace("<!--opts-value//-->",opts)
275 if f.getfirst('type')=="keyday":
277 dayt=f.getfirst('day_Mon')
279 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
280 dayt=f.getfirst('day_Tue')
282 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
283 dayt=f.getfirst('day_Wed')
285 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
286 dayt=f.getfirst('day_Thu')
288 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
289 dayt=f.getfirst('day_Fri')
291 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
292 dayt=f.getfirst('day_Sat')
294 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
295 dayt=f.getfirst('day_Sun')
297 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
300 htmdate=readRecFinisSimple()
302 htmdate=readRecFinisOver()
308 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
309 restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
311 htmdate=readRecFinisSimple()
313 htmdate=readRecFinisOver()
316 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(re.search('edit-exec:',exect)):
317 editnum=exect.replace("edit-exec:","")
318 restxt=change_reserv(editnum,type, title, chtxt, btime, etime, deltahour, opts, deltaday)
320 htmdate=readRecFinisSimple()
322 htmdate=readRecFinisOver()
324 if exect=="schedule":
325 htmdate=readRecSchedule()
326 if re.search('edit:',exect):
327 editnum=exect.replace("edit:","")
328 htmdate= readHtmlEdit()
329 iddata=edit_date(editnum)
330 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
331 htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
332 htmdate=htmdate.replace("<!--btime-value//-->",iddata['btime'])
333 htmdate=htmdate.replace("<!--etime-value//-->",iddata['etime'])
334 htmdate=htmdate.replace("<!--type-value//-->",iddata['type'])
335 htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
336 htmdate=htmdate.replace("<!--title-value//-->",iddata['title'])
337 htmdate=htmdate.replace("<!--size-value//-->",size)
338 htmdate=htmdate.replace("<!--opts-value//-->",iddata["opt"])
339 htmdate=htmdate.replace("<!--exec-value//-->","edit-exec:"+editnum)
340 print "Content-Type: text/html\n"