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("1")
27 inum=recdb.countRecNow("2")
29 print inum+status.getBSCSRecording()+status.getTERecording()
30 if inum+status.getBSCSRecording()+status.getTERecording() < 2:
31 #if ( inum < 2 ) and ( status.getBSCSRecording()+status.getTERecording() < 2 ):#1個ならTE|BS/CSのどちらかが埋まってる可能性はないので1以下にした。
41 else:#子プロセスの場合 アップデートを行って終了
45 epgdb.updatebc(bctype)
60 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
63 bt=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
66 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
69 et=datetime.datetime.strptime("2009-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
74 tnow=datetime.datetime.now()
76 dt=dtt.days*24*60*60+dtt.seconds
78 if task["type"]==recdb.REC_RESERVE:#"res,"+chtxt+","+title+","+btime+","+etime+","+opt
80 if (dt<58*60 and dt>10*60):
81 if len(chdb.chtxtsearch(chtxt)['ch'])>2:
82 if recdb.countRecNow_minutes_BSCS("10")+status.getBSCSRecording() <2:
83 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
88 if len(chdb.chtxtsearch(chtxt)['ch'])<3:
89 if recdb.countRecNow_minutes_TE("10")+status.getTERecording() <2:
90 epgdb.updatebc(chdb.chtxtsearch(chtxt)['bctype'])
96 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,"5",chtxt)
101 bt=datetime.datetime.strptime(btimen,"%Y-%m-%d %H:%M:%S")
102 et=datetime.datetime.strptime(etimen,"%Y-%m-%d %H:%M:%S")
103 btimen=bt.strftime("%Y-%m-%d %H:%M:%S")
104 etimen=et.strftime("%Y-%m-%d %H:%M:%S")
106 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
107 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, titlen, chtxtn, btimen, etimen, opt)
109 print "nothing match"
113 recdb.del_reckey(recdb.REC_RESERVE, title, chtxt, btime)
114 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt)
115 elif task["type"]==recdb.REC_KEYWORD:#"key,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt
116 deltatime=task['deltatime']
118 recdata=epgdb.searchtime2(title.decode('utf-8'),btime,deltatime,chtxt)
123 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
124 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
125 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
126 etime=et.strftime("%Y-%m-%d %H:%M:%S")
128 recdb.rec_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime, etime, opt)
130 print "nothing match"
131 elif task["type"]==recdb.REC_KEYWORD_EVERY_SOME_DAYS:#"keyevery,"+chtxt+","+keyword+","+btime+","+deltatime+","+opt+","+deltaday
132 deltatime=task['deltatime']
133 deltaday=task['deltaday']
134 dd=datetime.timedelta(days=int(deltaday))
136 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
139 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
140 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
141 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
143 recdb.keyreserv(title,chtxt,btime,etime,deltatime,opt)
144 recdb.del_reckey(recdb.REC_KEYWORD_EVERY_SOME_DAYS, title, chtxt, btime)
147 btxt=bt.strftime("%Y-%m-%d %H:%M:%S")
148 etxt=et.strftime("%Y-%m-%d %H:%M:%S")
149 recdb.everyreserv(title,chtxt,btxt,etxt,deltatime,opt,deltaday)
151 elif task["type"]==recdb.REC_FINAL_RESERVE:#"rec,"+chtxt+","+title+","+btime+","+etime+","+opt
154 recdb.del_reckey(recdb.REC_FINAL_RESERVE, title, chtxt, btime)
155 recdb.rec_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime, etime, opt)
162 tv2avi.timetv2b25(recpath+"/"+title, chtxt, btime, etime, opt)
163 recdb.del_reckey(recdb.REC_TS_RECORDING, title, chtxt, btime)
164 tnow=datetime.datetime.now()
165 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
166 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
168 bt=tnow+datetime.timedelta(seconds=600)
169 et=et+dt+datetime.timedelta(seconds=600)
170 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
171 etime=et.strftime("%Y-%m-%d %H:%M:%S")
172 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
174 elif task["type"]==recdb.REC_TS_DECODE_QUE:
176 if status.getB25Decoding()<2:
181 pin=recpath+"/"+title
182 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
183 recdb.rec_reckey(recdb.REC_TS_DECODING, title, chtxt, btime, etime, opt)
184 tv2avi.b252ts(pin, chtxt, btime, etime, opt)
185 recdb.del_reckey(recdb.REC_TS_DECODING,title,chtxt,btime)
186 if not os.access(recpath+"/"+title+".ts", os.F_OK):
187 recdb.del_reckey(recdb.REC_TS_DECODING, title, chtxt, btime)
188 recdb.rec_reckey(recdb.REC_MISS_DECODE, title, chtxt, btime, etime, opt)
189 tnow=datetime.datetime.now()
190 bt=datetime.datetime.strptime(btime,"%Y-%m-%d %H:%M:%S")
191 et=datetime.datetime.strptime(etime,"%Y-%m-%d %H:%M:%S")
193 bt=tnow+datetime.timedelta(seconds=600)
194 et=et+dt+datetime.timedelta(seconds=600)
195 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
196 etime=et.strftime("%Y-%m-%d %H:%M:%S")
197 recdb.rec_reckey(recdb.REC_ENCODE_QUE, title, chtxt, btime, etime, opt)
198 if checker.checkB25Decode(recpath+"/"+title+".ts.b25",recpath+"/"+title+".ts"):
199 os.remove(recpath+"/"+title+".ts.b25")
202 recdb.del_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime)
203 bt=bt+datetime.timedelta(seconds=600)
204 et=et+datetime.timedelta(seconds=600)
205 btime=bt.strftime("%Y-%m-%d %H:%M:%S")
206 etime=et.strftime("%Y-%m-%d %H:%M:%S")
207 recdb.rec_reckey(recdb.REC_TS_DECODE_QUE,title,chtxt,btime,etime,opt)
208 elif task["type"]==recdb.REC_ENCODE_QUE:
210 if status.getEncoding()<2:
215 pin=recpath+"/"+title+".ts"
216 if re.search("d",opt):
217 pin=recpath+"/"+title+"sa.avi"
218 if re.search("5",opt):
219 pin=recpath+"/"+title+"sa.avi"
220 pout=recpath+"/"+title+".avi"
221 print pin+":"+pout+":"+opt
222 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
223 recdb.rec_reckey(recdb.REC_ENCODE_LOCAL, title, chtxt, btime, etime, opt)
224 tv2avi.ts2avi(pin, pout, opt)
225 recdb.del_reckey(recdb.REC_ENCODE_LOCAL,title,chtxt,btime)
226 recdb.rec_reckey(recdb.REC_FIN_LOCAL, title, chtxt, btime, etime, opt)
229 recdb.del_reckey(recdb.REC_ENCODE_QUE,title,chtxt,btime)
230 bt=bt+datetime.timedelta(seconds=600)
231 et=et+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)