-recordedpath=unicode(configreader.getpath("recorded"),'utf-8')
-recpath=unicode(configreader.getpath("recpath"),'utf-8')
-def search_b25(path):
- """
- 録画フォルダを検索し、各QUEの実行状況を表示する
- """
- b25list = glob.glob(path + "/*.b25")
- for b25f in b25list:
- ##b25f is title.ts.b25 avi is title.avi
- dir = os.path.split(b25f)[0]
- title = os.path.split(b25f)[1]
- title = title.replace(".ts.b25", "")
- avipath = os.path.join(dir, title + ".avi")
- mp4path = os.path.join(dir, title + ".mp4")
- tspath = os.path.join(dir, title + ".ts")
- b25f = b25f.replace(".ts.b25", ".avi")
- mode = "ts"
- if os.path.isfile(tspath):##tsファイルが存在している
- dtime = time.time()-os.path.getmtime(tspath)
- dtime = int(dtime)
- if dtime > 120:
- if os.path.getsize(tspath) > 1 * 1000 * 1000:##最終更新から22分以上経過かつ1MB以上
- mode = "avi"
- else:
- mode = "tsmiss"
- else:
- mode = "ts"
- if os.path.isfile(mp4path):##tsファイルが存在している
- dtime = time.time()-os.path.getmtime(mkvpath)
- dtime = int(dtime)
- if dtime > 120:
- if os.path.getsize(avipath) > 1 * 1000 * 1000:##最終更新から22分以上経過かつ1MB以上
- mode = "fin"
- else:
- mode = "avimiss"
- else:
- mode = "avi"
- recdblist.printutf8(title + ":" + mode)
-def search_avi(temppath,recpath):
- """
- 録画一時フォルダ内のaviファイルを検索
- """
- avilist = glob.glob(temppath + "/*.avi")
- 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(".avi", "")
- avipath = os.path.join(dir, title + ".avi")
- dtime = time.time()-os.path.getmtime(avipath)
- dtime = int(dtime)
- if dtime > 300:
- if veryfySize(avipath):
- ret.append(title)
- return ret
-def search_mkv(temppath,recpath):
- """
- 録画一時フォルダ内mkvファイルを検索
- """
- avilist = glob.glob(temppath + "/*.mkv")
- 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(".mkv", "")
- avipath = os.path.join(dir, title + ".mkv")
- dtime = time.time()-os.path.getmtime(avipath)
- dtime = int(dtime)
- if dtime > 300:
- if veryfySize(avipath):
- ret.append(title)
- return ret
-def search_mp4(temppath,recpath):
- """
- 録画一時フォルダ内mp4ファイルを検索
- """
- avilist = glob.glob(temppath + "/*.mp4")
- 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(".mp4", "")
- avipath = os.path.join(dir, title + ".mp4")
- dtime = time.time()-os.path.getmtime(avipath)
- dtime = int(dtime)
- if dtime > 300:
- if veryfySize(avipath):
- ret.append(title)
- return ret
-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+[458,916]#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
- return ret
-def searchFolder(title,path):
- """
- titleにマッチするフォルダを探し出す。
- """
- folderpath=os.listdir(path)
- lfpath=[]
- ngram=[]
- for ft in folderpath:
- fullpath=os.path.join(path.encode('utf-8'), ft)
- if os.path.isdir(fullpath):
- lfpath.append(fullpath)
- ftt=os.listdir(fullpath)
- if len(ftt)>0:
- for ft2 in ftt:
- try:
- folderpath.append(os.path.join(fullpath, ft2))
- except Exception, inst:
- #print type(inst)
- #print inst
- ""
- else:
- lfpath.append(fullpath)
- for dirp in lfpath:
- cmpp=""
- appp=""
- ntitle=title
- if os.path.isdir(dirp):
- cmpp=os.path.dirname(dirp)
- appp=dirp
- else:
- cmpp=os.path.basename(dirp)
- appp=os.path.dirname(dirp)
- p=n_gram.trigram(ntitle,cmpp)
- if p>0:
- ngram.append((p,appp))
- ngram=list(set(ngram))
- ngram.sort()
- ngram.reverse()
- if len(ngram)>0:
- #recdblist.printutf8(title + ngram[0][1] + " : "+str(ngram[0][0]))
- if ngram[0][0]>400:
- return ngram[0][1]
- else:
- return ""
- else:
- return ""
-def execMove(title,temppath,recpath):
- srcpath=os.path.join(temppath,title+".mp4")
- #desttitle=destName(title, temppath, recpath)
-
- sf=searchFolder(title, recpath)
- if sf!="":
- destpath=os.path.join(sf,destNameMP4(title, temppath, sf)+".mp4")
- #os.path.join(sf,desttitle+".mkv")
- #recdblist.printutf8(srcpath)
- #recdblist.printutf8(destpath)
- recdblist.printutf8("moving now..")
- recdblist.printutf8(srcpath+" : "+destpath)
- shutil.move(srcpath, destpath)
- #shutil.copy(srcpath, destpath)
- delpath=[os.path.join(temppath,title+".ts")]
- delpath.append(os.path.join(temppath,title+".avi"))
- 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"))
- for dp in delpath:
- try:
- os.remove(dp)
- ""
- except:
- ""
-def destName(title,temppath,recpath):
- """
- titleから移動先に作るべきファイル名を作り出す。
- """
- dstpath=os.path.join(recpath,title+".avi")
- srcpath=os.path.join(temppath,title+".avi")
- if os.path.exists(dstpath):
- gmtime=time.gmtime(os.path.getmtime(srcpath))
- times=time.strftime("%y%m%d",gmtime)
- title=title+"_"+times
- return title
-def destNameMKV(title,temppath,recpath):
- """
- titleから移動先に作るべきファイル名を作り出す。
- """
- dstpath=os.path.join(recpath,title+".mkv")
- srcpath=os.path.join(temppath,title+".mkv")
- if os.path.exists(dstpath):
- gmtime=time.gmtime(os.path.getmtime(srcpath))
- times=time.strftime("%y%m%d",gmtime)
- title=title+"_"+times
- return title
-def destNameMP4(title,temppath,recpath):
- """
- titleから移動先に作るべきファイル名を作り出す。
- """
- dstpath=os.path.join(recpath,title+".mp4")
- srcpath=os.path.join(temppath,title+".mp4")
- if os.path.exists(dstpath):
- gmtime=time.gmtime(os.path.getmtime(srcpath))
- times=time.strftime("%y%m%d",gmtime)
- title=title+"_"+times
- return title
-def detName(path,title):
- """
- type A ---title#<number>
- type B ---title#<number>subtitle
- type C ---title subtitle
- type D ---title(without number)
- """
- #if re.match("#\d\s[0,10]\z|#[0-9]\s[0,10]\z", title)
- # recdblist.printutf8("typeA")
- #elif re.match("#\d\s[0,10].|#[0-9]\s[0,10].", title)
- # recdblist.printutf8("typeB")