X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=rec10%2Ftrunk%2Fsrc%2FdbMySQL.py;h=480013370ffad1f3c8ed293a63a4c2612123637a;hb=d1e5d2d5cae1b0f5003bfe56017ece491f917bf1;hp=315d86bbffc9754b580b55e29b7f36c6f8c7c1eb;hpb=6de9ba83df1864ee9d2c73f53e1a175e402985f7;p=rec10%2Frec10-git.git diff --git a/rec10/trunk/src/dbMySQL.py b/rec10/trunk/src/dbMySQL.py index 315d86b..4800133 100644 --- a/rec10/trunk/src/dbMySQL.py +++ b/rec10/trunk/src/dbMySQL.py @@ -5,6 +5,7 @@ import MySQLdb import recdblist import warnings +import traceback from decimal import Decimal class DB_MySQL: @@ -26,8 +27,9 @@ class DB_MySQL: cur.execute('CREATE DATABASE ' + dbname + " DEFAULT CHARACTER SET utf8") cur.close() con.close() - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "init (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) db = self.connect_db() try: db[1].execute('\ @@ -46,13 +48,14 @@ class DB_MySQL: epgbtime DATETIME,\ epgetime DATETIME,\ epgduplicate TINYINT DEFAULT 0,\ - epgchange TINYINT DEFAULT 0\ - epgext VARCHAR(200),\ - counter TINYINT DEFAULT -1\ + epgchange TINYINT DEFAULT 0,\ + epgexp VARCHAR(200),\ + counter TINYINT DEFAULT -1,\ UNIQUE uni (type,chtxt,title,btime,deltaday)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "init (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) self.new_epg_timeline("") self.new_in_timeline_log() @@ -77,15 +80,16 @@ class DB_MySQL: db = self.connect_db() try: db[1].execute('drop table epg_ch') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_epg_ch drop (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + try: db[1].execute('\ CREATE TABLE epg_ch \ (\ bctype VARCHAR(15),\ - ontv VARCHAR(30) PRIMARY KEY,\ - chtxt VARCHAR(20),\ + chtxt VARCHAR(20) PRIMARY KEY,\ ch VARCHAR(20),\ csch VARCHAR(20),\ chname VARCHAR(100),\ @@ -93,37 +97,22 @@ class DB_MySQL: status TINYINT,\ isshow TINYINT\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_epg_ch (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) - def add_epg_ch(self, bctype, ontv, chtxt, ch, csch, updatetime): + def add_epg_ch(self, bctype, chtxt, ch, csch, updatetime): db = self.connect_db() db[1].execute('\ INSERT INTO epg_ch \ - VALUES (%s,%s,%s,%s,%s,"",%s,%s,%s)', \ - (bctype, ontv, chtxt, ch, csch, updatetime, "1","1")) - self.close_db(db) - def select_by_ontv_epg_ch(self, ontv): - db = self.connect_db() - dbexe = db[1].execute("\ - SELECT bctype,ontv,chtxt,ch,csch,updatetime \ - FROM epg_ch \ - WHERE ontv = %s", \ - (ontv,)) - ret = [] - dls = [] - if dbexe > 0: - dls = db[1].fetchall() + VALUES (%s,%s,%s,%s,"",%s,%s,%s)', \ + (bctype, chtxt, ch, csch, updatetime, "1","1")) self.close_db(db) - for dl in dls: - r = list(dl) - r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S") - ret.append(r) - return ret def select_by_chtxt_epg_ch(self, chtxt): db = self.connect_db() dbexe = db[1].execute("\ - SELECT bctype,ontv,chtxt,ch,csch,updatetime \ + SELECT bctype,chtxt,ch,csch,updatetime \ FROM epg_ch \ WHERE chtxt = %s", \ (chtxt,)) @@ -134,13 +123,13 @@ class DB_MySQL: self.close_db(db) for dl in dls: r = list(dl) - r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S") + r[4] = r[4].strftime("%Y-%m-%d %H:%M:%S") ret.append(r) return ret def select_by_bctype_epg_ch(self, bctype): db = self.connect_db() dbexe = db[1].execute("\ - SELECT bctype,ontv,chtxt,ch,csch,updatetime,status \ + SELECT bctype,chtxt,ch,csch,updatetime,status \ FROM epg_ch \ WHERE bctype = %s", \ (bctype,)) @@ -152,15 +141,15 @@ class DB_MySQL: for dl in dls: #recdblist.printutf8(dl) r = list(dl) - r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S") - r[6] = str(r[6]) + r[4] = r[4].strftime("%Y-%m-%d %H:%M:%S") + r[5] = str(r[5]) ret.append(r) return ret def select_by_ch_epg_ch(self, ch): db = self.connect_db() dbexe = db[1].execute("\ SELECT \ - bctype,ontv,chtxt,ch,csch,updatetime \ + bctype,chtxt,ch,csch,updatetime \ FROM epg_ch \ WHERE ch = %s", \ (ch,)) @@ -171,13 +160,13 @@ class DB_MySQL: self.close_db(db) for dl in dls: r = list(dl) - r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S") + r[4] = r[4].strftime("%Y-%m-%d %H:%M:%S") ret.append(r) return ret def select_all_epg_ch(self): db = self.connect_db() dbexe = db[1].execute("\ - SELECT bctype,ontv,chtxt,ch,csch,updatetime \ + SELECT bctype,chtxt,ch,csch,updatetime \ FROM epg_ch \ ") ret = [] @@ -187,7 +176,7 @@ class DB_MySQL: self.close_db(db) for dl in dls: r = list(dl) - r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S") + r[4] = r[4].strftime("%Y-%m-%d %H:%M:%S") ret.append(r) return ret def set_new_status(self,dhour): @@ -248,14 +237,14 @@ class DB_MySQL: (status, bctype)\ ) self.close_db(db) - def update_chname_by_ontv_epg_ch(self,ontv,chname): + def update_chname_by_chtxt_epg_ch(self,chtxt,chname): db = self.connect_db() db[1].execute("\ UPDATE epg_ch \ SET \ chname=%s \ - WHERE ontv = %s", \ - (chname, ontv)\ + WHERE chtxt = %s", \ + (chname, chtxt)\ ) self.close_db(db) def add_auto_proc_tmp(self,type,title,chtxt): @@ -270,8 +259,10 @@ class DB_MySQL: db = self.connect_db() try: db[1].execute('drop table auto_proc_tmp') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_proc_tmp drop (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + try: db[1].execute('\ CREATE TABLE auto_proc_tmp \ @@ -281,22 +272,28 @@ class DB_MySQL: chtxt VARCHAR(30),\ UNIQUE unibayeskey(title)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_proc_tmp (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) def update_auto_proc(self): db = self.connect_db() try: db[1].execute('INSERT INTO auto_proc SELECT * FROM auto_proc_tmp') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "update_auto_proc (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) def new_auto_proc(self): db = self.connect_db() try: db[1].execute('drop table auto_proc') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_proc drop (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + try: db[1].execute('\ CREATE TABLE auto_proc \ @@ -306,8 +303,10 @@ class DB_MySQL: chtxt VARCHAR(30),\ UNIQUE unibayeskey(title)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_proc (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) def add_auto_proc(self,type,title,chtxt): db = self.connect_db() @@ -321,8 +320,9 @@ class DB_MySQL: db = self.connect_db() try: db[1].execute('drop table in_settings') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "drop_in_settings (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def new_in_settings(self): db = self.connect_db() @@ -336,8 +336,10 @@ class DB_MySQL: auto_del_tmp TINYINT\ )') db[1].execute("INSERT IGNORE into in_settings VALUE (0,0,\"H\",1)") - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_in_settings (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) def select_all_in_settings(self): db = self.connect_db() @@ -395,8 +397,10 @@ class DB_MySQL: category VARCHAR(100),\ UNIQUE uni (chtxt,title,btime,category)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_in_timeline_log (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) + self.close_db(db) def select_chtxt_by_title_timeline_log(self,title): db = self.connect_db() @@ -422,13 +426,13 @@ class DB_MySQL: (type, chtxt, title, btime, etime, deltatime, deltaday, opt ,counter)) ##db.commit() self.close_db(db) - def update_epg_timeline(self,type,chtxt,title,btime,epgbtime,epgetime,epgtitle,epgext): + def update_epg_timeline(self,type,chtxt,title,btime,epgbtime,epgetime,epgtitle,epgexp): db = self.connect_db() db[1].execute('\ UPDATE timeline \ - SET epgbtime=%s,epgetime=%s,epgtitle=%s,epgext=%s \ + SET epgbtime=%s,epgetime=%s,epgtitle=%s,epgexp=%s \ WHERE type=%s AND chtxt=%s AND title=%s AND btime=%s ', \ - (epgbtime,epgetime,epgtitle,epgext,type, chtxt, title, btime)) + (epgbtime,epgetime,epgtitle,epgexp,type, chtxt, title, btime)) ##db.commit() self.close_db(db) def update_status_change_timeline(self,type,chtxt,title,btime,epgchange): @@ -690,10 +694,13 @@ class DB_MySQL: (\ id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\ keyword VARCHAR(200),\ + auto TINYINT DEFAULT 0,\ + opt VARCHAR(20),\ UNIQUE unijbk (keyword)\ )") - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_in_auto_jbk_key (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def add_in_auto_jbk_key(self,key): db = self.connect_db() @@ -707,7 +714,7 @@ class DB_MySQL: def select_all_in_auto_jbk_key(self): db = self.connect_db() dbexe = db[1].execute("\ - SELECT keyword \ + SELECT keyword,auto,opt \ FROM in_auto_jbk_key \ ") ret = [] @@ -719,8 +726,9 @@ class DB_MySQL: db = self.connect_db() try: db[1].execute('drop table in_status') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "drop_in_status (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def new_in_status(self): db = self.connect_db() @@ -735,9 +743,10 @@ class DB_MySQL: installed TINYINT DEFAULT 0,\ version TINYINT\ )") - db[1].execute("INSERT IGNORE into in_status VALUE (0,0,0,0,0)") - except: - "" + db[1].execute("INSERT IGNORE into in_status VALUE (0,0,0,0,0,0)") + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_in_status (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def select_all_in_status(self): db = self.connect_db() @@ -772,8 +781,9 @@ class DB_MySQL: for dl in dls: r = list(dl) version=int(str(r[0])) - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "select_version_in_status (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) return version def change_version_in_status(self,version): db = self.connect_db() @@ -839,6 +849,14 @@ class DB_MySQL: db[1].execute("\ UPDATE in_status SET installed=1") self.close_db(db) + def change_chscaned_in_status(self): + """ + installedを設定する + """ + db = self.connect_db() + db[1].execute("\ + UPDATE in_status SET installed=2") + self.close_db(db) def new_epg_timeline(self, bctype): db = self.connect_db() try: @@ -846,8 +864,9 @@ class DB_MySQL: DELETE FROM epg_timeline \ WHERE bctype = %s", \ (bctype,)) - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_epg_timeline delete (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) try: db[1].execute("\ CREATE TABLE epg_timeline \ @@ -862,8 +881,9 @@ class DB_MySQL: category VARCHAR(100),\ UNIQUE unitv(bctype,channel,start,stop,title)\ )") - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_epg_timeline (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) #db.commit() self.close_db(db) def add_epg_timeline(self, bctype, channel, start, stop, title, desc,longdesc, category): @@ -892,7 +912,7 @@ class DB_MySQL: epg_ch.chtxt,title,start,stop,exp,longexp,category \ FROM epg_timeline \ INNER JOIN epg_ch \ - WHERE epg_ch.ontv=epg_timeline.channel \ + WHERE epg_ch.chtxt=epg_timeline.channel \ AND \ start >= %s \ AND \ @@ -912,7 +932,7 @@ class DB_MySQL: epg_ch.chtxt,title,start,stop,exp,longexp,category \ FROM epg_timeline \ INNER JOIN epg_ch \ - WHERE epg_ch.ontv=epg_timeline.channel \ + WHERE epg_ch.chtxt=epg_timeline.channel \ AND \ start >= %s \ AND \ @@ -943,8 +963,9 @@ class DB_MySQL: UNIQUE unibayeskey(keychar,chtxt)\ )') db[1].execute('CREATE INDEX keycharindex ON in_auto_bayes_key(keychar)') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_in_auto_bayes_key (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def add_in_auto_bayes_key(self,key,chtxt,ratio_rec,ratio_all): @@ -1004,8 +1025,9 @@ class DB_MySQL: VALUES (%s,%s,%s,%s)\ ON DUPLICATE KEY UPDATE \ ratio_all=CONVERT((ratio_all*%s+%s)/%s,DECIMAL(32,14))",retl) - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "change_multi_ratio_all_in_auto_bayes_key (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def change_ratio_rec_reduce_in_auto_bayes_key(self,chtxt,beforenum,newnum): beforenum=str(beforenum) @@ -1035,8 +1057,9 @@ class DB_MySQL: VALUES (%s,%s,%s,%s)\ ON DUPLICATE KEY UPDATE \ ratio_rec=CONVERT((ratio_rec*%s+%s)/%s,DECIMAL(32,14))",retl) - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "change_multi_ratio_rec_in_auto_bayes_key (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) self.close_db(db) def select_by_key_in_auto_bayes_key(self,key,chtxt): db = self.connect_db() @@ -1066,8 +1089,9 @@ class DB_MySQL: etime DATETIME,\ UNIQUE uni (chtxt,title,btime,etime)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_timeline_keyword (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) def add_auto_timeline_keyword(self,chtxt="", title="", btime="", etime=""): db = self.connect_db() db[1].execute('\ @@ -1098,8 +1122,9 @@ class DB_MySQL: point INT,\ UNIQUE uni (chtxt,title,btime,etime)\ )') - except: - "" + except Exception, inst: + if not ((type(inst)==MySQLdb.ProgrammingError and inst[0]==1007)or(type(inst)==MySQLdb.OperationError and inst[0]==1050)): + recdblist.Commonlogex("Error", "new_auto_timeline_bayes (dbMySQL.py)", str(type(inst)),str(inst)+traceback.format_exc(),log_level=200) def add_auto_timeline_bayes(self,chtxt="", title="", btime="", etime="",point=""): db = self.connect_db() db[1].execute('\ @@ -1142,7 +1167,31 @@ class DB_MySQL: self.drop_in_settings() self.new_in_settings() db[1].execute("\ - ALTER TABLE timeline ADD epgext VARCHAR(200)") + ALTER TABLE timeline ADD epgexp VARCHAR(200)") self.close_db(db) self.change_version_in_status("95") - epgext \ No newline at end of file + def update_db_95to96(self): + db = self.connect_db() + self.drop_in_settings() + self.new_in_settings() + self.close_db(db) + self.change_version_in_status("96") + def update_db_96to98(self): + db = self.connect_db() + self.drop_in_settings() + self.new_in_settings() + self.close_db(db) + self.change_version_in_status("98") + def update_db_98to99(self): + db = self.connect_db() + self.drop_in_settings() + self.new_in_settings() + db[1].execute("\ + ALTER TABLE epg_ch DEL ontv") + db[1].execute("\ + ALTER TABLE in_auto_jbk_key ADD auto TINYINT DEFAULT 0") + db[1].execute("\ + ALTER TABLE in_auto_jbk_key ADD opt VARCHAR(20)") + self.close_db(db) + self.change_installed_in_status()#チャンネルスキャンをさせる + self.change_version_in_status("99") \ No newline at end of file