From c9bae6d607333ed1cc02dedcc007f6efb8f2f015 Mon Sep 17 00:00:00 2001 From: gn64_jp Date: Mon, 14 Sep 2009 08:36:19 +0000 Subject: [PATCH] change status logging in DB. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@154 4e526526-5e11-4fc0-8910-f8fd03428081 --- rec10/trunk/src/dbMySQL.py | 72 ++++++++++++++++++++++++++++++++++++++++++++++ rec10/trunk/src/rec10d.py | 1 + rec10/trunk/src/status | 4 --- rec10/trunk/src/status.py | 55 +++++++++++------------------------ rec10/trunk/src/tester.py | 10 ++++++- rec10/trunk/src/timerec.py | 2 +- rec10/trunk/src/tv2avi.py | 12 +++++--- rec10/trunk/src/tv2ts.py | 25 ++++++++++------ 8 files changed, 123 insertions(+), 58 deletions(-) delete mode 100644 rec10/trunk/src/status diff --git a/rec10/trunk/src/dbMySQL.py b/rec10/trunk/src/dbMySQL.py index 394ee19..bf7fb5a 100644 --- a/rec10/trunk/src/dbMySQL.py +++ b/rec10/trunk/src/dbMySQL.py @@ -313,6 +313,78 @@ class DB_MySQL: btime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR )") #db.commit() self.close_db(db) + def new_status(self): + db = self.connect_db() + try: + db[1].execute("\ + CREATE TABLE status \ + (\ + ts2avi TINYINT DEFAULT 0,\ + terec TINYINT DEFAULT 0,\ + bscsrec TINYINT DEFAULT 0,\ + b252ts TINYINT DEFAULT 0\ + )") + db[1].execute("INSERT IGNORE into status VALUE (0,0,0,0)") + except: + "" + + self.close_db(db) + def select_all_status(self): + db = self.connect_db() + dbexe = db[1].execute("\ + SELECT ts2avi,terec,bscsrec,b252ts \ + FROM status \ + ") + ret = [] + dls = [] + if dbexe > 0: + dls = db[1].fetchall() + self.close_db(db) + for dl in dls: + r = list(dl) + r[0]=str(r[0]) + r[1]=str(r[1]) + r[2]=str(r[2]) + r[3]=str(r[3]) + ret.append(r) + return ret + self.close_db(db) + def change_ts2avi_status(self,i): + """ + statuをiだけ増減する + iはint + """ + db = self.connect_db() + db[1].execute("\ + UPDATE status SET ts2avi=ts2avi+%s",i) + self.close_db(db) + def change_terec_status(self,i): + """ + statuをiだけ増減する + iはint + """ + db = self.connect_db() + db[1].execute("\ + UPDATE status SET terec=terec+%s",i) + self.close_db(db) + def change_bscsrec_status(self,i): + """ + statuをiだけ増減する + iはint + """ + db = self.connect_db() + db[1].execute("\ + UPDATE status SET bscsrec=bscsrec+%s",i) + self.close_db(db) + def change_b252ts_status(self,i): + """ + statuをiだけ増減する + iはint + """ + db = self.connect_db() + db[1].execute("\ + UPDATE status SET b252ts=b252ts+%s",i) + self.close_db(db) def new_tv(self, bctype): db = self.connect_db() try: diff --git a/rec10/trunk/src/rec10d.py b/rec10/trunk/src/rec10d.py index d68f6da..b3be636 100644 --- a/rec10/trunk/src/rec10d.py +++ b/rec10/trunk/src/rec10d.py @@ -18,6 +18,7 @@ if db == "MySQL": dbpwd = configreader.getdbpath("mysql_passwd") dbport = int(configreader.getdbpath("mysql_port")) rec10db = dbMySQL.DB_MySQL(dbname=dbn, host=dbh, user=dbu, passwd=dbpwd, port=dbport) + rec10db.new_status() else: rec10db = dbSQLite.DB_SQLite(path + "ch.db") if __name__ == "__main__": diff --git a/rec10/trunk/src/status b/rec10/trunk/src/status deleted file mode 100644 index 078ffc8..0000000 --- a/rec10/trunk/src/status +++ /dev/null @@ -1,4 +0,0 @@ -[tasknum] -terec=0 -bscsrec=0 -ts2avi=0 diff --git a/rec10/trunk/src/status.py b/rec10/trunk/src/status.py index d22f08a..ac26c00 100755 --- a/rec10/trunk/src/status.py +++ b/rec10/trunk/src/status.py @@ -4,51 +4,28 @@ # Copyright (C) 2009 Yukikaze import ConfigParser import os +import rec10d path = os.path.dirname(os.path.abspath(__file__)) + "/" +def changeEncoding(i): + """ + iはint 増減 + """ + rec10d.rec10db.change_ts2avi_status(i) +def changeTERecording(i): + rec10d.rec10db.change_terec_status(i) +def changeBSCSRecording(i): + rec10d.rec10db.change_bscsrec_status(i) +def changeB25Decoding(i): + rec10d.rec10db.change_b252ts_status(i) def getEncoding(): """ エンコードしている数を帰すint型 """ - return getStatusNum("ts2avi") -def setEncoding(tasknum): - setData('ts2avi', tasknum) + return int(rec10d.rec10db.select_all_status()[0][0]) def getTERecording(): - return getStatusNum('terec') -def getStatusDate(): - f = open(path + 'status') - lines = f.readlines() # 1行毎にファイル終端まで全て読む(改行文字も含まれる) - f.close() - return lines -def getStatusNum(datastr): - ini = ConfigParser.SafeConfigParser() - ini.read(path + 'status') - t = 0 - try: - t = int(ini.get('tasknum', datastr)) - except: - "" - if t < 0: - t = 0 - return t -def setTERecording(tasknum): - setData('terec', tasknum) + return int(rec10d.rec10db.select_all_status()[0][1]) def getBSCSRecording(): - return getStatusNum("bscsrec") -def setBSCSRecording(tasknum): - setData('bscsrec', tasknum) -def setData(datastr, tasknum): - ini = ConfigParser.SafeConfigParser() - ini.read(path + 'status') - ini.set('tasknum', datastr, str(tasknum)) - f = open(path + 'status', 'w') - ini.write(f) - f.close + return int(rec10d.rec10db.select_all_status()[0][2]) def getB25Decoding(): - return getStatusNum("b252ts") -def setB25Decoding(tasknum): - setData('b252ts', tasknum) -def getEPGUpdating(): - return getStatusNum("epgupdate") -def setEPGUpdating(bool): - setData('epgupdate', bool) + return int(rec10d.rec10db.select_all_status()[0][3]) diff --git a/rec10/trunk/src/tester.py b/rec10/trunk/src/tester.py index 49507b3..cf6628b 100644 --- a/rec10/trunk/src/tester.py +++ b/rec10/trunk/src/tester.py @@ -8,6 +8,7 @@ import datetime import os import time +import status import chdb import checker import configreader @@ -39,4 +40,11 @@ if __name__ == "__main__": #recdb.rec_reckey(recdb.REC_FINAL_RESERVE,u"テスト", "hisch", btime, etime, "Sd") #os.system("echo $PATH") #tv2avi.dualaudio2sep(dualtest+"/testd.ts", dualtest+"/new-test/new-delay167sa.avi","167") - ts2x264(dualtest + "/new-test/new-delay167sa.avi", dualtest + "/new-test/new-delay167.avi", "SX") \ No newline at end of file + #ts2x264(dualtest + "/new-test/new-delay167sa.avi", dualtest + "/new-test/new-delay167.avi", "SX") + #status.setB25Decoding(2) + #rec10d.rec10db.new_status() + #rec10d.rec10db.change_epgupdate_status(2) + #print rec10d.rec10db.select_all_status() + #rec10d.rec10db.change_epgupdate_status(-1) + #print rec10d.rec10db.select_all_status() + "" \ No newline at end of file diff --git a/rec10/trunk/src/timerec.py b/rec10/trunk/src/timerec.py index 0b93f05..41627e9 100644 --- a/rec10/trunk/src/timerec.py +++ b/rec10/trunk/src/timerec.py @@ -29,7 +29,7 @@ def task(): inum = recdb.countRecNow_minutes("10") #inum=recdb.countRecNow("1") print "番組表更新処理"+ datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - print "inum:" + str(inum) + "bscsrec:" + str(status.getBSCSRecording()) + "terec:" + str(status.getTERecording()) + " epg:" + str(status.getEPGUpdating()) + print "inum:" + str(inum) + "bscsrec:" + str(status.getBSCSRecording()) + "terec:" + str(status.getTERecording()) #if inum+status.getBSCSRecording()+status.getTERecording() < 2: update = chdb.update() diff --git a/rec10/trunk/src/tv2avi.py b/rec10/trunk/src/tv2avi.py index 4a4ecc1..bb705db 100644 --- a/rec10/trunk/src/tv2avi.py +++ b/rec10/trunk/src/tv2avi.py @@ -44,7 +44,8 @@ def b252ts(pout, chtxt, btime, etime, opt): """ poutはタイトル(自動的にtitle.b25 title.tsと名前がつきます。) """ - status.setB25Decoding(status.getB25Decoding() + 1) + #status.setB25Decoding(status.getB25Decoding() + 1) + status.changeB25Decoding(1) try: tv2ts.b252ts(pout + ".ts", chdb.chtxtsearch(chtxt)['ch'], chdb.chtxtsearch(chtxt)['csch']) tsout = pout @@ -83,7 +84,8 @@ def b252ts(pout, chtxt, btime, etime, opt): aviin = tsout + "sa.avi" except: "" - status.setB25Decoding(status.getB25Decoding()-1) + #status.setB25Decoding(status.getB25Decoding()-1) + status.changeB25Decoding(-1) def timetv2avi(pout, chtxt, btime, etime, opt): bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S") et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S") @@ -133,7 +135,8 @@ def timetv2avi(pout, chtxt, btime, etime, opt): dualaudiots2avi(aviin, tsout + "sa.avi") aviin = tsout + "sa.avi" def ts2avi(pin, pout, opt): - status.setEncoding(status.getEncoding() + 1) + status.changeEncoding(1) + #status.setEncoding(status.getEncoding() + 1) if re.search("x", opt): try: ts2xvid.ts2xvid(pin, pout, opt) @@ -144,7 +147,8 @@ def ts2avi(pin, pout, opt): ts2x264.ts2x264(pin, pout, opt) except: "" - status.setEncoding(status.getEncoding()-1) + status.changeEncoding(-1) + #status.setEncoding(status.getEncoding()-1) def tv2avi(pout, chtxt, btime, etime, opt): bt = datetime.datetime.strptime(btime, "%Y-%m-%d %H:%M:%S") et = datetime.datetime.strptime(etime, "%Y-%m-%d %H:%M:%S") diff --git a/rec10/trunk/src/tv2ts.py b/rec10/trunk/src/tv2ts.py index d9df013..a8c2624 100644 --- a/rec10/trunk/src/tv2ts.py +++ b/rec10/trunk/src/tv2ts.py @@ -13,15 +13,18 @@ mypath = str(os.path.dirname(os.path.abspath(__file__))) + "/" def tv2tsmix(pout, ch, time): if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.setBSCSRecording(status.getBSCSRecording() + 1) + status.changeBSCSRecording(1) + #status.setBSCSRecording(status.getBSCSRecording() + 1) else: - status.setTERecording(status.getTERecording() + 1) + #status.setTERecording(status.getTERecording() + 1) + status.changeTERecording(1) tv2b25ts(pout + ".b25", ch, time) if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.setBSCSRecording(status.getBSCSRecording()-1) + #status.setBSCSRecording(status.getBSCSRecording()-1) + status.changeBSCSRecording(-1) else: - status.setTERecording(status.getTERecording()-1) - + #status.setTERecording(status.getTERecording()-1) + status.changeTERecording(-1) b252tsmix(pout + ".b25", pout) #os.remove(pout+".b25") if os.access(pout, os.F_OK): @@ -34,14 +37,18 @@ def tv2ts(pout, ch, csch, time): tempt = os.path.split(pout) path = tempt[0] if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.setBSCSRecording(status.getBSCSRecording() + 1) + status.changeBSCSRecording(1) + #status.setBSCSRecording(status.getBSCSRecording() + 1) else: - status.setTERecording(status.getTERecording() + 1) + #status.setTERecording(status.getTERecording() + 1) + status.changeTERecording(1) tv2b25ts(pout + ".b25", ch, time) if len(ch) > 2:#BS/CSは100とかCS??とかなので3文字以上 - status.setBSCSRecording(status.getBSCSRecording()-1) + #status.setBSCSRecording(status.getBSCSRecording()-1) + status.changeBSCSRecording(-1) else: - status.setTERecording(status.getTERecording()-1) + #status.setTERecording(status.getTERecording()-1) + status.changeTERecording(-1) b252tsmix(pout + ".b25", pout + ".tsmix") tsmix2ts(pout + ".tsmix", pout, csch) #os.remove(path+"/"+t+"."+temp[1]) -- 2.11.0