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:
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__":
+++ /dev/null
-[tasknum]
-terec=0
-bscsrec=0
-ts2avi=0
# 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])
import os
import time
+import status
import chdb
import checker
import configreader
#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
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()
"""
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
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")
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)
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")
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):
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])