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 bt=datetime.datetime(*time.strptime(btime,"%Y-%m-%d %H:%M:%S")[:-3])
106 et=datetime.datetime(*time.strptime(etime,"%Y-%m-%d %H:%M:%S")[:-3])
107 dt=int(day)-bt.isoweekday()
110 dbt=bt+datetime.timedelta(days=dt)
111 det=et+datetime.timedelta(days=dt)
112 btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
113 etime=det.strftime("%Y-%m-%d %H:%M:%S")
114 return reserv("keyevery",keyword,chtxt,btime,etime,deltatime,opt,"7")
115 def reserv(type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
118 tsnum=database.count_schedule_rectime(btime,etime)
123 bctypegetdb=database.select_by_chtxt_chdata(chtxt)
124 for bctypet,ontvt,chtxtt,cht,cscht,updatetimet in bctypegetdb:
126 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
127 if bctype.find("cs")>-1:
129 elif bctype.find("bs")>-1:
131 elif bctype.find("te")>-1:
133 if MaxS>-1 and MaxT>-1:
134 database.add_rectime(type=type,chtxt=chtxt,title=keyword,btime=btime,etime=etime,deltatime=deltatime,deltaday=deltaday,opt=opt)
138 def change_reserv(id,type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
144 tsnum=database.count_schedule_rectime(btime,etime)
149 for dl in database.select_by_chtxt_chdata(chtxt):
151 if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
152 if bctype.find("cs")>-1:
154 elif bctype.find("bs")>-1:
156 elif bctype.find("te")>-1:
158 if MaxS>-1 and MaxT>-1:
159 database.del_by_id_rectime(id)
160 database.add_rectime(type=type, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, deltaday=deltaday, opt=opt)
164 def station2chtxt(station):
166 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_chdata(station):
169 def station_name2chtxt(station):
171 for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_name_chdata(station):
174 def readHtmlSrcSimple():
175 f = open(path+'rswi.htm')
180 f = open(path+'rswi_edit.htm')
185 def readRecFinisSimple():
186 f = open(path+'fin.htm')
190 def readRecFinisOver():
191 f = open(path+'finover.htm')
195 def readRecSchedule():
196 f = open(path+'schedule.htm')
211 if f.getfirst('mode')=="schedule":
215 if f.getfirst('station_name'):
216 station=f.getfirst('station_name')
217 chtxt=station_name2chtxt(station)
218 if f.getfirst('station'):
219 station=f.getfirst('station')
220 chtxt=station2chtxt(station)
222 if f.getfirst('type'):
223 type=f.getfirst('type')
224 if f.getfirst('title'):
225 title=f.getfirst('title')
226 if f.getfirst('chtxt'):
227 chtxt=f.getfirst('chtxt')
228 if f.getfirst('btime'):
229 btime=f.getfirst('btime')
230 #bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
231 bt=datetime.datetime(*time.strptime(btime,"%Y-%m-%d %H:%M:%S")[:-3])
232 if f.getfirst('etime'):
233 etime=f.getfirst('etime')
234 #et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
235 et=datetime.datetime(*time.strptime(etime,"%Y-%m-%d %H:%M:%S")[:-3])
238 dt=delt.days*24*60*60+delt.seconds
240 dd=datetime.timedelta(days=1)
242 etime=et.strftime("%Y-%m-%d %H:%M:%S")
244 d1=datetime.datetime(bt.year,0,0)
245 d2=datetime.datetime(bt.year+1,0,0)
248 etime=et.strftime("%Y-%m-%d %H:%M:%S")
251 if f.getfirst('size'):
252 size=f.getfirst('size')
254 if f.getfirst('opts'):
255 opts=f.getfirst('opts')
257 if f.getfirst('deltahour',""):
258 deltahour=f.getfirst('deltahour',"")
260 if f.getfirst('deltaday',""):
261 deltaday=f.getfirst('deltaday',"")
263 if f.getfirst('exec',""):
264 exect=f.getfirst('exec',"")
267 htmdate= readHtmlSrcSimple()
268 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
269 htmdate=htmdate.replace("<!--btime-value//-->",btime)
270 htmdate=htmdate.replace("<!--etime-value//-->",etime)
271 htmdate=htmdate.replace("<!--type-value//-->",type)
272 htmdate=htmdate.replace("<!--ch-value//-->",chtxt)
273 htmdate=htmdate.replace("<!--title-value//-->",title)
274 htmdate=htmdate.replace("<!--size-value//-->",size)
275 htmdate=htmdate.replace("<!--opts-value//-->",opts)
279 if f.getfirst('type')=="keyday":
281 dayt=f.getfirst('day_Mon')
283 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
284 dayt=f.getfirst('day_Tue')
286 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
287 dayt=f.getfirst('day_Wed')
289 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
290 dayt=f.getfirst('day_Thu')
292 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
293 dayt=f.getfirst('day_Fri')
295 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
296 dayt=f.getfirst('day_Sat')
298 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
299 dayt=f.getfirst('day_Sun')
301 rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
304 htmdate=readRecFinisSimple()
306 htmdate=readRecFinisOver()
312 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
313 restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
315 htmdate=readRecFinisSimple()
317 htmdate=readRecFinisOver()
320 if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(re.search('edit-exec:',exect)):
321 editnum=exect.replace("edit-exec:","")
322 #restxt=change_reserv(id, type, keyword, chtxt, btime, etime, deltatime, opt, deltaday)
323 restxt=change_reserv(editnum,type, title, chtxt, btime, etime, deltahour, opts, deltaday)
325 htmdate=readRecFinisSimple()
327 htmdate=readRecFinisOver()
329 if exect=="schedule":
330 htmdate=readRecSchedule()
331 if re.search('edit:',exect):
332 editnum=exect.replace("edit:","")
333 htmdate= readHtmlEdit()
334 iddata=edit_date(editnum)
335 htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
336 htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
337 htmdate=htmdate.replace("<!--btime-value//-->",iddata['btime'])
338 htmdate=htmdate.replace("<!--etime-value//-->",iddata['etime'])
339 htmdate=htmdate.replace("<!--type-value//-->",iddata['type'])
340 htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
341 htmdate=htmdate.replace("<!--title-value//-->",iddata['title'])
342 htmdate=htmdate.replace("<!--size-value//-->",size)
343 htmdate=htmdate.replace("<!--opts-value//-->",iddata["opt"])
344 htmdate=htmdate.replace("<!--exec-value//-->","edit-exec:"+editnum)
345 print "Content-Type: text/html\n"