# Rec10 TS Recording Tools
# Copyright (C) 2009 Yukikaze
import cgi
-import cgitb;cgitb.enable()
+import cgitb
import rec10web_dbMySQL
import rec10web_dbSQLite
import os
import rec10web_dbSQLite
import ConfigParser
import time
-path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
-confp=ConfigParser.SafeConfigParser()
-Conf='config.ini'
-confp.read(path+Conf)
+cgitb.enable()
+path = str(os.path.dirname(os.path.abspath(__file__))) + "/"
+confp = ConfigParser.SafeConfigParser()
+Conf = 'config.ini'
+confp.read(path + Conf)
+global f
+f = cgi.FieldStorage()
def getpath(string):
global confp
- return confp.get('path',string)
+ return confp.get('path', string)
def getdbpath(string):
global confp
- return confp.get('db',string)
-
+ return confp.get('db', string)
def getdb():
- retdb=""
- if getdbpath('db')=='MySQL':
- dbn=getdbpath("mysql_dbname")
- dbh=getdbpath("mysql_host")
- dbu=getdbpath("mysql_user")
- dbpwd=getdbpath("mysql_passwd")
- dbport=int(getdbpath("mysql_port"))
- retdb=rec10web_dbMySQL.DB_MySQL(dbname=dbn,host=dbh,user=dbu,passwd=dbpwd,port=dbport)
+ retdb = ""
+ if getdbpath('db') == 'MySQL':
+ dbn = getdbpath("mysql_dbname")
+ dbh = getdbpath("mysql_host")
+ dbu = getdbpath("mysql_user")
+ dbpwd = getdbpath("mysql_passwd")
+ dbport = int(getdbpath("mysql_port"))
+ retdb = rec10web_dbMySQL.DB_MySQL(dbname=dbn, host=dbh, user=dbu, passwd=dbpwd, port=dbport)
else:
- retdb=rec10web_dbSQLite.DB_SQLite(dbpath)
+ retdb = rec10web_dbSQLite.DB_SQLite(dbpath)
return retdb
def getRecDate():
- dl=database.select_all_rectime()
- recdata="id,type,chtxt,title,btime,etime,deltaday,opt\n"
+ dl = database.select_all_rectime()
+ recdata = "id,type,chtxt,title,btime,etime,deltaday,opt\n"
#print dl
for d in dl:
- id=d['id']
- typet=d['type']
- chtxt=d['chtxt']
- title=d['title']
- btime=d['btime']
- etime=d['etime']
- deltatime=d['deltatime']
- deltaday=d['deltaday']
- opt=d['opt']
- if deltaday==None:
- deltaday="なし"
- elif deltaday=="":
- deltaday="なし"
- if opt==None:
- opt="なし"
- if typet=="res":
- typet="一回予約"
- elif typet=="key":
- typet="検索予約"
- elif typet=="keyevery":
- typet="隔週予約"
- elif typet=="res":
- typet="録画最終"
- elif typet=="grid":
- typet="外部委託"
- elif typet=="ts2avi":
- typet="縁故予約"
- elif typet=="b252ts":
- typet="復号予約"
+ id = d['id']
+ typet = d['type']
+ chtxt = d['chtxt']
+ title = d['title']
+ btime = d['btime']
+ etime = d['etime']
+ deltatime = d['deltatime']
+ deltaday = d['deltaday']
+ opt = d['opt']
+ if deltaday == None:
+ deltaday = "なし"
+ elif deltaday == "":
+ deltaday = "なし"
+ if opt == None:
+ opt = "なし"
+ if typet == "res":
+ typet = "一回予約"
+ elif typet == "key":
+ typet = "検索予約"
+ elif typet == "keyevery":
+ typet = "隔週予約"
+ elif typet == "res":
+ typet = "録画最終"
+ elif typet == "grid":
+ typet = "外部委託"
+ elif typet == "ts2avi":
+ typet = "縁故予約"
+ elif typet == "b252ts":
+ typet = "復号予約"
#print btime
- btime=btime[5:16]
- etime=etime[5:16]
- btime=btime.replace("-","/")
- etime=etime.replace("-","/")
- if btime[0:5]==etime[0:5]:
- etime=etime[6:]
- s="\""+str(id)+"\",\""+typet+"\",\""+chtxt+"\",\""+title+"\",\""+btime+"\",\""+etime+"\",\""+deltaday+"\",\""+opt+"\"\n"
- s=str(id)+","+typet+","+chtxt+","+title+","+btime+","+etime+","+deltaday+","+opt+"\n"
- recdata=recdata+s
- f=open(path+"/recdatum.csv","w")
+ btime = btime[5:16]
+ etime = etime[5:16]
+ btime = btime.replace("-", "/")
+ etime = etime.replace("-", "/")
+ if btime[0:5] == etime[0:5]:
+ etime = etime[6:]
+ s = "\"" + str(id) + "\",\"" + typet + "\",\"" + chtxt + "\",\"" + title + "\",\"" + btime + "\",\"" + etime + "\",\"" + deltaday + "\",\"" + opt + "\"\n"
+ s = str(id) + "," + typet + "," + chtxt + "," + title + "," + btime + "," + etime + "," + deltaday + "," + opt + "\n"
+ recdata = recdata + s
+ f = open(path + "/recdatum.csv", "w")
+ f.write(recdata)
+ f.close()
+def getiEPGDate():
+ dl = database.select_all_iepg()
+ recdata = "id,name,chtxt\n"
+ #print dl
+ s = ""
+ for d in dl:
+ s = s + d[0] + "," + d[1] + "," + d[2] + "\n"
+ recdata = recdata + s
+ f = open(path + "/iepgdatum.csv", "w")
f.write(recdata)
f.close()
def getchtxt():
- dl=database.select_all_chdata()
- chopt=""
- for bctype, ontv, chtxt, ch, csch ,updatetime in dl:
- chdisplay=""
- for bctype,channel,display in database.select_by_ontv_ch(ontv):
- chdisplay=display
- if chdisplay!="":
- chopt=chopt+"<option value="+chtxt+">"+chdisplay+"</option>\n "
+ dl = database.select_all_chdata()
+ chopt = ""
+ for bctype, ontv, chtxt, ch, csch, updatetime in dl:
+ chdisplay = ""
+ for bctype, channel, display in database.select_by_ontv_ch(ontv):
+ chdisplay = display
+ if chdisplay != "":
+ chopt = chopt + "<option value=" + chtxt + ">" + chdisplay + "</option>\n "
return chopt
def edit_date(id):
- ret=database.select_by_id_rectime(id)
+ ret = database.select_by_id_rectime(id)
return ret[0]
-
-def reserv_recday(keyword,chtxt,btime,etime,deltatime,opt,deltaday,day):
+def reserv_recday(keyword, chtxt, btime, etime, deltatime, opt, deltaday, day):
"""
dayは月曜日を1日曜日を7とした数字
"""
#bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
#et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
- bt=datetime.datetime(*time.strptime(btime,"%Y-%m-%d %H:%M:%S")[:-3])
- et=datetime.datetime(*time.strptime(etime,"%Y-%m-%d %H:%M:%S")[:-3])
- dt=int(day)-bt.isoweekday()
- if dt<0:
- dt=dt+7
- dbt=bt+datetime.timedelta(days=dt)
- det=et+datetime.timedelta(days=dt)
- btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
- etime=det.strftime("%Y-%m-%d %H:%M:%S")
- return reserv("keyevery",keyword,chtxt,btime,etime,deltatime,opt,"7")
-def reserv(type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
- MaxT=2
- MaxS=2
- tsnum=database.count_schedule_rectime(btime,etime)
- MaxT=MaxT-tsnum[0]
- MaxS=MaxS-tsnum[1]
- bctype=""
- rett=""
- bctypegetdb=database.select_by_chtxt_chdata(chtxt)
- for bctypet,ontvt,chtxtt,cht,cscht,updatetimet in bctypegetdb:
- bctype=bctypet
- if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
- if bctype.find("cs")>-1:
- MaxS=MaxS-1
- elif bctype.find("bs")>-1:
- MaxS=MaxS-1
- elif bctype.find("te")>-1:
- MaxT=MaxT-1
- if MaxS>-1 and MaxT>-1:
- database.add_rectime(type=type,chtxt=chtxt,title=keyword,btime=btime,etime=etime,deltatime=deltatime,deltaday=deltaday,opt=opt)
+ bt = datetime.datetime(*time.strptime(btime, "%Y-%m-%d %H:%M:%S")[:-3])
+ et = datetime.datetime(*time.strptime(etime, "%Y-%m-%d %H:%M:%S")[:-3])
+ dt = int(day)-bt.isoweekday()
+ if dt < 0:
+ dt = dt + 7
+ dbt = bt + datetime.timedelta(days=dt)
+ det = et + datetime.timedelta(days=dt)
+ btime = dbt.strftime("%Y-%m-%d %H:%M:%S")
+ etime = det.strftime("%Y-%m-%d %H:%M:%S")
+ return reserv("keyevery", keyword, chtxt, btime, etime, deltatime, opt, "7")
+def reserv(type, keyword, chtxt, btime, etime, deltatime, opt, deltaday):
+ MaxT = 2
+ MaxS = 2
+ tsnum = count_schedule(btime, etime)
+ MaxT = MaxT-tsnum[0]
+ MaxS = MaxS-tsnum[1]
+ bctype = ""
+ rett = ""
+ bctypegetdb = database.select_by_chtxt_chdata(chtxt)
+ for bctypet, ontvt, chtxtt, cht, cscht, updatetimet in bctypegetdb:
+ bctype = bctypet
+ if (type == "rec") or (type == "res") or (type == "key") or (type == "keyevery"):
+ if bctype.find("cs") > -1:
+ MaxS = MaxS-1
+ elif bctype.find("bs") > -1:
+ MaxS = MaxS-1
+ elif bctype.find("te") > -1:
+ MaxT = MaxT-1
+ if MaxS > -1 and MaxT > -1:
+ database.add_rectime(type=type, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, deltaday=deltaday, opt=opt)
+ rett = ""
else:
- rett="over"
+ rett = "over"
return rett
-def count_schedule(btime,etime):
+def count_schedule(btime, etime):
"""
return rec num (int return[0]:TE /int return[1]:BS/CS)
"""
- #typet,bctypet, chtxtt,titlet,btime,etime
- def rectime_count(btimeb,etimee,liststemp):
- ##btimeからetimeまでの中に入る数を数えるとともに
- #リストのbtime,etimeを変更する
- #[[tenum,bscsnum],retlists]
- #typet,bctypet, chtxtt,titlet,btime,etime
- bt=datetime.datetime(*time.strptime(btimeb,"%Y-%m-%d %H:%M:%S")[:-3])
- et=datetime.datetime(*time.strptime(etimee,"%Y-%m-%d %H:%M:%S")[:-3])
- lists=liststemp
- count=[0,0]#te,bscs
- bttemp
- retlists=[]
- for list in lists:
- btt=datetime.datetime(*time.strptime(list[4],"%Y-%m-%d %H:%M:%S")[:-3])
- ett=datetime.datetime(*time.strptime(list[5],"%Y-%m-%d %H:%M:%S")[:-3])
- #NOT( ( rectime.etime <= ? ) OR ( rectime.btime >= ? )
- if not ((ett<= bt) or (btt >= et)):
- if list[1].find("cs")>-1:
- count[1]=count[1]+1
- elif list[1].find("bs")>-1:
- count[1]=count[1]+1
- elif list[1].find("te")>-1:
- count[0]=count[0]+1
- """if ettemp>ett:
- ettemp=et"""
- if btt<et and ett>et:
- btt=et
- if btt>=et:
- btimett=btt.strftime("%Y-%m-%d %H:%M:%S")
- etimett=ett.strftime("%Y-%m-%d %H:%M:%S")
- retlists.append([list[0],list[1],list[2],list[3],btimett,etimett])
- return [count,retlists]
- #btime=dbt.strftime("%Y-%m-%d %H:%M:%S")
- #etime=det.strftime("%Y-%m-%d %H:%M:%S")
- dls=database.schedule_rectime(btime,etime)
- btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
- etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
- retcount=[0,0]
- while retend==0:
- btemp=datetime.datetime(*time.strptime(dis[0][4],"%Y-%m-%d %H:%M:%S")[:-3])
- etemp=datetime.datetime(*time.strptime(dis[0][5],"%Y-%m-%d %H:%M:%S")[:-3])
- for dl in dls:
- btemptt=datetime.datetime(*time.strptime(dl[4],"%Y-%m-%d %H:%M:%S")[:-3])
- etemptt=datetime.datetime(*time.strptime(dl[5],"%Y-%m-%d %H:%M:%S")[:-3])
- if btemp>btemptt:
- btemp=btemptt
- etemp=etemptt
- elif btemp==btemptt:
- if etemp>etemptt:
- etemp=etemptt
- bt2=btemp.strftime("%Y-%m-%d %H:%M:%S")
- et2=etemp.strftime("%Y-%m-%d %H:%M:%S")
- ret2=rectime_count(bt2,et2,dls)
- if retcount[0]<ret2[0][0]:
- retcount[0]=ret2[0][0]
- if retcount[1]<ret2[0][1]:
- retcount[1]=ret2[0][1]
- dls=ret2[1]
- if len(dis)==0:
- break
- elif dis[0][4]==btime:
- break
+ def cmpare(x, y):
+ #xt=datetime.datetime(*time.strptime(x,"%Y-%m-%d %H:%M:%S")[:-3])
+ #yt=datetime.datetime(*time.strptime(y,"%Y-%m-%d %H:%M:%S")[:-3])
+ xt = x
+ yt = y
+ if xt > yt:
+ return -1
+ elif xt == yt:
+ return 0
+ else:
+ return 1
+ dls = database.schedule_rectime(btime, etime)
+ times = []
+ btd = datetime.datetime(*time.strptime(btime, "%Y-%m-%d %H:%M:%S")[:-3])
+ etd = datetime.datetime(*time.strptime(etime, "%Y-%m-%d %H:%M:%S")[:-3])
+ for dl in dls:
+ dd1 = datetime.datetime(*time.strptime(dl[4], "%Y-%m-%d %H:%M:%S")[:-3])
+ dd2 = datetime.datetime(*time.strptime(dl[5], "%Y-%m-%d %H:%M:%S")[:-3])
+ if dd1 < btd:
+ dd1 = btd
+ if dd2 > etd:
+ dd2 = etd
+ times.append(dd1)
+ times.append(dd2)
+ times = list(set(times))
+ times.sort(cmpare)
+ times.reverse()
+ retcount = [0, 0]
+ for i in xrange(0, len(times)-2, 1):
+ bt1 = times[i]
+ et1 = times[i + 1]
+ btime1 = bt1.strftime("%Y-%m-%d %H:%M:%S")
+ etime1 = et1.strftime("%Y-%m-%d %H:%M:%S")
+ ret1 = database.count_schedule_rectime(btime1, etime1)
+ if retcount[0] < ret1[0]:
+ retcount[0] = ret1[0]
+ if retcount[1] < ret1[1]:
+ retcount[1] = ret1[1]
return retcount
-def change_reserv(id,type,keyword,chtxt,btime,etime,deltatime,opt,deltaday):
+def change_reserv(id, type, keyword, chtxt, btime, etime, deltatime, opt, deltaday):
"""
idはテキスト
"""
- MaxT=2
- MaxS=2
- tsnum=count_schedule(btime, etime)
- MaxT=MaxT-tsnum[0]
- MaxS=MaxS-tsnum[1]
- bctype=""
- rett=""
+ MaxT = 2
+ MaxS = 2
+ tsnum = count_schedule(btime, etime)
+ MaxT = MaxT-tsnum[0]
+ MaxS = MaxS-tsnum[1]
+ bctype = ""
+ rett = ""
for dl in database.select_by_chtxt_chdata(chtxt):
- bctype=dl[0]
- if (type=="rec") or (type=="res") or (type=="key") or (type=="keyevery"):
- if bctype.find("cs")>-1:
- MaxS=MaxS-1
- elif bctype.find("bs")>-1:
- MaxS=MaxS-1
- elif bctype.find("te")>-1:
- MaxT=MaxT-1
- if MaxS>-1 and MaxT>-1:
+ bctype = dl[0]
+ if (type == "rec") or (type == "res") or (type == "key") or (type == "keyevery"):
+ if bctype.find("cs") > -1:
+ MaxS = MaxS-1
+ elif bctype.find("bs") > -1:
+ MaxS = MaxS-1
+ elif bctype.find("te") > -1:
+ MaxT = MaxT-1
+ if MaxS > -1 and MaxT > -1:
database.del_by_id_rectime(id)
database.add_rectime(type=type, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, deltaday=deltaday, opt=opt)
else:
- rett="over"
+ rett = "over"
return rett
def station2chtxt(station):
- ret=""
- for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_chdata(station):
- ret=chtxt
- return ret
-def station_name2chtxt(station):
- ret=""
- for bctype, ontv, chtxt, ch, csch ,updatetime in database.select_by_station_name_chdata(station):
- ret=chtxt
+ ret = ""
+ #try:
+ database.new_iepg()
+ #except:
+ # ""
+ sta = database.select_by_station_iepg(station)
+ if len(sta) > 0:
+ ret = sta[0][2]
+ else:
+ ret = "n\/a"
return ret
def readHtmlSrcSimple():
- f = open(path+'rswi.htm')
- ret=f.read()
+ f = open(path + 'rswi.htm')
+ ret = f.read()
f.close()
return ret
-def readHtmlEdit():
- f = open(path+'rswi_edit.htm')
- ret=f.read()
+def readRecFinisSimple():
+ f = open(path + 'fin.htm')
+ ret = f.read()
f.close()
return ret
-
-def readRecFinisSimple():
- f = open(path+'fin.htm')
- ret=f.read()
+def readRecSchedule():
+ f = open(path + 'schedule.htm')
+ ret = f.read()
f.close()
return ret
-def readRecFinisOver():
- f = open(path+'finover.htm')
- ret=f.read()
+def readiEPGadd():
+ f = open(path + 'iepg_add.htm')
+ ret = f.read()
f.close()
return ret
-def readRecSchedule():
- f = open(path+'schedule.htm')
- ret=f.read()
+def readiEPGshow():
+ f = open(path + 'iepg_show.htm')
+ ret = f.read()
f.close()
return ret
-dbpath=path+"ch.db"
-database=getdb()
-f=cgi.FieldStorage()
-
-btime=""
-etime=""
-title=""
-chtxt=""
-type="res"
-bt=""
-getRecDate()
-if f.getfirst('mode')=="schedule":
- getRecDate()
-
+def get_fin(string, refreshurl):
+ htmdate = readRecFinisSimple()
+ htmdate = htmdate.replace('<!--text_for_replace_fin//-->', string)
+ htmdate = htmdate.replace('<!--url_for_replace_fin//-->', refreshurl)
+ return htmdate
+def mode_iepg_add(station):
+ htmdate = readiEPGadd()
+ htmdate = htmdate.replace("<!--text_for_replace_chtxt_input//-->", getchtxt())
+ htmdate = htmdate.replace("<!--ch-value//-->", "")
+ htmdate = htmdate.replace("<!--iepg_title-value//-->", station)
+ return htmdate
+def mode_iepg_fin():
+ s = "epgデータの追加を完了しました。<br>\n録画を行う場合はもう一度おねがいします。<br>"
+ u = "rec10web.py?exec=iepg-show"
+ return get_fin(s, u)
+def mode_iepg_show():
+ htmdate = readiEPGshow()
+ return htmdate
+def mode_iepg_del():
+ s = "epgデータを削除しました。"
+ u = "rec10web.py?exec=iepg-show"
+ return get_fin(s, u)
+def mode_iepg_del_miss():
+ s = "epgデータの削除に失敗しました。"
+ u = "rec10web.py?exec=iepg-show"
+ return get_fin(s, u)
+def mode_schedule():
+ htmdate = readRecSchedule()
+ return htmdate
+def mode_recfin():
+ s = "予約が終了しました。移動します。"
+ u = "rec10web.py?exec=schedule"
+ return get_fin(s, u)
+def mode_recover():
+ s = "最大予約可能数を超えています"
+ u = "rec10web.py?exec=schedule"
+ return get_fin(s, u)
+def mode_normal():
+ htmdate = readHtmlSrcSimple()
+ htmdate = htmdate.replace("<!--exec-value//-->", "yes")
+ return htmdate
+def mode_del():
+ s = "予約を削除しました。"
+ u = "rec10web.py?exec=schedule"
+ return get_fin(s, u)
+def mode_edit_rec10web(tasknum):
+ #editnum=exect.replace("edit:","")
+ htmdate = readHtmlSrcSimple()
+ iddata = edit_date(tasknum)
+ htmdate = htmdate.replace("<!--text_for_replace_chtxt_input//-->", getchtxt())
+ htmdate = htmdate.replace("<!--ch-value//-->", iddata['chtxt'])
+ htmdate = htmdate.replace("<!--btime-value//-->", iddata['btime'])
+ htmdate = htmdate.replace("<!--etime-value//-->", iddata['etime'])
+ htmdate = htmdate.replace("<!--type-value//-->", iddata['type'])
+ htmdate = htmdate.replace("<!--ch-value//-->", iddata['chtxt'])
+ htmdate = htmdate.replace("<!--title-value//-->", iddata['title'])
+ htmdate = htmdate.replace("<!--size-value//-->", size)
+ htmdate = htmdate.replace("<!--opts-value//-->", iddata["opt"])
+ htmdate = htmdate.replace("<!--exec-value//-->", "edit-exec:" + tasknum)
+ return htmdate
+def mode_edit():
+ editnum = exect.replace("edit:", "")
+ htmdate = readHtmlSrcSimple()
+ iddata = edit_date(editnum)
+ htmdate = htmdate.replace("<!--text_for_replace_chtxt_input//-->", getchtxt())
+ htmdate = htmdate.replace("<!--ch-value//-->", iddata['chtxt'])
+ htmdate = htmdate.replace("<!--btime-value//-->", iddata['btime'])
+ htmdate = htmdate.replace("<!--etime-value//-->", iddata['etime'])
+ htmdate = htmdate.replace("<!--type-value//-->", iddata['type'])
+ htmdate = htmdate.replace("<!--ch-value//-->", iddata['chtxt'])
+ htmdate = htmdate.replace("<!--title-value//-->", iddata['title'])
+ htmdate = htmdate.replace("<!--size-value//-->", size)
+ htmdate = htmdate.replace("<!--opts-value//-->", iddata["opt"])
+ htmdate = htmdate.replace("<!--exec-value//-->", "edit-exec:" + editnum)
+ return htmdate
+dbpath = path + "ch.db"
+database = getdb()
+btime = ""
+etime = ""
+title = ""
+chtxt = ""
+type = "res"
+bt = ""
+station_name = ""
+mode = ""
###ここからiEPG用の読み出し
if f.getfirst('station_name'):
- station=f.getfirst('station_name')
- chtxt=station_name2chtxt(station)
+ station = f.getfirst('station_name')
+ chtxt = station2chtxt(station)
+ if chtxt == "n\/a":
+ mode = "iepg-add"
+ station_name = station
+ exect = "iepg-add"
if f.getfirst('station'):
- station=f.getfirst('station')
- chtxt=station2chtxt(station)
+ station = f.getfirst('station')
+ chtxt = station2chtxt(station)
+ if chtxt == "n\/a":
+ mode = "iepg-add"
+ station_name = station
+ exect = "iepg-add"
###ここから外部からの読み出しの場合
if f.getfirst('type'):
- type=f.getfirst('type')
+ type = f.getfirst('type')
if f.getfirst('title'):
- title=f.getfirst('title')
+ title = f.getfirst('title')
if f.getfirst('chtxt'):
- chtxt=f.getfirst('chtxt')
+ chtxt = f.getfirst('chtxt')
if f.getfirst('btime'):
- btime=f.getfirst('btime')
- #bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
- bt=datetime.datetime(*time.strptime(btime,"%Y-%m-%d %H:%M:%S")[:-3])
+ btime = f.getfirst('btime')
+ bt = datetime.datetime(*time.strptime(btime, "%Y-%m-%d %H:%M:%S")[:-3])
if f.getfirst('etime'):
- etime=f.getfirst('etime')
- #et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
- et=datetime.datetime(*time.strptime(etime,"%Y-%m-%d %H:%M:%S")[:-3])
- if bt !="":
- delt=et-bt
- dt=delt.days*24*60*60+delt.seconds
- if dt<0:
- dd=datetime.timedelta(days=1)
- et=et+dd
- etime=et.strftime("%Y-%m-%d %H:%M:%S")
- if dt<-1*24*60*60:
- d1=datetime.datetime(bt.year,0,0)
- d2=datetime.datetime(bt.year+1,0,0)
- dd=d2-d1
- et=et+dd
- etime=et.strftime("%Y-%m-%d %H:%M:%S")
-size="S"
+ etime = f.getfirst('etime')
+ et = datetime.datetime(*time.strptime(etime, "%Y-%m-%d %H:%M:%S")[:-3])
+ if bt != "":
+ delt = et-bt
+ dt = delt.days * 24 * 60 * 60 + delt.seconds
+ if dt < 0:
+ dd = datetime.timedelta(days=1)
+ et = et + dd
+ etime = et.strftime("%Y-%m-%d %H:%M:%S")
+ if dt < -1 * 24 * 60 * 60:
+ d1 = datetime.datetime(bt.year, 0, 0)
+ d2 = datetime.datetime(bt.year + 1, 0, 0)
+ dd = d2-d1
+ et = et + dd
+ etime = et.strftime("%Y-%m-%d %H:%M:%S")
+size = "S"
if f.getfirst('size'):
- size=f.getfirst('size')
-opts=""
+ size = f.getfirst('size')
+opts = ""
if f.getfirst('opts'):
- opts=f.getfirst('opts')
-deltahour=""
-if f.getfirst('deltahour',""):
- deltahour=f.getfirst('deltahour',"")
-deltaday=""
-if f.getfirst('deltaday',""):
- deltaday=f.getfirst('deltaday',"")
-exect=""
-if f.getfirst('exec',""):
- exect=f.getfirst('exec',"")
-htmdate= readHtmlSrcSimple()
-htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
-htmdate=htmdate.replace("<!--btime-value//-->",btime)
-htmdate=htmdate.replace("<!--etime-value//-->",etime)
-htmdate=htmdate.replace("<!--type-value//-->",type)
-htmdate=htmdate.replace("<!--ch-value//-->",chtxt)
-htmdate=htmdate.replace("<!--title-value//-->",title)
-htmdate=htmdate.replace("<!--size-value//-->",size)
-htmdate=htmdate.replace("<!--opts-value//-->",opts)
+ opts = f.getfirst('opts')
+deltahour = ""
+if f.getfirst('deltahour', ""):
+ deltahour = f.getfirst('deltahour', "")
+deltaday = ""
+if f.getfirst('deltaday', ""):
+ deltaday = f.getfirst('deltaday', "")
+exect = ""
+if f.getfirst('exec', ""):
+ exect = f.getfirst('exec', "")
+if exect == "schedule":
+ mode = "schedule"
+ getRecDate()
+elif exect == "yes":
+ mode = "yes"
+elif re.search('edit:', exect):
+ mode = "edit"
+elif re.search('edit-exec:', exect):
+ mode = "edit-exec"
+elif exect == "change":
+ mode = "edit-rec10"
+elif exect == "del":
+ mode = "del"
+elif exect == "iepg-add":
+ mode = "iepg-add"
+elif exect == "iepg-show":
+ mode = "iepg-show"
+elif exect == "iepg-add_yes":
+ mode = "iepg-add-yes"
+elif exect == "iepg-del":
+ mode = "iepg-del"
+htmdate = mode_normal()
+htmdate = htmdate.replace("<!--text_for_replace_chtxt_input//-->", getchtxt())
+htmdate = htmdate.replace("<!--btime-value//-->", btime)
+htmdate = htmdate.replace("<!--etime-value//-->", etime)
+htmdate = htmdate.replace("<!--type-value//-->", type)
+htmdate = htmdate.replace("<!--ch-value//-->", chtxt)
+htmdate = htmdate.replace("<!--title-value//-->", title)
+htmdate = htmdate.replace("<!--size-value//-->", size)
+htmdate = htmdate.replace("<!--opts-value//-->", opts)
#ここから曜日検索の設定
-if f.getfirst('type')=="keyday":
- rett=""
- dayt=f.getfirst('day_Mon')
+if f.getfirst('type') == "keyday":
+ rett = ""
+ dayt = f.getfirst('day_Mon')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Tue')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Tue')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Wed')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Wed')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Thu')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Thu')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Fri')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Fri')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Sat')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Sat')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- dayt=f.getfirst('day_Sun')
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ dayt = f.getfirst('day_Sun')
if dayt:
- rett=rett+reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
- if rett=="":
- htmdate=readRecFinisSimple()
+ rett = rett + reserv_recday(title, chtxt, btime, etime, deltahour, opts, deltaday, dayt)
+ if rett == "":
+ htmdate = mode_recfin()
else:
- htmdate=readRecFinisOver()
- chtxt=""
- exect=""
-if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(exect=="yes"):
- restxt=reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
- if restxt=="":
- htmdate=readRecFinisSimple()
- elif restxt=="over":
- htmdate=readRecFinisOver()
- exect=""
-#
-if (chtxt != "")and(title != "")and(btime!="")and(etime!="")and(opts!="")and(re.search('edit-exec:',exect)):
- editnum=exect.replace("edit-exec:","")
- #restxt=change_reserv(id, type, keyword, chtxt, btime, etime, deltatime, opt, deltaday)
- restxt=change_reserv(editnum,type, title, chtxt, btime, etime, deltahour, opts, deltaday)
- if restxt=="":
- htmdate=readRecFinisSimple()
- elif restxt=="over":
- htmdate=readRecFinisOver()
- exect=""
-if exect=="schedule":
- htmdate=readRecSchedule()
-if re.search('edit:',exect):
- editnum=exect.replace("edit:","")
- htmdate= readHtmlEdit()
- iddata=edit_date(editnum)
- htmdate=htmdate.replace("<!--text_for_replace_chtxt_input//-->",getchtxt())
- htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
- htmdate=htmdate.replace("<!--btime-value//-->",iddata['btime'])
- htmdate=htmdate.replace("<!--etime-value//-->",iddata['etime'])
- htmdate=htmdate.replace("<!--type-value//-->",iddata['type'])
- htmdate=htmdate.replace("<!--ch-value//-->",iddata['chtxt'])
- htmdate=htmdate.replace("<!--title-value//-->",iddata['title'])
- htmdate=htmdate.replace("<!--size-value//-->",size)
- htmdate=htmdate.replace("<!--opts-value//-->",iddata["opt"])
- htmdate=htmdate.replace("<!--exec-value//-->","edit-exec:"+editnum)
-print "Content-Type: text/html\n"
-print htmdate
+ htmdate = mode_recover()
+ chtxt = ""
+ exect = ""
+
+if mode == "schedule":
+ htmdate = mode_schedule()
+elif mode == "edit":
+ htmdate = mode_edit()
+elif mode == "iepg-add":
+ htmdate = mode_iepg_add(station_name)
+elif mode == "iepg-add-yes":
+ try:
+ database.new_iepg()
+ except:
+ ""
+ if f.getfirst('iepg_station') and f.getfirst('iepg_chtxt'):
+ database.add_iepg(f.getfirst('iepg_station'), f.getfirst('iepg_chtxt'))
+ htmdate = mode_iepg_fin()
+elif mode == "iepg-show":
+ getiEPGDate()
+ htmdate = mode_iepg_show()
+elif mode == "iepg-del":
+ s = f.getfirst('iepgdelnum')
+ htmdate = ""
+ #try:
+ for st in s.split(","):
+ if st != "":
+ database.del_by_id_iepg(st)
+ htmdate = mode_iepg_del()
+ #except:
+ # htmdate=mode_iepg_del_miss()
+elif mode == "edit-rec10":
+ s = f.getfirst('tasknum')
+ s.replace(" ", "")
+ htmdate = mode_edit_rec10web(s.split(",")[0])
+elif mode == "del":
+ s = f.getfirst('tasknum')
+ s.replace(" ", "")
+ ss = s.split(",")
+ for st in ss:
+ if st != "":
+ database.del_by_id_rectime(st)
+ htmdate = mode_del()
+elif mode == "edit-exec":
+ if (chtxt != "")and(title != "")and(btime != "")and(etime != "")and(opts != ""):
+ editnum = exect.replace("edit-exec:", "")
+ restxt = change_reserv(editnum, type, title, chtxt, btime, etime, deltahour, opts, deltaday)
+ if restxt == "":
+ htmdate = mode_recfin()
+ elif restxt == "over":
+ htmdate = mode_recover()
+ else:
+ htmdate = mode_recfin()
+ exect = ""
+elif mode == "yes":
+ if (chtxt != "")and(title != "")and(btime != "")and(etime != "")and(opts != ""):
+ restxt = reserv(type, title, chtxt, btime, etime, deltahour, opts, deltaday)
+ if restxt == "":
+ htmdate = mode_recfin()
+ elif restxt == "over":
+ htmdate = mode_recover()
+ else:
+ htmdate = mode_recfin()
+print "Content-Type: text/html"
+print htmdate