#!/usr/bin/python
# coding: UTF-8
# Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
+# Copyright (C) 2009-2011 Yukikaze
import chdb
+import n_gram
import rec10d
-import recdb
-"""
-task names
-"""
-global REC_RESERVE
-global REC_FINAL_RESERVE
-global REC_END
-global REC_ENCODE_GRID
-global REC_ENCODE_LOCAL
-global REC_ENCODE_QUE
-global REC_MIXING_SOUND
-global REC_MISS_ENCODE
-global REC_KEYWORD
-global REC_KEYWORD_EVERY_SOME_DAYS
-global REC_FIN_DECODE
-global REC_FIN_LOCAL
-global REC_MISS_DECODE
-global REC_TS_DECODE_QUE
-global REC_TS_DECODING
-global REC_TS_RECORDING
-global REC_AVI_TO_MKV
-global REC_AVI_TO_MP4
-global REC_MKV_TO_MP4
-global REC_CHANGING_CANTAINER
+import recdblist
-#ここから処理のちに移動
-global REC_MOVE_AFTER_RECORD
-global REC_MOVE_AFTER_RECORD_FINAL
-global REC_MOVE_AFTER_RECORD_RECORDING
-global REC_MOVE_AFTER_DECODE
-global REC_MOVE_AFTER_DECODE_FINAL
-global REC_MOVE_AFTER_DECODE_RECORDING
-global REC_MOVE_AFTER_DECODE_DECODE_QUE
-global REC_MOVE_AFTER_DECODE_DECODING
-global REC_MOVE_AFTER_ENCODE
-global REC_MOVE_AFTER_ENCODE_FINAL
-global REC_MOVE_AFTER_ENCODE_RECORDING
-global REC_MOVE_AFTER_ENCODE_DECODE_QUE
-global REC_MOVE_AFTER_ENCODE_DECODING
-global REC_MOVE_AFTER_ENCODE_ENCODE_QUE
-global REC_MOVE_AFTER_ENCODE_ENCODING
-global REC_MOVE_END
-
-#ここから自動で提起される処理。
-global REC_AUTO_SUGGEST_REC
-global REC_AUTO_SUGGEST_DECODE
-global REC_AUTO_SUGGEST_ENCODE
-global REC_AUTO_SUGGEST_AVI2MP4
-global REC_AUTO_SUGGEST_MKV2MP4
-global REC_BAYES_SUGGEST
-global REC_AUTO_KEYWORD
-REC_RESERVE = "res"
-REC_FINAL_RESERVE = "rec"
-REC_END = "end"
-REC_ENCODE_GRID = "grid"
-REC_ENCODE_LOCAL = "local"
-REC_ENCODE_QUE = "ts2avi"
-REC_MIXING_SOUND = "mixsound"
-REC_MISS_ENCODE = "miss"
-REC_KEYWORD = "key"
-REC_KEYWORD_EVERY_SOME_DAYS = "keyevery"
-REC_FIN_DECODE = "tsfin"
-REC_FIN_LOCAL = "fin_local"
-REC_MISS_DECODE = "tsmiss"
-REC_TS_DECODE_QUE = "b252ts"
-REC_TS_DECODING = "tsdecoding"
-REC_TS_RECORDING = "tsrecording"
-REC_CHANGING_CANTAINER = "changingcontainer"
-REC_AVI_TO_MKV = "avi2mkv"
-REC_AVI_TO_MP4 = "avi2mp4"
-REC_MKV_TO_MP4 = "mkv2mp4"
-
-REC_MOVE_AFTER_RECORD = "move_rec"
-REC_MOVE_AFTER_RECORD_FINAL = "move_rec_final"
-REC_MOVE_AFTER_RECORD_RECORDING ="move_rec_recording"
-REC_MOVE_AFTER_DECODE = "move_dec"
-REC_MOVE_AFTER_DECODE_FINAL = "move_dec_final"
-REC_MOVE_AFTER_DECODE_RECORDING = "move_dec_recording"
-REC_MOVE_AFTER_DECODE_DECODE_QUE ="move_dec_que"
-REC_MOVE_AFTER_DECODE_DECODING = "move_dec_decoding"
-REC_MOVE_AFTER_ENCODE = "move_enc"
-REC_MOVE_AFTER_ENCODE_FINAL = "move_enc_final"
-REC_MOVE_AFTER_ENCODE_RECORDING = "move_enc_recording"
-REC_MOVE_AFTER_ENCODE_DECODE_QUE = "move_enc_decque"
-REC_MOVE_AFTER_ENCODE_DECODING = "move_enc_decoding"
-REC_MOVE_AFTER_ENCODE_ENCODE_QUE = "move_enc_encque"
-REC_MOVE_AFTER_ENCODE_ENCODING = "move_enc_encoding"
-REC_MOVE_END = "move_end"
-
-REC_AUTO_SUGGEST_REC = "auto_suggest_rec"
-REC_AUTO_SUGGEST_DECODE = "auto_suggest_dec"
-REC_AUTO_SUGGEST_ENCODE = "auto_suggest_enc"
-REC_AUTO_SUGGEST_AVI2MP4 = "auto_suggest_a24"
-REC_AUTO_SUGGEST_MKV2MP4 = "auto_suggest_m24"
-REC_AUTO_KEYWORD = "auto_keyword"
-REC_BAYES_SUGGEST ="bayes_suggest"
-
-def recreserv(title, chtxt, btime, etime, opt):#optにはa(アニメ)d(副音声)v(xvid)
- rec_reckey("res", title, chtxt, btime, etime, opt)
-def auto_keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
- rec10d.rec10db.add_rectime(type=recdb.REC_AUTO_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
-def keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
- rec10d.rec10db.add_rectime(type=recdb.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
-def everyreserv(keyword, chtxt, btime, etime, deltatime, opt, deltaday):
- rec10d.rec10db.add_rectime(type=recdb.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday)
-def rec_reckey(type, title, chtxt, btime, etime, opt):
- rec10d.rec10db.add_rectime(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
-def del_reckey(type, title, chtxt, btime):
- rec10d.rec10db.del_rectime(type=type, title=title, chtxt=chtxt, btime=btime)
-def getnow(dhour):
+def reserveKeyword(keyword, chtxt, btime, etime, deltatime, opt):
+ rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
+def reserveEverydayKeyword(keyword, chtxt, btime, etime, deltatime, opt, deltaday,count):
+ tcount=count
+ if tcount<0:
+ tcount=-1
+ rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday,counter=tcount)
+def reserveReckey(type, title, chtxt, btime, etime, opt):
+ rec10d.rec10db.add_timeline(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
+def deleteReckey(type, title, chtxt, btime):
+ rec10d.rec10db.del_timeline(type=type, title=title, chtxt=chtxt, btime=btime)
+def reserveAutoKeyword(chtxt,title,btime,etime):
+ rec10d.rec10db.add_auto_timeline_keyword(chtxt, title, btime, etime)
+def addAutoBayesKeyword(chtxt,title,btime,etime,point):
+ rec10d.rec10db.add_auto_timeline_bayes(chtxt, title, btime, etime,point)
+def getProgramsInTheseHours(dhour):
dhour = int(dhour)
dminutes = 60 * dhour
dminutes = str(dminutes)
- return rec10d.rec10db.select_bytime_rectime(dminutes)
-def getnow_minutes(dminutes):
- return rec10d.rec10db.select_bytime_rectime(dminutes)
+ return rec10d.rec10db.select_bytime_timeline(dminutes)
+def getProgramsInTheseMinutes(dminutes):
+ return rec10d.rec10db.select_bytime_timeline(dminutes)
def countRecNow(dhour):
- d = getnow(dhour)
+ d = getProgramsInTheseHours(dhour)
ret = 0
for i in d:
t = i['type']
ret = ret + 1
return ret
def countRecNow_minutes(dminutes):
- d = getnow_minutes(dminutes)
+ d = getProgramsInTheseMinutes(dminutes)
ret = 0
for i in d:
t = i['type']
ret = ret + 1
return ret
def countRecNow_minutes_BSCS(dminutes):
- d = getnow_minutes(dminutes)
+ d = getProgramsInTheseMinutes(dminutes)
ret = 0
for i in d:
t = i['type']
if t == "key" or t == "keyevery" or t == "rec" or t == "res":
- if len(chdb.chtxtsearch(i['chtxt'])['ch']) > 2:
+ if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) > 2:
ret = ret + 1
return ret
def countRecNow_minutes_TE(dminutes):
- d = getnow_minutes(dminutes)
+ d = getProgramsInTheseMinutes(dminutes)
ret = 0
for i in d:
t = i['type']
if t == "key" or t == "keyevery" or t == "rec" or t == "res":
- if len(chdb.chtxtsearch(i['chtxt'])['ch']) < 3:
+ if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) < 3:
ret = ret + 1
return ret
-def delete_old(dhour):
+def deleteOldProgramBeforeTheseHours(dhour):
"""
- delete keys except recdb.REC_MISS_ENCODE and recdb.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
+ delete keys except recdblist.REC_MISS_ENCODE and recdblist.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
"""
- rec10d.rec10db.delete_old_rectime(dhour)
-def getall():
- return rec10d.rec10db.select_all_rectime()
-def rec_reclog(title,chtxt,btime,etime,opt,exp,longexp,category):
- rec10d.rec10db.add_reclog(chtxt,title,btime,etime,opt,exp,longexp,category)
-def get_key():
- return rec10d.rec10db.select_all_recjbk()
\ No newline at end of file
+ rec10d.rec10db.delete_old_timeline(dhour)
+def delete_old_auto_keyword(dhour):
+ rec10d.rec10db.delete_old_auto_timeline_keyword(dhour)
+def delete_old_auto_bayes(dhour):
+ rec10d.rec10db.delete_old_auto_timeline_bayes(dhour)
+def getAll():
+ return rec10d.rec10db.select_all_timeline()
+def addRecLogProgram(title,chtxt,btime,etime,opt,exp,longexp,category):
+ rec10d.rec10db.add_in_timeline_log(chtxt,title,btime,etime,opt,exp,longexp,category)
+def getAllJbkKeyword():
+ return rec10d.rec10db.select_all_in_auto_jbk_key()
+def checkDuplicated(title,chtxt,epgbtime,epgetime):
+ tl=rec10d.rec10db.select_byepgtime_all_timeline(epgbtime,epgetime)
+ nel=rec10d.rec10db.select_bytime_all_timeline(epgbtime, epgetime)
+ dup=0
+ for t in tl:
+ if t["title"]==title and t["chtxt"]==chtxt:
+ dup=1
+ elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
+ dup=1
+ for t in nel:
+ if t["title"]==title and t["chtxt"]==chtxt:
+ dup=1
+ elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
+ dup=1
+ return dup