OSDN Git Service

sys.setdefaultencoding('UTF-8') required version.
[rec10/rec10-git.git] / rec10 / branches / 0.9.0 / src / auto_process.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
5 import os
6 import glob
7 import time
8
9 import recdb
10 import rec10d
11 import os.path
12 import tv2mp4
13 def Update_to_MP4(path):
14     """
15     録画一時フォルダ内mp4ファイルを検索
16     """
17     avilist = glob.glob(path + "/*.avi")
18     mkvlist = glob.glob(path+"/*.mkv")
19     avilist=avilist+mkvlist
20     #print avilist
21     for avif in avilist:
22         if avif.rfind("sa.avi")==-1:
23             ##b25f is title.ts.b25  avi is title.avi
24             dir = os.path.split(avif)[0]
25             title = os.path.split(avif)[1]
26             title = title.replace(".avi", "")
27             title = title.replace(".mkv", "")
28             avipath = os.path.join(dir, title + ".avi")
29             mkvpath = os.path.join(dir, title + ".mkv")
30             mp4path = os.path.join(dir, title + ".mp4")
31             if not os.path.exists(mp4path):
32                 if os.path.exists(avipath):
33                     avidtime = int(time.time()-os.path.getmtime(avipath))
34                     if avidtime>300:
35                         if os.path.exists(mkvpath):
36                             mkvdtime = int(time.time()-os.path.getmtime(mkvpath))
37                             if mkvdtime>300:
38                                 print mkvpath+":"+mp4path
39                                 tv2mp4.mkv2mp4(mkvpath,mp4path)
40                             else:
41                                 print avipath+":"+mp4path
42                                 tv2mp4.avi2mp4(avipath,mp4path)
43                         else:
44                             print avipath+":"+mp4path
45                             tv2mp4.avi2mp4(avipath,mp4path)
46                 else:
47                     if not os.path.exists(avipath):
48                         if os.path.exists(mkvpath):
49                             mkvdtime = int(time.time()-os.path.getmtime(mkvpath))
50                             if mkvdtime>300:
51                                 print mkvpath+":"+mp4path
52                                 tv2mp4.mkv2mp4(mkvpath,mp4path)
53 def auto_check(path):
54     avilist = glob.glob(path + "/*.avi")
55     mkvlist = glob.glob(path+"/*.mkv")
56     tslist = glob.glob(path+"/*.ts")
57     b25list = glob.glob(path+"/*.ts.b25")
58     filelist=avilist+mkvlist+tslist+b25list
59     rec10d.rec10db.new_auto_proc()
60     for fn in filelist:
61         if fn.rfind("sa.avi")==-1:
62             dir = os.path.split(fn)[0]
63             file = os.path.split(fn)[1]
64             title = os.path.splitext(file)[0]
65             ext = os.path.splitext(file)[1]
66             if ext == "b25":
67                 title=title.replace(".ts","")
68             proc=check_process(dir, title)
69             if proc=="b25":
70                 rec10d.rec10db.add_auto_proc(recdb.REC_AUTO_SUGGEST_DECODE,title)
71             elif proc=="ts":
72                 rec10d.rec10db.add_auto_proc(recdb.REC_AUTO_SUGGEST_ENCODE,title)
73             elif proc =="avi":
74                 rec10d.rec10db.add_auto_proc(recdb.REC_AUTO_SUGGEST_AVI2MP4,title)
75             elif proc =="mkv":
76                 rec10d.rec10db.add_auto_proc(recdb.REC_AUTO_SUGGEST_MKV2MP4,title)
77 """
78     処理がどの段階まで言ったのかを調査し返す。
79     return
80     recording
81     b25
82     b25decoding
83     tssplitting
84     ts
85     encoding
86     avi
87     mp4making
88     mp4
89 """
90 def check_process(path,title):
91     path1 = os.path.join(path,title+".mp4")
92     if os.path.exists(path1):
93         if int(time.time()-os.path.getmtime(path1))>300:
94             return "mp4"
95         else:
96             return "mp4making"
97     elif os.path.exists(os.path.join(path,title+".avi")):
98         if int(time.time()-os.path.getmtime(os.path.join(path,title+".avi")))>300:
99             return "avi"
100         else:
101             return "encoding"
102     elif os.path.exists(os.path.join(path,title+".ts")):
103         if int(time.time()-os.path.getmtime(os.path.join(path,title+".ts")))>300:
104             return "ts"
105         else:
106             return "tssplitting"
107     elif os.path.exists(os.path.join(path,title+".sa.avi")):
108         if int(time.time()-os.path.getmtime(os.path.join(path,title+".sa.avi")))>300:
109             return "ts"
110         else:
111             return "tssplitting"
112     elif os.path.exists(os.path.join(path,title+".ts.b25")):
113         if int(time.time()-os.path.getmtime(os.path.join(path,title+".ts.b25")))>300:
114             return "b25"
115         else:
116             return "recording"
117     
118