3 # Rec10 TS Recording Tools
\r
4 # Copyright (C) 2009-2011 Yukikaze
\r
17 global REC_FINAL_RESERVE
\r
18 global REC_ENCODE_GRID
\r
19 global REC_ENCODE_LOCAL
\r
20 global REC_ENCODE_QUE
\r
21 global REC_MISS_ENCODE
\r
23 global REC_KEYWORD_EVERY_SOME_DAYS
\r
24 global REC_FIN_LOCAL
\r
25 global REC_MISS_DECODE
\r
26 global REC_TS_DECODE_QUE
\r
27 global REC_TS_DECODING
\r
28 global REC_TS_RECORDING
\r
29 global REC_AVI_TO_MKV
\r
30 global REC_AVI_TO_MP4
\r
31 global REC_MKV_TO_MP4
\r
32 global REC_CHANGING_CANTAINER
\r
39 global REC_AUTO_SUGGEST_REC
\r
40 global REC_AUTO_SUGGEST_DECODE
\r
41 global REC_AUTO_SUGGEST_ENCODE
\r
42 global REC_AUTO_SUGGEST_AVI2MP4
\r
43 global REC_AUTO_SUGGEST_MKV2MP4
\r
44 global REC_AUTO_SUGGEST_AVI2FP
\r
45 global REC_AUTO_SUGGEST_AP2FP
\r
46 global REC_BAYES_SUGGEST
\r
47 global REC_AUTO_KEYWORD
\r
48 REC_RESERVE = "reserve_flexible"
\r
49 REC_FINAL_RESERVE = "reserve_fixed"
\r
50 REC_ENCODE_GRID = "convert_ts_mp4_network"
\r
51 REC_ENCODE_LOCAL = "convert_ts_mp4_running"
\r
52 REC_ENCODE_QUE = "convert_ts_mp4"
\r
53 REC_MISS_ENCODE = "convert_avi_mp4_miss"
\r
54 REC_KEYWORD = "search_today"
\r
55 REC_KEYWORD_EVERY_SOME_DAYS = "search_everyday"
\r
56 REC_FIN_LOCAL = "convert_ts_mp4_finished"
\r
57 REC_MISS_DECODE = "convert_b25_ts_miss"
\r
58 REC_TS_DECODE_QUE = "convert_b25_ts"
\r
59 REC_TS_DECODING = "convert_b25_ts_running"
\r
60 REC_TS_RECORDING = "reserve_running"
\r
61 REC_CHANGING_CANTAINER = "convert_mkv_mp4_runnings"
\r
62 REC_AVI_TO_MKV = "convert_avi_mkv"
\r
63 REC_AVI_TO_MP4 = "convert_avi_mp4"
\r
64 REC_MKV_TO_MP4 = "convert_mkv_mp4"
\r
66 REC_MOVE_END = "move_end"
\r
68 REC_AUTO_SUGGEST_REC = "auto_suggest_rec"
\r
69 REC_AUTO_SUGGEST_DECODE = "auto_suggest_dec"
\r
70 REC_AUTO_SUGGEST_ENCODE = "auto_suggest_enc"
\r
71 REC_AUTO_SUGGEST_AVI2FP = "auto_suggest_avi2fp"
\r
72 REC_AUTO_SUGGEST_AP2FP = "auto_suggest_ap2fp"
\r
73 REC_AUTO_KEYWORD = "auto_keyword"
\r
74 REC_BAYES_SUGGEST ="bayes_suggest"
\r
76 global BONTSDEMUX_DELAY
\r
77 BONTSDEMUX_DELAY="0"
\r
80 version_str="0.9.10"
\r
82 global verbose_level_now
\r
83 global log_level_now
\r
86 log_level_now=int(configreader.getConfLog("log_level"))
\r
87 verbose_level_now=int(configreader.getConfLog("verbose_level"))
\r
90 verbose_level_now=400
\r
91 def printutf8(unicode,verbose_level=500):
\r
92 if verbose_level_now > verbose_level:
\r
94 str=unicode.encode('utf-8')
\r
96 except Exception, inst:
\r
97 recdblist.addCommonlogEX("Error", "printutf8(recdblist.py)", str(type(inst)), str(inst)+traceback.format_exc(),log_level=200)
\r
98 def printuft8ex(unicode,verbose_level=500,log_level=500):
\r
99 str=unicode.encode('utf-8')
\r
100 if verbose_level_now > verbose_level:
\r
102 logfname="/var/log/rec10"
\r
104 if log_level_now > log_level:
\r
105 if os.path.exists(logfname):
\r
106 f=open(logfname,mode)
\r
109 def addCommonlogEX(type,place,inst,txt,verbose_level=500,log_level=500):
\r
110 lt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")+u":"
\r
112 lt=lt+u"["+type+u"] "+place+u" "+inst
\r
114 lt=lt+u"["+type+u"] "+place+u" "+inst+u"\n"+txt
\r
115 lt=lt.encode('utf-8')
\r
116 logfname="/var/log/rec10"
\r
118 if verbose_level_now > verbose_level:
\r
120 if log_level_now > log_level:
\r
121 if os.path.exists(logfname):
\r
122 f=open(logfname,mode)
\r
125 def addCommandLog(tspath,log_title,cmd,cmd_log=""):
\r
126 addLog(tspath,cmd,log_title+u"ログ-コマンド")
\r
127 addLog(tspath,cmd_log,log_title+u"ログ-詳細")
\r
128 def addCommandLogZip(tspath,log_title,log_filename_add,cmd,cmd_log=""):
\r
129 logtitle=getLogTitle(tspath)
\r
130 logo=logtitle+"."+log_filename_add+".log"
\r
131 logzip=logtitle+".log.zip"
\r
132 addLogAll(tspath,cmd+"\n\n"+cmd_log,log_title,logo)
\r
134 zip.addFile2FileZip(logo,logzip)
\r
136 def addCommandSelfLog(tspath,command):
\r
137 logpath=getLogTitle(tspath)+".command.log"
\r
139 if os.path.exists(logpath):
\r
140 f=open(logpath,'a')
\r
142 f=open(logpath,'w')
\r
144 f.write(tc.encode('utf-8','ignore'))
\r
146 def getLogTitle(tspath):
\r
148 logo=logo.replace("_1.wav",".ts")
\r
149 logo=logo.replace("_2.wav",".ts")
\r
150 logo=logo.replace("_1.aac",".ts")
\r
151 logo=logo.replace("_2.aac",".ts")
\r
152 logo=logo.replace("_1.mp3",".ts")
\r
153 logo=logo.replace("_2.mp3",".ts")
\r
154 logo=logo.replace(".ts.tsmix",".ts")
\r
155 logo=logo.replace(".ts.b25",".ts")
\r
156 logo=logo.replace(".sa.avi",".ts")
\r
157 logo=logo.replace(".m2v",".ts")
\r
158 logo=logo.replace(".avi",".ts")
\r
159 logo=logo.replace(".mkv",".ts")
\r
160 logo=logo.replace(".wav",".ts")
\r
161 logo=logo.replace(".mp4",".ts")
\r
162 logo=logo.replace(".mp3",".ts")
\r
163 logo=logo.replace(".aac",".ts")
\r
164 logo=logo.replace(".srt",".ts")
\r
165 logo=logo.replace(".264",".ts")
\r
166 logo=logo.replace(".ts","")
\r
168 def addLog(tspath,txt,log_title,maxtextlength=1500):
\r
169 logo=getLogTitle(tspath)+".log"
\r
173 if s>maxtextlength*2 and maxtextlength>0:
\r
174 stxt=txt[0:maxtextlength]+"\n\n(ry..)\n"
\r
175 st=txt[s-maxtextlength:].find("\n")
\r
177 stxt=stxt+txt[s-1500+st:]
\r
180 txtw= datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
\r
181 txtw=txtw+"\n####"+log_title+"####\n"+stxt
\r
182 f.write(txtw.encode('utf-8'))
\r
184 def addLogAll(tspath,txt,log_title,logpath):
\r
189 txtw= datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
\r
190 txtw=txtw+"\n####"+log_title+"####\n"+stxt
\r
191 f.write(txtw.encode('utf-8'))
\r