From c9bc087b8b2184af28449b86c8e825ec9e382908 Mon Sep 17 00:00:00 2001 From: gn64_jp Date: Sun, 9 Aug 2009 12:14:14 +0000 Subject: [PATCH] begin to ready for implementing MySQL function. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@100 4e526526-5e11-4fc0-8910-f8fd03428081 --- Rec10WEB/trunk/src/rec10web.py | 32 +++++++++++++++++++++++++++++--- Rec10WEB/trunk/src/rec10web_dbMySQL.py | 31 ++++++++++++++++--------------- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/Rec10WEB/trunk/src/rec10web.py b/Rec10WEB/trunk/src/rec10web.py index ea20ded..3c96883 100644 --- a/Rec10WEB/trunk/src/rec10web.py +++ b/Rec10WEB/trunk/src/rec10web.py @@ -4,18 +4,41 @@ # Copyright (C) 2009 Yukikaze import cgi import cgitb;cgitb.enable() -import sqlite3 +import rec10web_dbMySQL +import rec10web_dbSQLite import os import re import datetime import rec10web_dbSQLite +import ConfigParser #cgitb.enable() path=str(os.path.dirname(os.path.abspath(__file__)))+"/" -dbpath=path+"ch.db" -database=rec10web_dbSQLite.DB_SQLite(dbpath) +confp=ConfigParser.SafeConfigParser() +Conf='config.ini' +confp.read(path+Conf) +def getpath(string): + global confp + return confp.get('path',string) +def getdbpath(string): + global confp + 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) + else: + 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" + print dl for d in dl: id=d['id'] typet=d['type'] @@ -46,6 +69,7 @@ def getRecDate(): typet="縁故予約" elif typet=="b252ts": typet="復号予約" + #print btime btime=btime[5:16] etime=etime[5:16] btime=btime.replace("-","/") @@ -171,6 +195,8 @@ def readRecSchedule(): ret=f.read() f.close() return ret +dbpath=path+"ch.db" +database=getdb() f=cgi.FieldStorage() btime="" diff --git a/Rec10WEB/trunk/src/rec10web_dbMySQL.py b/Rec10WEB/trunk/src/rec10web_dbMySQL.py index 4b61aa4..f72dea0 100644 --- a/Rec10WEB/trunk/src/rec10web_dbMySQL.py +++ b/Rec10WEB/trunk/src/rec10web_dbMySQL.py @@ -2,7 +2,7 @@ # coding: UTF-8 # Rec10 TS Recording Tools # Copyright (C) 2009 Yukikaze -import sqlite3 +import MySQLdb import os path = str(os.path.dirname(os.path.abspath(__file__))) + "/" dbpath = path + "ch.db" @@ -32,14 +32,14 @@ class DB_MySQL(): def select_by_ontv_ch(self,ontv): db=self.connect_db() ret=db[1].execute("SELECT bctype,channel,display FROM ch WHERE channel= %s ",(ontv,)) - ret=ret.fetchall() + ret=db[1].fetchall() self.close_db(db) return ret def select_all_rectime(self): db=self.connect_db() recdata=[] dl=db[1].execute("SELECT id,type,chtxt,title,btime,etime,deltatime,deltaday,opt FROM rectime") - dls=dl.fetchall() + dls=db[1].fetchall() for id,typet, chtxt, title, btime, etime, deltatime, deltaday, opt in dls: ret={} ret['id']=id @@ -67,7 +67,7 @@ class DB_MySQL(): db=self.connect_db() recdata=[] dl=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE chtxt = %s ",(chtxt,)) - d=dl.fetchall() + d=db[1].fetchall() for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in d: ret={} ret['type']=typet @@ -92,7 +92,7 @@ class DB_MySQL(): db=self.connect_db() recdata=[] dl=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE id = %s ",(id,)) - d=dl.fetchall() + d=db[1].fetchall() for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in d: ret={} ret['type']=typet @@ -116,43 +116,44 @@ class DB_MySQL(): def select_all_chdata(self): db=self.connect_db() ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata") - ret=ret.fetchall() + ret=db[1].fetchall() self.close_db(db) return ret def select_by_chtxt_chdata(self,chtxt): db=self.connect_db() - ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE chtxt=?",(chtxt,)) - ret=ret.fetchall() + ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE chtxt=%s",(chtxt,)) + ret=db[1].fetchall() self.close_db(db) return ret def select_by_station_chdata(self,station): db=self.connect_db() - ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station=?",(station,)) - ret=ret.fetchall() + ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station=%s",(station,)) + ret=db[1].fetchall() self.close_db(db) return ret def select_by_station_name_chdata(self,station_name): db=self.connect_db() ret=db[1].execute("SELECT bctype,ontv,chtxt,ch,csch,updatetime FROM chdata WHERE station_name=%s",(station_name,)) - ret=ret.fetchall() + ret=db[1].fetchall() self.close_db(db) return ret def add_rectime(self,type="", chtxt="", title="", btime="", etime="", deltatime="", deltaday="", opt=""): db = self.connect_db() db[1].execute('INSERT IGNORE INTO rectime (type,chtxt,title,btime,etime,deltatime,deltaday,opt) values (%s,%s,%s,%s,%s,%s,%s,%s)', (type, chtxt, title, btime, etime, deltatime, deltaday, opt)) - db.commit() + #db.commit() self.close_db(db) def count_schedule_rectime(self,btime,etime): """ count rectasknum return [te num,bs/cs num] """ - db=self.connect_db(120) + db=self.connect_db() dbexe="SELECT type,chdata.bctype,rectime.chtxt,rectime.title FROM rectime INNER JOIN chdata ON rectime.chtxt=chdata.chtxt" dbexe=dbexe+" WHERE NOT( ( rectime.etime <= %s ) OR ( rectime.btime >= %s ) )" Srec=0 Trec=0 - for typet,bctypet, chtxtt, titlet in db[1].execute(dbexe,(btime,etime)): + db[1].execute(dbexe,(btime,etime)) + for typet,bctypet, chtxtt, titlet in db[1].fetchall(): if (typet=="rec") or (typet=="res") or (typet=="key") or (typet=="keyevery"): if bctypet.find("cs")>-1: Srec=Srec+1 @@ -163,6 +164,6 @@ class DB_MySQL(): self.close_db(db) return [Trec,Srec] def del_by_id_rectime(self,id): - db=self.connect_db(120) + db=self.connect_db() db[1].execute('DELETE FROM rectime WHERE id='+id) self.close_db(db) \ No newline at end of file -- 2.11.0