OSDN Git Service

stop using trunk directory in rectool
[rec10/rec10-git.git] / rec10 / branches / 0.9.0 / src / recdb.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
5 import chdb
6 import rec10d
7 import recdb
8 """
9 task names
10 """
11 global REC_RESERVE
12 global REC_FINAL_RESERVE
13 global REC_ENCODE_GRID
14 global REC_ENCODE_LOCAL
15 global REC_ENCODE_QUE
16 global REC_MISS_ENCODE
17 global REC_KEYWORD
18 global REC_KEYWORD_EVERY_SOME_DAYS
19 global REC_FIN_LOCAL
20 global REC_MISS_DECODE
21 global REC_TS_DECODE_QUE
22 global REC_TS_DECODING
23 global REC_TS_RECORDING
24 global REC_AVI_TO_MKV
25 global REC_AVI_TO_MP4
26 global REC_MKV_TO_MP4
27 global REC_CHANGING_CANTAINER
28
29 #ここから処理のちに移動
30 global REC_MOVE_AFTER_RECORD
31 global REC_MOVE_AFTER_RECORD_FINAL
32 global REC_MOVE_AFTER_RECORD_RECORDING
33 global REC_MOVE_AFTER_DECODE
34 global REC_MOVE_AFTER_DECODE_FINAL
35 global REC_MOVE_AFTER_DECODE_RECORDING
36 global REC_MOVE_AFTER_DECODE_DECODE_QUE
37 global REC_MOVE_AFTER_DECODE_DECODING
38 global REC_MOVE_AFTER_ENCODE
39 global REC_MOVE_AFTER_ENCODE_FINAL
40 global REC_MOVE_AFTER_ENCODE_RECORDING
41 global REC_MOVE_AFTER_ENCODE_DECODE_QUE
42 global REC_MOVE_AFTER_ENCODE_DECODING
43 global REC_MOVE_AFTER_ENCODE_ENCODE_QUE
44 global REC_MOVE_AFTER_ENCODE_ENCODING
45 global REC_MOVE_END
46
47 #ここから自動で提起される処理。
48 global REC_AUTO_SUGGEST_REC
49 global REC_AUTO_SUGGEST_DECODE
50 global REC_AUTO_SUGGEST_ENCODE
51 global REC_AUTO_SUGGEST_AVI2MP4
52 global REC_AUTO_SUGGEST_MKV2MP4
53 global REC_BAYES_SUGGEST
54 global REC_AUTO_KEYWORD
55 REC_RESERVE = "reserve_flexible"
56 REC_FINAL_RESERVE = "reserve_fixed"
57 REC_ENCODE_GRID = "convert_ts_mp4_network"
58 REC_ENCODE_LOCAL = "convert_ts_mp4_running"
59 REC_ENCODE_QUE = "convert_ts_mp4"
60 REC_MISS_ENCODE = "convert_avi_mp4_miss"
61 REC_KEYWORD = "search_today"
62 REC_KEYWORD_EVERY_SOME_DAYS = "search_everyday"
63 REC_FIN_LOCAL = "convert_ts_mp4_finished"
64 REC_MISS_DECODE = "convert_b25_ts_miss"
65 REC_TS_DECODE_QUE = "convert_b25_ts"
66 REC_TS_DECODING = "convert_b25_ts_running"
67 REC_TS_RECORDING = "reserve_running"
68 REC_CHANGING_CANTAINER = "convert_mkv_mp4_runnings"
69 REC_AVI_TO_MKV = "convert_avi_mkv"
70 REC_AVI_TO_MP4 = "convert_avi_mp4"
71 REC_MKV_TO_MP4 = "convert_mkv_mp4"
72
73 REC_MOVE_AFTER_RECORD = "move_rec"
74 REC_MOVE_AFTER_RECORD_FINAL = "move_rec_final"
75 REC_MOVE_AFTER_RECORD_RECORDING ="move_rec_recording"
76 REC_MOVE_AFTER_DECODE = "move_dec"
77 REC_MOVE_AFTER_DECODE_FINAL = "move_dec_final"
78 REC_MOVE_AFTER_DECODE_RECORDING = "move_dec_recording"
79 REC_MOVE_AFTER_DECODE_DECODE_QUE ="move_dec_que"
80 REC_MOVE_AFTER_DECODE_DECODING = "move_dec_decoding"
81 REC_MOVE_AFTER_ENCODE = "move_enc"
82 REC_MOVE_AFTER_ENCODE_FINAL = "move_enc_final"
83 REC_MOVE_AFTER_ENCODE_RECORDING = "move_enc_recording"
84 REC_MOVE_AFTER_ENCODE_DECODE_QUE = "move_enc_decque"
85 REC_MOVE_AFTER_ENCODE_DECODING = "move_enc_decoding"
86 REC_MOVE_AFTER_ENCODE_ENCODE_QUE = "move_enc_encque"
87 REC_MOVE_AFTER_ENCODE_ENCODING = "move_enc_encoding"
88 REC_MOVE_END = "move_end"
89
90 REC_AUTO_SUGGEST_REC = "auto_suggest_rec"
91 REC_AUTO_SUGGEST_DECODE = "auto_suggest_dec"
92 REC_AUTO_SUGGEST_ENCODE = "auto_suggest_enc"
93 REC_AUTO_SUGGEST_AVI2MP4 = "auto_suggest_a24"
94 REC_AUTO_SUGGEST_MKV2MP4 = "auto_suggest_m24"
95 REC_AUTO_KEYWORD = "auto_keyword"
96 REC_BAYES_SUGGEST ="bayes_suggest"
97
98 def recreserv(title, chtxt, btime, etime, opt):#optにはa(アニメ)d(副音声)v(xvid)
99     rec_reckey("res", title, chtxt, btime, etime, opt)
100 def auto_keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
101     rec10d.rec10db.add_timeline(type=recdb.REC_AUTO_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
102 def keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
103     rec10d.rec10db.add_timeline(type=recdb.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
104 def everyreserv(keyword, chtxt, btime, etime, deltatime, opt, deltaday):
105     rec10d.rec10db.add_timeline(type=recdb.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday)
106 def rec_reckey(type, title, chtxt, btime, etime, opt):
107     rec10d.rec10db.add_timeline(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
108 def del_reckey(type, title, chtxt, btime):
109     rec10d.rec10db.del_timeline(type=type, title=title, chtxt=chtxt, btime=btime)
110 def add_auto_keyword(chtxt,title,btime,etime):
111     rec10d.rec10db.add_auto_timeline_keyword(chtxt, title, btime, etime)
112 def add_auto_bayes(chtxt,title,btime,etime):
113     rec10d.rec10db.add_auto_timeline_bayes(chtxt, title, btime, etime)
114 def getnow(dhour):
115     dhour = int(dhour)
116     dminutes = 60 * dhour
117     dminutes = str(dminutes)
118     return rec10d.rec10db.select_bytime_timeline(dminutes)
119 def getnow_minutes(dminutes):
120     return rec10d.rec10db.select_bytime_timeline(dminutes)
121 def countRecNow(dhour):
122     d = getnow(dhour)
123     ret = 0
124     for i in d:
125         t = i['type']
126         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
127             ret = ret + 1
128     return ret
129 def countRecNow_minutes(dminutes):
130     d = getnow_minutes(dminutes)
131     ret = 0
132     for i in d:
133         t = i['type']
134         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
135             ret = ret + 1
136     return ret
137 def countRecNow_minutes_BSCS(dminutes):
138     d = getnow_minutes(dminutes)
139     ret = 0
140     for i in d:
141         t = i['type']
142         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
143             if len(chdb.chtxtsearch(i['chtxt'])['ch']) > 2:
144                 ret = ret + 1
145     return ret
146 def countRecNow_minutes_TE(dminutes):
147     d = getnow_minutes(dminutes)
148     ret = 0
149     for i in d:
150         t = i['type']
151         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
152             if len(chdb.chtxtsearch(i['chtxt'])['ch']) < 3:
153                 ret = ret + 1
154     return ret
155 def delete_old(dhour):
156     """
157     delete keys except recdb.REC_MISS_ENCODE and recdb.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
158     """
159     rec10d.rec10db.delete_old_timeline(dhour)
160 def delete_old_auto_keyword(dhour):
161     rec10d.rec10db.delete_old_auto_timeline_keyword(dhour)
162 def delete_old_auto_bayes(dhour):
163     rec10d.rec10db.delete_old_auto_timeline_bayes(dhour)
164 def getall():
165     return rec10d.rec10db.select_all_timeline()
166 def rec_reclog(title,chtxt,btime,etime,opt,exp,longexp,category):
167     rec10d.rec10db.add_in_timeline_log(chtxt,title,btime,etime,opt,exp,longexp,category)
168 def get_key():
169     return rec10d.rec10db.select_all_in_auto_jbk_key()