return ""
def execMove(title,temppath,recpath):
srcpath=os.path.join(temppath,title+".mkv")
- desttitle=destName(title, temppath, recpath)
+ #desttitle=destName(title, temppath, recpath)
+
sf=searchFolder(title, recpath)
if sf!="":
- destpath=os.path.join(sf,desttitle+".mkv")
+ destpath=os.path.join(sf,destNameMKV(title, temppath, sf)+".mkv")
+ #os.path.join(sf,desttitle+".mkv")
#print srcpath
#print destpath
+ print "moving now.."
+ print srcpath+" : "+destpath
shutil.move(srcpath, destpath)
#shutil.copy(srcpath, destpath)
delpath=[os.path.join(temppath,title+".ts")]
--- /dev/null
+import time
+import os.path
+#!/usr/bin/python
+# coding: UTF-8
+# Rec10 TS Recording Tools
+# Copyright (C) 2009 Yukikaze
+
+import os
+import re
+
+import n_gram
+
+def detName(title,path):
+ tt=detNameType(title, path)
+ if tt['type']=="C"or tt['type']=="D":
+ tt['num']=detNum(tt['title'],tt['folder'])
+def detNum(title,movepath):
+ """
+ typeC or typeD
+ #
+ """
+ files=os.listdir(movepath)
+ ff=[]
+ for file in files:
+ if os.path.isfile(file):
+ name=os.path.splitext(os.path.split(file)[1])
+ p1=detNameType(name,movepath)
+ print p1['title']+" "+str(p1['num'])
+ time1=time.localtime(os.path.getmtime(file))
+ ff.append([p1['num'],p1['title'],time1])
+def detNameType(title,path):
+ """
+ type A ---title#<number>
+ type B ---title#<number>subtitle
+ type C ---title subtitle
+ type D ---title(without number)
+ path --search reflexively
+ """
+ #print title
+ #rA=re.compile(".+(?P<title>)#\d(?P<num>)\s[0,10]\z")
+ rA=re.compile("(.+)#(\d*)\s*\Z")
+ tA=rA.match(title)
+ rB=re.compile("(.+)#(\d*)\s*(\D*)")
+ tB=rB.match(title)
+ ret={'title':"",'type':"",'num':0,'subtitle':"",'folder':""}
+ if tA:
+ print "typeA"
+ print "title="+tA.group(1)
+ print "num="+tA.group(2)
+ ret['type']="A"
+ ret['title']=tA.group(1)
+ ret['num']=int(tA.group(2))
+ ret['folder']=searchFolder(tA.group(1),path)
+ elif tB:
+ print "typeB"
+ print "title="+tB.group(1)
+ print "num="+tB.group(2)
+ print "subtitle="+tB.group(3)
+ ret['type']="B"
+ ret['title']=tB.group(1)
+ ret['num']=int(tB.group(2))
+ ret['folder']=searchFolder(tB.group(1),path)
+ ret['subtitle']=tB.group(3)
+ else:#type C or type D
+ #fold=searchFolder(title, path)
+ ts=title.split(" ")
+ tt=""
+ rt=["",0,""]
+ for t in ts:
+ tt=tt+" "+t
+ ft1=searchFolder(tt,path)
+ print tt
+ print ft1
+ if ft1!="":
+ #print rt
+ #print ft1[0]+" : "+str(ft1[1])
+ if ft1[1]>rt[1]:
+ rt[0]=tt
+ rt[1]=ft1[1]
+ rt[2]=ft1[0]
+ #print rt
+ #print "title="+rt[0][1:]+"/"
+ #print "subtitle = "+title.replace(rt[0][1:],"")[1:]
+ ret['title']=rt[0][1:]
+ ret['num']=""
+ ret['folder']=rt[2]
+ ret['subtitle']=title.replace(rt[0][1:],"")[1:]
+ if ret['subtitle'].replace(" ","")=="":
+ ret['type']="D"
+ else:
+ ret['type']="C"
+ return ret
+def searchFolder(title,path):
+ """
+ titleにマッチするフォルダを探し出す。
+ """
+ folderpath=os.listdir(path)
+ lfpath=[]
+ ngram=[]
+ for ft in folderpath:
+ fullpath=os.path.join(path, ft)
+ if os.path.isdir(fullpath):
+ lfpath.append(fullpath)
+ ftt=os.listdir(fullpath)
+ if len(ftt)>0:
+ for ft2 in ftt:
+ folderpath.append(os.path.join(fullpath, ft2))
+ else:
+ lfpath.append(fullpath)
+ for dirp in lfpath:
+ cmpp=""
+ appp=""
+ 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(title.decode("utf-8"),cmpp.decode("utf-8"))
+ if p>0:
+ ngram.append((p,appp))
+ ngram=list(set(ngram))
+ ngram.sort()
+ ngram.reverse()
+ if len(ngram)>0:
+ #print title + ngram[0][1] + " : "+str(ngram[0][0])
+ if ngram[0][0]>300:
+ return [ngram[0][1],ngram[0][0]]
+ else:
+ return ""
+ else:
+ return ""
\ No newline at end of file
from ts2x264 import ts2x264
import tv2avi
import xml2db
+import guess
__author__ = "yukikaze"
__date__ = "$2009/08/01 22:25:13$"
path = str(os.path.dirname(os.path.abspath(__file__))) + "/"
recpath = "/home/ftpusr/ftp-tmp/Recording/"
ftpusr = "/home/ftpusr/ftp-tmp"
+recordedpath = "/home/ftpusr/ftp5/Series-Finish/"
dualtest = ftpusr + "/Encode-Test/DualAudioTest"
if __name__ == "__main__":
#d=time.time()#
#xml2db.xml2db("te18.xml", "te20")
#classify.detNameType("te#st#25")
#classify.detNameType("te#st#32 subtest")
+ guess.detNameType("",recordedpath)
""
\ No newline at end of file