OSDN Git Service

fix many bugs(thanks long.inus).
[rec10/rec10-git.git] / rec10 / trunk / 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_END
14 global REC_ENCODE_GRID
15 global REC_ENCODE_LOCAL
16 global REC_ENCODE_QUE
17 global REC_MIXING_SOUND
18 global REC_MISS_ENCODE
19 global REC_KEYWORD
20 global REC_KEYWORD_EVERY_SOME_DAYS
21 global REC_FIN_DECODE
22 global REC_FIN_LOCAL
23 global REC_MISS_DECODE
24 global REC_TS_DECODE_QUE
25 global REC_TS_DECODING
26 global REC_TS_RECORDING
27 global REC_AVI_TO_MKV
28 global REC_AVI_TO_MP4
29 global REC_MKV_TO_MP4
30 global REC_CHANGING_CANTAINER
31
32 #ここから処理のちに移動
33 global REC_MOVE_AFTER_RECORD
34 global REC_MOVE_AFTER_RECORD_FINAL
35 global REC_MOVE_AFTER_RECORD_RECORDING
36 global REC_MOVE_AFTER_DECODE
37 global REC_MOVE_AFTER_DECODE_FINAL
38 global REC_MOVE_AFTER_DECODE_RECORDING
39 global REC_MOVE_AFTER_DECODE_DECODE_QUE
40 global REC_MOVE_AFTER_DECODE_DECODING
41 global REC_MOVE_AFTER_ENCODE
42 global REC_MOVE_AFTER_ENCODE_FINAL
43 global REC_MOVE_AFTER_ENCODE_RECORDING
44 global REC_MOVE_AFTER_ENCODE_DECODE_QUE
45 global REC_MOVE_AFTER_ENCODE_DECODING
46 global REC_MOVE_AFTER_ENCODE_ENCODE_QUE
47 global REC_MOVE_AFTER_ENCODE_ENCODING
48 global REC_MOVE_END
49
50 #ここから自動で提起される処理。
51 global REC_AUTO_SUGGEST_REC
52 global REC_AUTO_SUGGEST_DECODE
53 global REC_AUTO_SUGGEST_ENCODE
54 global REC_AUTO_SUGGEST_AVI2MP4
55 global REC_AUTO_SUGGEST_MKV2MP4
56 global REC_BAYES_SUGGEST
57 global REC_AUTO_KEYWORD
58 REC_RESERVE = "res"
59 REC_FINAL_RESERVE = "rec"
60 REC_END = "end"
61 REC_ENCODE_GRID = "grid"
62 REC_ENCODE_LOCAL = "local"
63 REC_ENCODE_QUE = "ts2avi"
64 REC_MIXING_SOUND = "mixsound"
65 REC_MISS_ENCODE = "miss"
66 REC_KEYWORD = "key"
67 REC_KEYWORD_EVERY_SOME_DAYS = "keyevery"
68 REC_FIN_DECODE = "tsfin"
69 REC_FIN_LOCAL = "fin_local"
70 REC_MISS_DECODE = "tsmiss"
71 REC_TS_DECODE_QUE = "b252ts"
72 REC_TS_DECODING = "tsdecoding"
73 REC_TS_RECORDING = "tsrecording"
74 REC_CHANGING_CANTAINER = "changingcontainer"
75 REC_AVI_TO_MKV = "avi2mkv"
76 REC_AVI_TO_MP4 = "avi2mp4"
77 REC_MKV_TO_MP4 = "mkv2mp4"
78
79 REC_MOVE_AFTER_RECORD = "move_rec"
80 REC_MOVE_AFTER_RECORD_FINAL = "move_rec_final"
81 REC_MOVE_AFTER_RECORD_RECORDING ="move_rec_recording"
82 REC_MOVE_AFTER_DECODE = "move_dec"
83 REC_MOVE_AFTER_DECODE_FINAL = "move_dec_final"
84 REC_MOVE_AFTER_DECODE_RECORDING = "move_dec_recording"
85 REC_MOVE_AFTER_DECODE_DECODE_QUE ="move_dec_que"
86 REC_MOVE_AFTER_DECODE_DECODING = "move_dec_decoding"
87 REC_MOVE_AFTER_ENCODE = "move_enc"
88 REC_MOVE_AFTER_ENCODE_FINAL = "move_enc_final"
89 REC_MOVE_AFTER_ENCODE_RECORDING = "move_enc_recording"
90 REC_MOVE_AFTER_ENCODE_DECODE_QUE = "move_enc_decque"
91 REC_MOVE_AFTER_ENCODE_DECODING = "move_enc_decoding"
92 REC_MOVE_AFTER_ENCODE_ENCODE_QUE = "move_enc_encque"
93 REC_MOVE_AFTER_ENCODE_ENCODING = "move_enc_encoding"
94 REC_MOVE_END = "move_end"
95
96 REC_AUTO_SUGGEST_REC = "auto_suggest_rec"
97 REC_AUTO_SUGGEST_DECODE = "auto_suggest_dec"
98 REC_AUTO_SUGGEST_ENCODE = "auto_suggest_enc"
99 REC_AUTO_SUGGEST_AVI2MP4 = "auto_suggest_a24"
100 REC_AUTO_SUGGEST_MKV2MP4 = "auto_suggest_m24"
101 REC_AUTO_KEYWORD = "auto_keyword"
102 REC_BAYES_SUGGEST ="bayes_suggest"
103
104 def recreserv(title, chtxt, btime, etime, opt):#optにはa(アニメ)d(副音声)v(xvid)
105     rec_reckey("res", title, chtxt, btime, etime, opt)
106 def auto_keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
107     rec10d.rec10db.add_rectime(type=recdb.REC_AUTO_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
108 def keyreserv(keyword, chtxt, btime, etime, deltatime, opt):
109     rec10d.rec10db.add_rectime(type=recdb.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
110 def everyreserv(keyword, chtxt, btime, etime, deltatime, opt, deltaday):
111     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)
112 def rec_reckey(type, title, chtxt, btime, etime, opt):
113     rec10d.rec10db.add_rectime(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
114 def del_reckey(type, title, chtxt, btime):
115     rec10d.rec10db.del_rectime(type=type, title=title, chtxt=chtxt, btime=btime)
116 def getnow(dhour):
117     dhour = int(dhour)
118     dminutes = 60 * dhour
119     dminutes = str(dminutes)
120     return rec10d.rec10db.select_bytime_rectime(dminutes)
121 def getnow_minutes(dminutes):
122     return rec10d.rec10db.select_bytime_rectime(dminutes)
123 def countRecNow(dhour):
124     d = getnow(dhour)
125     ret = 0
126     for i in d:
127         t = i['type']
128         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
129             ret = ret + 1
130     return ret
131 def countRecNow_minutes(dminutes):
132     d = getnow_minutes(dminutes)
133     ret = 0
134     for i in d:
135         t = i['type']
136         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
137             ret = ret + 1
138     return ret
139 def countRecNow_minutes_BSCS(dminutes):
140     d = getnow_minutes(dminutes)
141     ret = 0
142     for i in d:
143         t = i['type']
144         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
145             if len(chdb.chtxtsearch(i['chtxt'])['ch']) > 2:
146                 ret = ret + 1
147     return ret
148 def countRecNow_minutes_TE(dminutes):
149     d = getnow_minutes(dminutes)
150     ret = 0
151     for i in d:
152         t = i['type']
153         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
154             if len(chdb.chtxtsearch(i['chtxt'])['ch']) < 3:
155                 ret = ret + 1
156     return ret
157 def delete_old(dhour):
158     """
159     delete keys except recdb.REC_MISS_ENCODE and recdb.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
160     """
161     rec10d.rec10db.delete_old_rectime(dhour)
162 def getall():
163     return rec10d.rec10db.select_all_rectime()
164 def rec_reclog(title,chtxt,btime,etime,opt,exp,longexp,category):
165     rec10d.rec10db.add_reclog(chtxt,title,btime,etime,opt,exp,longexp,category)
166 def get_key():
167     return rec10d.rec10db.select_all_recjbk()