+ def select_by_name_time_timeline(self,title,btime,btime2):
+ db = self.connect_db()
+ recdatum = []
+ #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
+ dbr = db[1].execute("SELECT \
+ type, chtxt, title, btime, etime, deltatime ,deltaday ,opt ,epgbtime ,epgetime ,epgtitle ,epgduplicate ,epgchange ,counter\
+ FROM timeline \
+ WHERE btime > %s AND \
+ btime < %s AND title = %s",(btime,btime2,title))
+ dbl = db[1].fetchall()
+ self.close_db(db)
+ #recdblist.printutf8(dbl)
+ if dbr > 0:
+ recdatum = self.getdic_timeline(dbl)
+ return recdatum
+ def select_bytime_all_timeline(self,btime,etime):
+ db = self.connect_db()
+ recdatum = []
+ #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
+ dbr = db[1].execute("SELECT \
+ type, chtxt, title, btime, etime, deltatime ,deltaday ,opt ,epgbtime ,epgetime ,epgtitle ,epgduplicate ,epgchange ,counter\
+ FROM timeline \
+ WHERE btime >= %s AND \
+ etime <= %s",(btime,etime))
+ dbl = db[1].fetchall()
+ self.close_db(db)
+ #recdblist.printutf8(dbl)
+ if dbr > 0:
+ recdatum = self.getdic_timeline(dbl)
+ return recdatum
+ def select_byepgtime_all_timeline(self,epgbtime,epgetime):
+ db = self.connect_db()
+ recdatum = []
+ #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
+ dbr = db[1].execute("SELECT \
+ type, chtxt, title, btime, etime, deltatime ,deltaday ,opt ,epgbtime ,epgetime ,epgtitle ,epgduplicate ,epgchange ,counter\
+ FROM timeline \
+ WHERE epgbtime >= %s AND \
+ epgetime <= %s",(epgbtime,epgetime))
+ dbl = db[1].fetchall()
+ self.close_db(db)
+ #recdblist.printutf8(dbl)
+ if dbr > 0:
+ recdatum=self.getdic_timeline(dbl)
+ return recdatum
+ def select_byepgtime_over_timeline(self,epgbtime,epgetime):
+ db = self.connect_db()
+ recdatum = []
+ #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
+ dbr = db[1].execute("SELECT \
+ type, chtxt, title, btime, etime, deltatime ,deltaday ,opt ,epgbtime ,epgetime ,epgtitle ,epgduplicate ,epgchange ,counter\
+ FROM timeline \
+ WHERE (NOT(( timeline.epgetime <= %s )OR( timeline.epgbtime >= %s )))"\
+ ,(epgbtime,epgetime))
+ dbl = db[1].fetchall()
+ self.close_db(db)
+ #recdblist.printutf8(dbl)
+ if dbr > 0:
+ recdatum=self.getdic_timeline(dbl)
+ return recdatum
+ def count_schedule_timeline(self, btime, etime):
+ """
+ count rectasknum
+ return [te num,bs/cs num]
+ """
+ db = self.connect_db()
+ dbexe = "SELECT type,epg_ch.bctype,timeline.chtxt,title FROM timeline INNER JOIN epg_ch ON timeline.chtxt=epg_ch.chtxt"
+ dbexe = dbexe + " WHERE ((NOT(( timeline.etime <= %s )OR( timeline.btime >= %s ))) OR ((timeline.btime = %s) AND (timeline.etime = %s) ) )"
+ Srec = 0
+ Trec = 0
+ db[1].execute(dbexe, (btime, etime,btime,etime))
+ dbl=db[1].fetchall()
+ for typet, bctypet, chtxtt, titlet in dbl:
+ if (typet == recdblist.REC_RESERVE) or (typet == recdblist.REC_FINAL_RESERVE) or (typet == recdblist.REC_KEYWORD) or (typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS):
+ if bctypet.find("cs") > -1:
+ Srec = Srec + 1
+ elif bctypet.find("bs") > -1:
+ Srec = Srec + 1
+ elif bctypet.find("te") > -1:
+ Trec = Trec + 1
+ self.close_db(db)
+ return [Trec, Srec]
+ def search_schedule_timeline(self,btime,etime):
+ """
+ count rectasknum
+ return [(type,bctype,chtxt,title,btime,etime)]
+ """
+ db = self.connect_db()
+ dbexe = "SELECT type,epg_ch.bctype,timeline.chtxt,title,timeline.btime,timeline.etime FROM timeline INNER JOIN epg_ch ON timeline.chtxt=epg_ch.chtxt"
+ dbexe = dbexe + " WHERE ((NOT(( timeline.etime <= %s )OR( timeline.btime >= %s ))) OR ((timeline.btime = %s) AND (timeline.etime = %s) ) )"
+ ret=[]
+ db[1].execute(dbexe, (btime, etime,btime,etime))
+ dbl=db[1].fetchall()
+ for typet, bctypet, chtxtt, titlet , btimet, etimet in dbl:
+ if (typet == recdblist.REC_RESERVE) or (typet == recdblist.REC_FINAL_RESERVE) or (typet == recdblist.REC_KEYWORD) or (typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS):
+ ret.append([typet,bctypet,chtxtt,titlet,btimet,etimet])
+ self.close_db(db)
+ return ret
+ def count_epgschedule_timeline(self, epgbtime, epgetime):
+ """
+ count rectasknum
+ return [te num,bs/cs num]
+ """
+ db = self.connect_db()
+ dbexe = "SELECT type,epg_ch.bctype,timeline.chtxt,title FROM timeline INNER JOIN epg_ch ON timeline.chtxt=epg_ch.chtxt"
+ dbexe = dbexe + " WHERE (NOT(( timeline.epgetime <= %s )OR( timeline.epgbtime >= %s )))"
+ Srec = 0
+ Trec = 0
+ db[1].execute(dbexe, (epgbtime, epgetime))
+ dbl=db[1].fetchall()
+ for typet, bctypet, chtxtt, titlet in dbl:
+ if (typet == recdblist.REC_RESERVE) or (typet == recdblist.REC_FINAL_RESERVE) or (typet == recdblist.REC_KEYWORD) or (typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS):
+ if bctypet.find("cs") > -1:
+ Srec = Srec + 1
+ elif bctypet.find("bs") > -1:
+ Srec = Srec + 1
+ elif bctypet.find("te") > -1:
+ Trec = Trec + 1
+ self.close_db(db)
+ return [Trec, Srec]
+ def search_epgschedule_timeline(self,epgbtime,epgetime):
+ """
+ count rectasknum
+ return [(type,bctype,chtxt,title,btime,etime)]
+ """
+ db = self.connect_db()
+ dbexe = "SELECT type,epg_ch.bctype,timeline.chtxt,title,timeline.btime,timeline.etime FROM timeline INNER JOIN epg_ch ON timeline.chtxt=epg_ch.chtxt"
+ dbexe = dbexe + " WHERE ((NOT(( timeline.epgetime <= %s )OR( timeline.epgbtime >= %s ))) OR ((timeline.epgbtime = %s) AND (timeline.epgetime = %s) ) )"
+ ret=[]
+ db[1].execute(dbexe, (epgbtime, epgetime,epgbtime,epgetime))
+ dbl=db[1].fetchall()
+ for typet, bctypet, chtxtt, titlet , btimet, etimet in dbl:
+ if (typet == recdblist.REC_RESERVE) or (typet == recdblist.REC_FINAL_RESERVE) or (typet == recdblist.REC_KEYWORD) or (typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS):
+ ret.append([typet,bctypet,chtxtt,titlet,btimet,etimet])
+ self.close_db(db)
+ return ret
+ def select_bytime_bychtxt_all_timeline(self,btime,etime,chtxt):
+ db = self.connect_db()
+ recdatum = []
+ #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
+ dbr = db[1].execute("SELECT \
+ type, chtxt, title, btime, etime, deltatime ,deltaday ,opt ,epgbtime ,epgetime ,epgtitle ,epgduplicate ,epgchange ,counter\
+ FROM timeline \
+ WHERE btime > %s AND \
+ etime < %s\
+ AND chtxt=%s ",(btime,etime,chtxt))
+ dbl = db[1].fetchall()
+ self.close_db(db)
+ #recdblist.printutf8(dbl)
+ if dbr > 0:
+ recdatum = self.getdic_timeline(dbl)
+ return recdatum
+ def getdic_timeline(self,timelinelists):
+ recdatum=[]
+ for typet, chtxt, title, btime, etime, deltatime, deltaday, opt ,epgbtimet , epgetimet ,epgtitlet ,epgduplicatet ,epgchanget ,countert in timelinelists:
+ ret = {}
+ ret['type'] = typet
+ ret['chtxt'] = chtxt
+ ret['title'] = title
+ btime = btime.strftime("%Y-%m-%d %H:%M:%S")
+ etime = etime.strftime("%Y-%m-%d %H:%M:%S")
+ ret['btime'] = btime
+ ret['etime'] = etime
+ ret['opt'] = opt
+ try:
+ ret['epgbtime'] = epgbtimet.strftime("%Y-%m-%d %H:%M:%S")
+ ret['epgetime'] = epgetimet.strftime("%Y-%m-%d %H:%M:%S")
+ except:
+ ret['epgbtime'] = "2010-01-01 00:00:00"
+ ret['epgetime'] = "2010-01-01 00:00:00"
+ ret['epgtitle'] = epgtitlet
+ ret['epgduplicate'] = epgduplicatet
+ ret['epgchange'] = epgchanget
+ if deltatime == None or deltatime == "":
+ deltatime = "3"
+ if deltaday == None or deltaday == "":
+ deltaday = "7"
+ if typet == recdblist.REC_KEYWORD:
+ ret['deltatime'] = deltatime
+ elif typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS:
+ ret['deltatime'] = deltatime
+ ret['deltaday'] = deltaday
+ try:
+ ret['counter'] = int(countert)
+ except:
+ ret['counter']=-1
+ recdatum.append(ret)
+ return recdatum
+ def delete_old_timeline(self, dhour):