3 # Rec10 TS Recording Tools
\r
4 # Copyright (C) 2009-2011 Yukikaze
\r
17 def getTitle(title):
\r
18 rT=re.compile("(.+)_(\d+)\Z")
\r
20 rT2=re.compile("(.+)_(.+)_(\d*)\Z")#_(aichi)_2010-02-06T01:59:00.mkv
\r
21 tT2=rT2.match(title)
\r
22 rT3=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+:\d+:\d+\Z")#_(aichi)_2010-02-06T01:59:00.mkv
\r
23 tT3=rT3.match(title)
\r
24 rT4=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+-\d+-\d+\Z")#_(aichi)_2010-02-06T01-59-00.mkv
\r
25 tT4=rT4.match(title)
\r
26 rT5=re.compile("(.+)_(.+)_(.+)\Z")#_(aichi)_2010-02-06T01-59-00.mkv
\r
27 tT5=rT5.match(title)
\r
40 def searchFile(temppath,recpath,ext):
\r
44 avilist = glob.glob(temppath + "/*"+ext)
\r
46 for avif in avilist:
\r
47 ##b25f is title.ts.b25 avi is title.avi
\r
48 dir = os.path.split(avif)[0]
\r
49 title = os.path.split(avif)[1]
\r
50 title = title.replace(ext, "")
\r
51 avipath = os.path.join(dir, title + ext)
\r
52 if os.path.exists(avipath):
\r
53 dtime = time.time()-os.path.getmtime(avipath)
\r
56 if veryfySize(avipath):
\r
59 def getMoveDestpath(title,temppath,recpath,ext):
\r
60 dstpath=os.path.join(recpath,title+ext)
\r
61 srcpath=os.path.join(temppath,title+ext)
\r
62 if os.path.exists(dstpath):
\r
63 if not os.path.getsize(dstpath) == os.path.getsize(srcpath):
\r
64 gmtime=time.gmtime(os.path.getmtime(srcpath))
\r
67 iff=u"("+configreader.getConfEnv("iff")+u")_"
\r
72 title=title+u"_"+iff+time.strftime("%Y-%m-%dT%H-%M-%S",gmtime)
\r
74 recdblist.printutf8(u"同サイズのファイルが存在します")
\r
77 def getDelpath(temppath,title,addfp=1):
\r
78 delpath=[os.path.join(temppath,title+".ts")]
\r
79 delpath.append(os.path.join(temppath,title+".avi"))
\r
81 delpath.append(os.path.join(temppath,title+".mp4"))
\r
82 delpath.append(os.path.join(temppath,title+".mkv"))
\r
83 delpath.append(os.path.join(temppath,title+".m2v"))
\r
84 delpath.append(os.path.join(temppath,title+".120.avi"))
\r
85 delpath.append(os.path.join(temppath,title+".timecode.txt"))
\r
86 delpath.append(os.path.join(temppath,title+".aac"))
\r
87 delpath.append(os.path.join(temppath,title+".ts.b25"))
\r
88 delpath.append(os.path.join(temppath,title+".ts.tsmix"))
\r
89 delpath.append(os.path.join(temppath,title+".ts.log"))
\r
90 delpath.append(os.path.join(temppath,title+".sa.avi"))
\r
91 delpath.append(os.path.join(temppath,title+".sa.avi.log"))
\r
92 delpath.append(os.path.join(temppath,title+".log"))
\r
93 delpath.append(os.path.join(temppath,title+".log.zip"))
\r
95 def veryfySize(path):
\r
96 #vsize=[297,497,596,1196]#SD 30m 1h 1.5h 2h
\r
97 vsize=[245,275,295,591,830]
\r
98 vsize=vsize+[325,449,560,590,602,690,805,860,1014,1138,1237]
\r
99 vsize=vsize+[261,535,540,616,740]#HD 30m 1h
\r
100 #vsize=vsize+[381,895,447]
\r
103 if os.path.getsize(path)>(size-10)*1024*1024 and os.path.getsize(path)<(size+10)*1024*1024:
\r
105 if os.path.getsize(path)>270*1024*1024:
\r
108 def execMove(title,temppath,recpath,ext,autodel):
\r
109 srcpath=os.path.join(temppath,title+ext)
\r
110 sf=guess.searchFolder(title, recpath)
\r
112 destpath=os.path.join(sf,getMoveDestpath(title, temppath, sf, ext)+ext)
\r
113 if os.path.exists(destpath):
\r
114 if os.path.getsize(destpath) == os.path.getsize(srcpath):
\r
115 recdblist.printutf8(u"同名同サイズのファイルが存在します。")
\r
117 recdblist.printutf8(u"関連ファイルを削除します。")
\r
118 delpath=getDelpath(temppath, title)
\r
126 recdblist.printutf8("moving now..")
\r
127 recdblist.printutf8(srcpath+" : "+destpath)
\r
129 shutil.copy(srcpath, destpath)
\r
130 #shutil.copy(srcpath, destpath)
\r
132 delpath=getDelpath(temppath, title)
\r
139 def execDelete(title,temppath):
\r
140 delpath=getDelpath(temppath, title,0)
\r
141 recdblist.printutf8(title+u" 関連の一時ファイルを削除します")
\r
144 if os.path.exists(dp):
\r
145 recdblist.printutf8(dp)
\r
147 except Exception, inst:
\r
150 print traceback.print_exc(file=sys.stdout)
\r