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())
31 if inum+status.getBSCSRecording()+status.getTERecording() < 2:
35 if len(update)>0 and status.getEPGUpdating()==0:
37 status.setEPGUpdating(1)
41 else:#子プロセスの場合 アップデートを行って終了
46 epgdb.updatebc(bctype)
52 status.setEPGUpdating(0)
66 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
69 bt=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
72 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
75 et=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
80 tnow=datetime.datetime.now()
82 dt=dtt.days*24*60*60+dtt.seconds
83 if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt
86 if (dt<58*60 and dt>20*60):
90 else:#子プロセスの場合 アップデートを行って終了
91 cht=chdb.chtxtsearch(chtxt)['bctype']
92 if cht.find('te')!=-1:
97 gettaskbscs=recdb.countRecNow_minutes_BSCS("10")
98 getnowbscs=status.getBSCSRecording()
99 bscs=getnowbscs+gettaskbscs
101 print "now(bscs):"+str(getnowbscs)+" task(bscs):"+str(gettaskbscs)
102 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
108 gettaskte=recdb.countRecNow_minutes_TE("10")
109 getnowte=status.getTERecording()
110 bscs=getnowte+gettaskte
111 if recdb.countRecNow_minutes_TE("10")+status.getTERecording() <2:
112 print "now(te):"+str(getnowte)+" task(te):"+str(gettaskte)
113 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
119 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,"5",chtxt)
124 bt=datetime.datetime.strptime(btimen,"%Y-%m-%d %H:%M:%S")
125 et=datetime.datetime.strptime(etimen,"%Y-%m-%d %H:%M:%S")
126 btimen=bt.strftime("%Y-%m-%d %H:%M:%S")
127 etimen=et.strftime("%Y-%m-%d %H:%M:%S")
130 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
131 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, titlen, chtxtn, btimen, etimen, opt)
132 except Exception,inst:
136 print "nothing match"
142 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
143 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt)
144 except Exception,inst:
147 elif task["type"]==recdb.REC_KEYWORD:#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt
148 deltatime=task['deltatime']
150 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,deltatime,chtxt)
156 bt=datetime.datetime.strptime(btimet,"%Y-%m-%d %H:%M:%S")
157 et=datetime.datetime.strptime(etimet,"%Y-%m-%d %H:%M:%S")
158 btimet=bt.strftime("%Y-%m-%d %H:%M:%S")
159 etimet=et.strftime("%Y-%m-%d %H:%M:%S")
161 recdb.del_reckey(recdb.REC_KEYWORD, title, chtxt, btime)
162 recdb.rec_reckey(recdb.REC_RESERVE, titlet, chtxtt, btimet, etimet, opt)
163 except Exception,inst:
167 print "nothing match"
168 elif task["type"]==recdb.REC_KEYWORD_EVERY_SOME_DAYS:#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday
169 deltatime=task['deltatime']
170 deltaday=task['deltaday']
171 dd=datetime.timedelta(days=int(deltaday))
173 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
176 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
177 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
178 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
180 recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt)
181 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
184 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
185 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
186 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
188 elif task["type"]==recdb.REC_FINAL_RESERVE:#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt
191 recdb.del_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime)
192 recdb.rec_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime, etime, opt)
199 tv2avi.timetv2b25(recpath+"/"+title+".avi", chtxt, btime, etime, opt)
200 recdb.del_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime)
201 tnow=datetime.datetime.now()
202 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
203 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
205 bt=tnow+datetime.timedelta(seconds=600)
206 et=et+dt+datetime.timedelta(seconds=600)
207 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
208 etime=et.strftime("%Y-%m-%d %H:%M:%S")
209 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
211 elif task["type"]==recdb.REC_TS_DECODE_QUE:
213 if status.getB25Decoding()<2:
218 pin=recpath+"/"+title
219 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
220 recdb.rec_reckey(recdb.REC_TS_DECODING, title, chtxt, btime, etime, opt)
221 tv2avi.b252ts(pin, chtxt, btime, etime, opt)
222 recdb.del_reckey(recdb.REC_TS_DECODING,title,chtxt,btime)
223 if not os.access(recpath+"/"+title+".ts", os.F_OK):
224 recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime)
225 recdb.rec_reckey(recdb.REC_MISS_DECODE, title, chtxt, btime, etime, opt)
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_ENCODE_QUE, title, chtxt, btime, etime, opt)
235 print "b25check "+recpath+"/"+title+".ts.b25 "+recpath+"/"+title+".ts"
236 print checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")
237 if checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts")==1:
238 os.remove(recpath+"/"+title+".ts.b25")
241 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
242 bt=bt+datetime.timedelta(seconds=600)
243 et=et+datetime.timedelta(seconds=600)
244 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
245 etime=et.strftime("%Y-%m-%d %H:%M:%S")
246 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
247 elif task["type"]==recdb.REC_ENCODE_QUE:
249 if status.getEncoding()<int(configreader.getenv("enc_max")):
254 pin=recpath+"/"+title+".ts"
255 if re.search("d",opt):
256 pin=recpath+"/"+title+"sa.avi"
257 if re.search("5",opt):
258 pin=recpath+"/"+title+"sa.avi"
259 pout=recpath+"/"+title+".avi"
260 print pin+":"+pout+":"+opt
261 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
262 recdb.rec_reckey(recdb.REC_ENCODE_LOCAL, title, chtxt, btime, etime, opt)
263 tv2avi.ts2avi(pin, pout, opt)
264 recdb.del_reckey(recdb.REC_ENCODE_LOCAL,title,chtxt,btime)
265 recdb.rec_reckey(recdb.REC_FIN_LOCAL, title, chtxt, btime, etime, opt)
268 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
269 bt=bt+datetime.timedelta(seconds=600)
270 et=et+datetime.timedelta(seconds=600)
271 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
272 etime=et.strftime("%Y-%m-%d %H:%M:%S")
273 recdb.rec_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime,etime,opt)