-#!/usr/bin/python\r
-# coding: UTF-8\r
-# Rec10 TS Recording Tools\r
-# Copyright (C) 2009-2011 Yukikaze\r
-\r
-import glob\r
-import os\r
-import os.path\r
-import re\r
-import time\r
-import shutil\r
-import traceback\r
-import sys\r
-\r
-import recdblist\r
-import guess\r
-def getTitle(title):\r
- rT=re.compile("(.+)_(\d+)\Z")\r
- tT=rT.match(title)\r
- rT2=re.compile("(.+)_(.+)_(\d*)\Z")#_(aichi)_2010-02-06T01:59:00.mkv\r
- tT2=rT2.match(title)\r
- rT3=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+:\d+:\d+\Z")#_(aichi)_2010-02-06T01:59:00.mkv\r
- tT3=rT3.match(title)\r
- rT4=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+-\d+-\d+\Z")#_(aichi)_2010-02-06T01-59-00.mkv\r
- tT4=rT4.match(title)\r
- rT5=re.compile("(.+)_(.+)_(.+)\Z")#_(aichi)_2010-02-06T01-59-00.mkv\r
- tT5=rT5.match(title)\r
- ntitle=title\r
- if tT :\r
- ntitle=tT.group(1)\r
- elif tT2:\r
- ntitle=tT2.group(1)\r
- elif tT3:\r
- ntitle=tT3.group(1)\r
- elif tT4:\r
- ntitle=tT4.group(1)\r
- elif tT5:\r
- ntitle=tT5.group(1)\r
- return ntitle\r
-def searchFile(temppath,recpath,ext):\r
- """\r
- 録画一時フォルダ内ファイルを検索\r
- """\r
- avilist = glob.glob(temppath + "/*"+ext)\r
- ret=[]\r
- for avif in avilist:\r
- ##b25f is title.ts.b25 avi is title.avi\r
- dir = os.path.split(avif)[0]\r
- title = os.path.split(avif)[1]\r
- title = title.replace(ext, "")\r
- avipath = os.path.join(dir, title + ext)\r
- if os.path.exists(avipath):\r
- dtime = time.time()-os.path.getmtime(avipath)\r
- dtime = int(dtime)\r
- if dtime > 300:\r
- if veryfySize(avipath):\r
- ret.append(title)\r
- return ret\r
-def getMoveDestpath(title,temppath,recpath,ext):\r
- dstpath=os.path.join(recpath,title+ext)\r
- srcpath=os.path.join(temppath,title+ext)\r
- if os.path.exists(dstpath):\r
- if not os.path.getsize(dstpath) == os.path.getsize(srcpath):\r
- gmtime=time.gmtime(os.path.getmtime(srcpath))\r
- iff=""\r
- try:\r
- iff=u"("+configreader.getConfEnv("iff")+u")_"\r
- if iff==u"()_":\r
- iff = u""\r
- except:\r
- iff=""\r
- title=title+u"_"+iff+time.strftime("%Y-%m-%dT%H-%M-%S",gmtime)\r
- else:\r
- recdblist.printutf8(u"同サイズのファイルが存在します")\r
-\r
- return title\r
-def getDelpath(temppath,title,addfp=1):\r
- delpath=[os.path.join(temppath,title+".ts")]\r
- delpath.append(os.path.join(temppath,title+".avi"))\r
- if addfp==1:\r
- delpath.append(os.path.join(temppath,title+".mp4"))\r
- delpath.append(os.path.join(temppath,title+".mkv"))\r
- delpath.append(os.path.join(temppath,title+".m2v"))\r
- delpath.append(os.path.join(temppath,title+".120.avi"))\r
- delpath.append(os.path.join(temppath,title+".timecode.txt"))\r
- delpath.append(os.path.join(temppath,title+".aac"))\r
- delpath.append(os.path.join(temppath,title+".ts.b25"))\r
- delpath.append(os.path.join(temppath,title+".ts.tsmix"))\r
- delpath.append(os.path.join(temppath,title+".ts.log"))\r
- delpath.append(os.path.join(temppath,title+".sa.avi"))\r
- delpath.append(os.path.join(temppath,title+".sa.avi.log"))\r
- delpath.append(os.path.join(temppath,title+".log"))\r
- delpath.append(os.path.join(temppath,title+".log.zip"))\r
- return delpath\r
-def veryfySize(path):\r
- #vsize=[297,497,596,1196]#SD 30m 1h 1.5h 2h\r
- vsize=[245,275,295,591,830]\r
- vsize=vsize+[325,449,560,590,602,690,805,860,1014,1138,1237]\r
- vsize=vsize+[261,535,540,616,740]#HD 30m 1h\r
- #vsize=vsize+[381,895,447]\r
- ret = 0\r
- for size in vsize:\r
- if os.path.getsize(path)>(size-10)*1024*1024 and os.path.getsize(path)<(size+10)*1024*1024:\r
- ret=1\r
- if os.path.getsize(path)>270*1024*1024:\r
- ret=1\r
- return ret\r
-def execMove(title,temppath,recpath,ext,autodel):\r
- srcpath=os.path.join(temppath,title+ext)\r
+#!/usr/bin/python
+# coding: UTF-8
+# Rec10 TS Recording Tools
+# Copyright (C) 2009-2011 Yukikaze
+
+import glob
+import os
+import os.path
+import re
+import time
+import shutil
+import traceback
+import sys
+
+import recdblist
+import guess
+def getTitle(title):
+ rT=re.compile("(.+)_(\d+)\Z")
+ tT=rT.match(title)
+ rT2=re.compile("(.+)_(.+)_(\d*)\Z")#_(aichi)_2010-02-06T01:59:00.mkv
+ tT2=rT2.match(title)
+ rT3=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+:\d+:\d+\Z")#_(aichi)_2010-02-06T01:59:00.mkv
+ tT3=rT3.match(title)
+ rT4=re.compile("(.+)_(.+)_\d+-\d+-\d+T\d+-\d+-\d+\Z")#_(aichi)_2010-02-06T01-59-00.mkv
+ tT4=rT4.match(title)
+ rT5=re.compile("(.+)_(.+)_(.+)\Z")#_(aichi)_2010-02-06T01-59-00.mkv
+ tT5=rT5.match(title)
+ ntitle=title
+ if tT :
+ ntitle=tT.group(1)
+ elif tT2:
+ ntitle=tT2.group(1)
+ elif tT3:
+ ntitle=tT3.group(1)
+ elif tT4:
+ ntitle=tT4.group(1)
+ elif tT5:
+ ntitle=tT5.group(1)
+ return ntitle
+def searchFile(temppath,recpath,ext):
+ """
+ 録画一時フォルダ内ファイルを検索
+ """
+ avilist = glob.glob(temppath + "/*"+ext)
+ ret=[]
+ for avif in avilist:
+ ##b25f is title.ts.b25 avi is title.avi
+ dir = os.path.split(avif)[0]
+ title = os.path.split(avif)[1]
+ title = title.replace(ext, "")
+ avipath = os.path.join(dir, title + ext)
+ if os.path.exists(avipath):
+ dtime = time.time()-os.path.getmtime(avipath)
+ dtime = int(dtime)
+ if dtime > 300:
+ if veryfySize(avipath):
+ ret.append(title)
+ return ret
+def getMoveDestpath(title,temppath,recpath,ext):
+ dstpath=os.path.join(recpath,title+ext)
+ srcpath=os.path.join(temppath,title+ext)
+ if os.path.exists(dstpath):
+ if not os.path.getsize(dstpath) == os.path.getsize(srcpath):
+ gmtime=time.gmtime(os.path.getmtime(srcpath))
+ iff=""
+ try:
+ iff=u"("+configreader.getConfEnv("iff")+u")_"
+ if iff==u"()_":
+ iff = u""
+ except:
+ iff=""
+ title=title+u"_"+iff+time.strftime("%Y-%m-%dT%H-%M-%S",gmtime)
+ else:
+ recdblist.printutf8(u"同サイズのファイルが存在します")
+
+ return title
+def getDelpath(temppath,title,addfp=1):
+ delpath=[os.path.join(temppath,title+".ts")]
+ delpath.append(os.path.join(temppath,title+".avi"))
+ if addfp==1:
+ delpath.append(os.path.join(temppath,title+".mp4"))
+ delpath.append(os.path.join(temppath,title+".mkv"))
+ delpath.append(os.path.join(temppath,title+".m2v"))
+ delpath.append(os.path.join(temppath,title+".120.avi"))
+ delpath.append(os.path.join(temppath,title+".timecode.txt"))
+ delpath.append(os.path.join(temppath,title+".aac"))
+ delpath.append(os.path.join(temppath,title+".ts.b25"))
+ delpath.append(os.path.join(temppath,title+".ts.tsmix"))
+ delpath.append(os.path.join(temppath,title+".ts.log"))
+ delpath.append(os.path.join(temppath,title+".sa.avi"))
+ delpath.append(os.path.join(temppath,title+".sa.avi.log"))
+ delpath.append(os.path.join(temppath,title+".log"))
+ delpath.append(os.path.join(temppath,title+".log.zip"))
+ return delpath
+def veryfySize(path):
+ #vsize=[297,497,596,1196]#SD 30m 1h 1.5h 2h
+ vsize=[245,275,295,591,830]
+ vsize=vsize+[325,449,560,590,602,690,805,860,1014,1138,1237]
+ vsize=vsize+[261,535,540,616,740]#HD 30m 1h
+ #vsize=vsize+[381,895,447]
+ ret = 0
+ for size in vsize:
+ if os.path.getsize(path)>(size-10)*1024*1024 and os.path.getsize(path)<(size+10)*1024*1024:
+ ret=1
+ if os.path.getsize(path)>270*1024*1024:
+ ret=1
+ return ret
+def execMove(title,temppath,recpath,ext,autodel):
+ srcpath=os.path.join(temppath,title+ext)
# patched. orig: searchFolder(title, recpath)
- sf=guess.searchFolder(title, recpath,200)\r
- if sf!="":\r
- destpath=os.path.join(sf,getMoveDestpath(title, temppath, sf, ext)+ext)\r
- if os.path.exists(destpath):\r
- if os.path.getsize(destpath) == os.path.getsize(srcpath):\r
- recdblist.printutf8(u"同名同サイズのファイルが存在します。")\r
- if autodel==1:\r
- recdblist.printutf8(u"関連ファイルを削除します。")\r
- delpath=getDelpath(temppath, title)\r
- for dp in delpath:\r
- try:\r
- os.remove(dp)\r
- ""\r
- except:\r
- ""\r
- else:\r
- recdblist.printutf8("moving now..")\r
- recdblist.printutf8(srcpath+" : "+destpath)\r
- print srcpath\r
- shutil.copy(srcpath, destpath)\r
- #shutil.copy(srcpath, destpath)\r
- if autodel==1:\r
- delpath=getDelpath(temppath, title)\r
- for dp in delpath:\r
- try:\r
- os.remove(dp)\r
- ""\r
- except:\r
+ sf=guess.searchFolder(title, recpath,200)
+ if sf!="":
+ destpath=os.path.join(sf,getMoveDestpath(title, temppath, sf, ext)+ext)
+ if os.path.exists(destpath):
+ if os.path.getsize(destpath) == os.path.getsize(srcpath):
+ recdblist.printutf8(u"同名同サイズのファイルが存在します。")
+ if autodel==1:
+ recdblist.printutf8(u"関連ファイルを削除します。")
+ delpath=getDelpath(temppath, title)
+ for dp in delpath:
+ try:
+ os.remove(dp)
+ ""
+ except:
+ ""
+ else:
+ recdblist.printutf8("moving now..")
+ recdblist.printutf8(srcpath+" : "+destpath)
+ print srcpath
+ shutil.copy(srcpath, destpath)
+ #shutil.copy(srcpath, destpath)
+ if autodel==1:
+ delpath=getDelpath(temppath, title)
+ for dp in delpath:
+ try:
+ os.remove(dp)
+ ""
+ except:
""
else:
recdblist.printutf8("sf not fonud @ execMove",verbose_level=100)
-\r
-def execDelete(title,temppath):\r
- delpath=getDelpath(temppath, title,0)\r
- recdblist.printutf8(title+u" 関連の一時ファイルを削除します")\r
- for dp in delpath:\r
- try:\r
- if os.path.exists(dp):\r
- recdblist.printutf8(dp)\r
- os.remove(dp)\r
- except Exception, inst:\r
- print type(inst)\r
- print str(inst)\r
- print traceback.print_exc(file=sys.stdout)\r
+
+def execDelete(title,temppath):
+ delpath=getDelpath(temppath, title,0)
+ recdblist.printutf8(title+u" 関連の一時ファイルを削除します")
+ for dp in delpath:
+ try:
+ if os.path.exists(dp):
+ recdblist.printutf8(dp)
+ os.remove(dp)
+ except Exception, inst:
+ print type(inst)
+ print str(inst)
+ print traceback.print_exc(file=sys.stdout)