3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
17 recpath=configreader.getpath('recpath')
18 tmppath=configreader.getpath('temppath')
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())
31 if inum+status.getBSCSRecording()+status.getTERecording() < 2:
35 if len(update)>0 and status.getEPGUpdating()==0:
36 status.setEPGUpdating(1)
39 status.setEPGUpdating(1)
43 else:#子プロセスの場合 アップデートを行って終了
48 epgdb.updatebc(bctype)
54 status.setEPGUpdating(0)
68 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
71 bt=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
74 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
77 et=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
82 tnow=datetime.datetime.now()
84 dt=dtt.days*24*60*60+dtt.seconds
85 if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt
88 if (dt<58*60 and dt>20*60):
92 else:#子プロセスの場合 アップデートを行って終了
93 cht=chdb.chtxtsearch(chtxt)['bctype']
94 if cht.find('te')!=-1:
99 gettaskbscs=recdb.countRecNow_minutes_BSCS("10")
100 getnowbscs=status.getBSCSRecording()
101 bscs=getnowbscs+gettaskbscs
103 print "now(bscs):"+str(getnowbscs)+" task(bscs):"+str(gettaskbscs)
104 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
110 gettaskte=recdb.countRecNow_minutes_TE("10")
111 getnowte=status.getTERecording()
112 bscs=getnowte+gettaskte
113 if recdb.countRecNow_minutes_TE("10")+status.getTERecording() <2:
114 print "now(te):"+str(getnowte)+" task(te):"+str(gettaskte)
115 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
121 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,"5",chtxt)
126 bt=datetime.datetime.strptime(btimen,"%Y-%m-%d %H:%M:%S")
127 et=datetime.datetime.strptime(etimen,"%Y-%m-%d %H:%M:%S")
128 btimen=bt.strftime("%Y-%m-%d %H:%M:%S")
129 etimen=et.strftime("%Y-%m-%d %H:%M:%S")
132 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
133 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, titlen, chtxtn, btimen, etimen, opt)
134 except Exception,inst:
138 print "nothing match"
144 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
145 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt)
146 except Exception,inst:
149 elif task["type"]==recdb.REC_KEYWORD:#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt
150 deltatime=task['deltatime']
152 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,deltatime,chtxt)
158 bt=datetime.datetime.strptime(btimet,"%Y-%m-%d %H:%M:%S")
159 et=datetime.datetime.strptime(etimet,"%Y-%m-%d %H:%M:%S")
160 btimet=bt.strftime("%Y-%m-%d %H:%M:%S")
161 etimet=et.strftime("%Y-%m-%d %H:%M:%S")
163 recdb.del_reckey(recdb.REC_KEYWORD, title, chtxt, btime)
164 recdb.rec_reckey(recdb.REC_RESERVE, titlet, chtxtt, btimet, etimet, opt)
165 except Exception,inst:
169 print "nothing match"
170 elif task["type"]==recdb.REC_KEYWORD_EVERY_SOME_DAYS:#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday
171 deltatime=task['deltatime']
172 deltaday=task['deltaday']
173 dd=datetime.timedelta(days=int(deltaday))
175 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
178 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
179 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
180 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
182 recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt)
183 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
186 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
187 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
188 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
190 elif task["type"]==recdb.REC_FINAL_RESERVE:#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt
193 recdb.del_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime)
194 recdb.rec_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime, etime, opt)
201 tv2avi.timetv2b25(recpath+"/"+title+".avi", chtxt, btime, etime, opt)
202 recdb.del_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime)
203 tnow=datetime.datetime.now()
204 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
205 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
207 bt=tnow+datetime.timedelta(seconds=600)
208 et=et+dt+datetime.timedelta(seconds=600)
209 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
210 etime=et.strftime("%Y-%m-%d %H:%M:%S")
211 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
213 elif task["type"]==recdb.REC_TS_DECODE_QUE:
215 if status.getB25Decoding()<2:
220 pin=recpath+"/"+title
221 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
222 recdb.rec_reckey(recdb.REC_TS_DECODING, title, chtxt, btime, etime, opt)
223 tv2avi.b252ts(pin, chtxt, btime, etime, opt)
224 recdb.del_reckey(recdb.REC_TS_DECODING,title,chtxt,btime)
225 if not os.access(recpath+"/"+title+".ts", os.F_OK):
226 recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime)
227 recdb.rec_reckey(recdb.REC_MISS_DECODE, title, chtxt, btime, etime, opt)
228 tnow=datetime.datetime.now()
229 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
230 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
232 bt=tnow+datetime.timedelta(seconds=600)
233 et=et+dt+datetime.timedelta(seconds=600)
234 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
235 etime=et.strftime("%Y-%m-%d %H:%M:%S")
236 recdb.rec_reckey(recdb.REC_ENCODE_QUE, title, chtxt, btime, etime, opt)
237 print "b25check "+recpath+"/"+title+".ts.b25 "+recpath+"/"+title+".ts"
238 print checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")
239 if checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")==1:
240 os.remove(recpath+"/"+title+".ts.b25")
243 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
244 bt=bt+datetime.timedelta(seconds=600)
245 et=et+datetime.timedelta(seconds=600)
246 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
247 etime=et.strftime("%Y-%m-%d %H:%M:%S")
248 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
249 elif task["type"]==recdb.REC_ENCODE_QUE:
251 if status.getEncoding()<int(configreader.getenv("enc_max")):
256 pin=recpath+"/"+title+".ts"
257 if re.search("d",opt):
258 pin=recpath+"/"+title+"sa.avi"
259 if re.search("5",opt):
260 pin=recpath+"/"+title+"sa.avi"
261 pout=recpath+"/"+title+".avi"
262 print pin+":"+pout+":"+opt
263 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
264 recdb.rec_reckey(recdb.REC_ENCODE_LOCAL, title, chtxt, btime, etime, opt)
265 tv2avi.ts2avi(pin, pout, opt)
266 recdb.del_reckey(recdb.REC_ENCODE_LOCAL,title,chtxt,btime)
267 recdb.rec_reckey(recdb.REC_FIN_LOCAL, title, chtxt, btime, etime, opt)
270 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
271 bt=bt+datetime.timedelta(seconds=600)
272 et=et+datetime.timedelta(seconds=600)
273 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
274 etime=et.strftime("%Y-%m-%d %H:%M:%S")
275 recdb.rec_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime,etime,opt)