3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
18 recpath=configreader.getpath('recpath')
19 path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
26 tasks=recdb.getnow("2")
28 inum=recdb.countRecNow("1")
30 print "inum:"+str(inum)+"bscsrec:"+str(status.getBSCSRecording())+"terec:"+str(status.getTERecording())+" epg:"+str(status.getEPGUpdating())
32 if inum+status.getBSCSRecording()+status.getTERecording() < 2:
43 rec10d.rec10db.update_status_by_bctype_chdata(bctype,"0")
44 epgdb.updatebc(bctype)
46 rec10d.rec10db.update_by_bctype_chdata(bctype)
51 """if len(update)>0 and status.getEPGUpdating()==0:
52 #status.setEPGUpdating(1)
55 status.setEPGUpdating(1)
59 else:#子プロセスの場合 アップデートを行って終了
64 epgdb.updatebc(bctype)
70 status.setEPGUpdating(0)
84 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
87 bt=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
90 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
93 et=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
98 tnow=datetime.datetime.now()
100 dt=dtt.days*24*60*60+dtt.seconds
102 if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt
105 if (dt<58*60 and dt>20*60):
109 else:#子プロセスの場合 アップデートを行って終了
110 cht=chdb.chtxtsearch(chtxt)['bctype']
111 if cht.find('te')!=-1:
115 bctypetemp=chdb.chtxtsearch(chtxt)['bctype']
117 gettaskbscs=recdb.countRecNow_minutes_BSCS("10")
118 getnowbscs=status.getBSCSRecording()
119 bscs=getnowbscs+gettaskbscs
120 if bscs <2 and status.getEPGUpdating()!=1:
121 print "now(bscs):"+str(getnowbscs)+" task(bscs):"+str(gettaskbscs)
122 status.setEPGUpdating(1)
123 rec10d.rec10db.update_status_by_bctype_chdata(bctype,"0")
124 epgdb.updatebc(bctypetemp)
127 status.setEPGUpdating(0)
131 gettaskte=recdb.countRecNow_minutes_TE("10")
132 getnowte=status.getTERecording()
133 te=getnowte+gettaskte
134 if te <2 and status.getEPGUpdating()!=1:
135 print "now(te):"+str(getnowte)+" task(te):"+str(gettaskte)
136 status.setEPGUpdating(1)
137 epgdb.updatebc(bctypetemp)
139 status.setEPGUpdating(0)
144 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,"5",chtxt)
149 bt=datetime.datetime.strptime(btimen,"%Y-%m-%d %H:%M:%S")
150 et=datetime.datetime.strptime(etimen,"%Y-%m-%d %H:%M:%S")
151 btimen=bt.strftime("%Y-%m-%d %H:%M:%S")
152 etimen=et.strftime("%Y-%m-%d %H:%M:%S")
155 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
156 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, titlen, chtxtn, btimen, etimen, opt)
157 except Exception,inst:
161 print "nothing match"
167 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
168 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt)
169 except Exception,inst:
172 elif task["type"]==recdb.REC_KEYWORD:#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt
173 deltatime=task['deltatime']
175 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,deltatime,chtxt)
181 bt=datetime.datetime.strptime(btimet,"%Y-%m-%d %H:%M:%S")
182 et=datetime.datetime.strptime(etimet,"%Y-%m-%d %H:%M:%S")
183 btimet=bt.strftime("%Y-%m-%d %H:%M:%S")
184 etimet=et.strftime("%Y-%m-%d %H:%M:%S")
186 recdb.del_reckey(recdb.REC_KEYWORD, title, chtxt, btime)
187 recdb.rec_reckey(recdb.REC_RESERVE, titlet, chtxtt, btimet, etimet, opt)
188 except Exception,inst:
192 print "nothing match"
193 elif task["type"]==recdb.REC_KEYWORD_EVERY_SOME_DAYS:#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday
194 deltatime=task['deltatime']
195 deltaday=task['deltaday']
196 dd=datetime.timedelta(days=int(deltaday))
198 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
201 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
202 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
203 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
205 recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt)
206 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
209 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
210 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
211 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
213 elif task["type"]==recdb.REC_FINAL_RESERVE:#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt
216 recdb.del_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime)
217 recdb.rec_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime, etime, opt)
224 tv2avi.timetv2b25(recpath+"/"+title+".avi", chtxt, btime, etime, opt)
225 recdb.del_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime)
226 tnow=datetime.datetime.now()
227 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
228 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
230 bt=tnow+datetime.timedelta(seconds=600)
231 et=et+dt+datetime.timedelta(seconds=600)
232 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
233 etime=et.strftime("%Y-%m-%d %H:%M:%S")
234 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
236 elif task["type"]==recdb.REC_TS_DECODE_QUE:
238 if status.getB25Decoding()<2:
243 pin=recpath+"/"+title
244 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
245 recdb.rec_reckey(recdb.REC_TS_DECODING, title, chtxt, btime, etime, opt)
246 tv2avi.b252ts(pin, chtxt, btime, etime, opt)
247 recdb.del_reckey(recdb.REC_TS_DECODING,title,chtxt,btime)
248 if not os.access(recpath+"/"+title+".ts", os.F_OK):
249 recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime)
250 recdb.rec_reckey(recdb.REC_MISS_DECODE, title, chtxt, btime, etime, opt)
251 tnow=datetime.datetime.now()
252 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
253 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
255 bt=tnow+datetime.timedelta(seconds=600)
256 et=et+dt+datetime.timedelta(seconds=600)
257 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
258 etime=et.strftime("%Y-%m-%d %H:%M:%S")
259 recdb.rec_reckey(recdb.REC_ENCODE_QUE, title, chtxt, btime, etime, opt)
260 print "b25check "+recpath+"/"+title+".ts.b25 "+recpath+"/"+title+".ts"
261 print checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")
262 if checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")==1:
263 os.remove(recpath+"/"+title+".ts.b25")
266 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
267 bt=bt+datetime.timedelta(seconds=600)
268 et=et+datetime.timedelta(seconds=600)
269 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
270 etime=et.strftime("%Y-%m-%d %H:%M:%S")
271 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
272 elif task["type"]==recdb.REC_ENCODE_QUE:
274 if status.getEncoding()<int(configreader.getenv("enc_max")):
279 pin=recpath+"/"+title+".ts"
280 if re.search("d",opt):
281 pin=recpath+"/"+title+"sa.avi"
282 if re.search("5",opt):
283 pin=recpath+"/"+title+"sa.avi"
284 pout=recpath+"/"+title+".avi"
286 #print pin+":"+pout+":"+opt
287 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
288 recdb.rec_reckey(recdb.REC_ENCODE_LOCAL, title, chtxt, btime, etime, opt)
289 tv2avi.ts2avi(pin, pout, opt)
290 recdb.del_reckey(recdb.REC_ENCODE_LOCAL,title,chtxt,btime)
291 recdb.rec_reckey(recdb.REC_FIN_LOCAL, title, chtxt, btime, etime, opt)
294 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
295 bt=bt+datetime.timedelta(seconds=600)
296 et=et+datetime.timedelta(seconds=600)
297 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
298 etime=et.strftime("%Y-%m-%d %H:%M:%S")
299 recdb.rec_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime,etime,opt)