OSDN Git Service

stop using trunk or dist directory in rec10 project.
[rec10/rec10-git.git] / dist / trunk / rec10 / guess.py
diff --git a/dist/trunk/rec10/guess.py b/dist/trunk/rec10/guess.py
deleted file mode 100755 (executable)
index cad73e1..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-#!/usr/bin/python
-# coding: UTF-8
-# Rec10 TS Recording Tools
-# Copyright (C) 2009-2011 Yukikaze
-
-import os
-import os.path
-import re
-import time
-import os
-import datetime
-import n_gram
-import recdblist
-import zenhan
-import auto_move
-
-def detSeriesNum(execpath):
-    files=os.listdir(execpath)
-    ss={}
-    for file in files:
-        ftitle=os.path.splitext(file)
-        fname=ftitle[0]
-        fname=zenhan.toHankaku(unicode(fname,"utf-8"))
-        nt=detNameType(fname, execpath)
-        st=nt['title']
-        if not ss.has_key(st):
-            ss[st]={}
-        ss[st][nt['num']]=ftitle
-        print ss
-    return ss
-def detDeltaNum(title,movepath):
-    """
-        #番組の話数を推測する。
-    """
-    files=os.listdir(movepath)
-    ff=[]
-    maxnum=0
-    for file in files:
-        recdblist.printutf8(unicode(file,'utf-8'),verbose_level=800)
-        file=os.path.join(movepath,file)
-        if os.path.isfile(file):
-            name=os.path.splitext(os.path.split(file)[1])
-            name=name[0]
-            name=zenhan.toHankaku(unicode(name,'utf-8'))
-            p1=detNameType(name,movepath)
-            #recdblist.printutf8(p1['title']+" "+str(p1['num']))
-            time1=time.localtime(os.path.getmtime(file))
-            time1=datetime.datetime.fromtimestamp(os.path.getmtime(file))
-            if p1['num']!=-1:
-                ff.append([p1['num'],p1['title'],time1])
-                if maxnum<p1['num']+1:
-                    maxnum=p1['num']+1
-    return detMultiDeltaDays(ff)
-def detMultiDeltaDays(num_with_title_with_dates):
-    maxnum=0
-    for ft in num_with_title_with_dates:
-        if maxnum<ft[0]+1:
-            maxnum=ft[0]+1
-    ff=num_with_title_with_dates
-    f3=[None]*maxnum
-    fret={}
-    for i in range(0, maxnum, 1):
-        f3[i]=[]
-    for f2 in ff:
-        f3[f2[0]].append(f2)
-    for i in range(maxnum):
-        for j in range(i+1,maxnum,1):
-            for ft3 in f3[i]:
-                for ft4 in f3[j]:
-                    for gdd in detSingleDeltaDay(i, ft3[2], j, ft4[2]):
-                        #print gdd
-                        if fret.get(gdd[0])!=None:
-                            #print fret
-                            fret[gdd[0]]=fret[gdd[0]]+gdd[1]
-                        else:
-                            fret[gdd[0]]=gdd[1]
-    #print fret
-    maxk=0
-    maxp=0
-    for i in range(maxnum):
-        if fret.get(i)!=None:
-            if maxp<fret[i]:
-                maxk=i
-                maxp=fret[i]
-    #print maxk
-    #print maxp
-    return maxk
-def detSingleDeltaDay(num1,date1,num2,date2):
-    dd=date1-date2
-    if date1<date2:
-        dd=date2-date1
-    dn=dd.days
-    d=num2-num1
-    if d<0:
-        d=-1*d
-    dp=dd+datetime.timedelta(hours=6)
-    dp=dp.days
-    dm=dd-datetime.timedelta(hours=6)
-    dm=dm.days
-    ret=[]
-    if dn%d*2>d:
-        dn=dn+d
-    if dm%d*2>d:
-        dm=dm+d
-    if dp%d*2>d:
-        dp=dp+d
-    #recdblist.printutf8(str(d)+":"+str(dn))
-    if dp!=dn:
-        ret.append([dn/d,60])
-        ret.append([dp/d,40])
-    elif dm!=dn:
-        ret.append([dn/d,60])
-        ret.append([dm/d,40])
-    else:
-        ret.append([dn/d,100])
-    return ret
-def detNameType(title,path):
-    """
-    type A ---title#<number>
-    type B ---title#<number>subtitle
-    type C ---title subtitle
-    type D ---title(without number)
-    type Aj ---title第<number>話
-    path --search reflexively
-    """
-    new=0
-    if re.search(u"[新]",title) or re.search(u" 新",title):
-        title=title.replace(u"[新]","")
-        title=title.replace(u" 新","")
-        new=1
-    recdblist.printutf8(title,verbose_level=800)
-    title=auto_move.getTitle(title)##titleから日時を除く
-    title=title.replace(u"無料≫","")
-    #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)
-    rAj=re.compile("(.+)第(\d*)話\s*\Z")
-    tAj=rAj.match(title)
-    ret={'title':"",'type':"",'num':0,'subtitle':"",'folder':""}
-    if tA:
-        #recdblist.printutf8("typeA")
-        #recdblist.printutf8("title="+tA.group(1))
-        #recdblist.printutf8("num="+tA.group(2))
-        ret['type']="A"
-        ret['title']=tA.group(1).replace(" ","")
-        ret['num']=int(tA.group(2))
-        ret['folder']=searchFolder(tA.group(1),unicode(path,'utf-8'))
-    if tAj:
-        #recdblist.printutf8("typeA")
-        #recdblist.printutf8("title="+tAj.group(1))
-        #recdblist.printutf8("num="+tAj.group(2))
-        ret['type']="Aj"
-        ret['title']=tAj.group(1).replace(" ","")
-        ret['num']=int(tAj.group(2))
-        ret['folder']=searchFolder(tAj.group(1),unicode(path,'utf-8'))
-    elif tB:
-        #recdblist.printutf8("typeB")
-        #recdblist.printutf8("title="+tB.group(1))
-        #recdblist.printutf8("num="+tB.group(2))
-        #recdblist.printutf8("subtitle="+tB.group(3))
-        ret['type']="B"
-        ret['title']=tB.group(1).replace(" ","")
-        ret['num']=int(tB.group(2))
-        ret['folder']=searchFolder(tB.group(1),unicode(path,'utf-8'))
-        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,unicode(path,'utf-8'))
-            #recdblist.printutf8(tt)
-            #print ft1
-            if ft1!="":
-                #recdblist.printutf8(rt)
-                #recdblist.printutf8(ft1[0]+" : "+str(ft1[1]))
-                if ft1[1]>rt[1]:
-                    rt[0]=tt
-                    rt[1]=ft1[1]
-                    rt[2]=ft1[0]
-                    #recdblist.printutf8(rt)
-        #recdblist.printutf8("title="+rt[0][1:]+"/")
-        #recdblist.printutf8("subtitle = "+title.replace(rt[0][1:],"")[1:])
-        ret['title']=rt[0][1:].replace(" ","")
-        ret['num']=-1
-        ret['folder']=rt[2]
-        ret['subtitle']=title.replace(rt[0][1:],"")[1:]
-        if ret['subtitle'].replace(" ","")=="":
-            ret['type']="D"
-        else:
-            ret['type']="C"
-    if new==1:
-        ret['num']=1
-    return ret
-def searchFolder(title,path,threshold=500):
-    """
-    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)
-        ntitle=auto_move.getTitle(title)
-        ncmpp=auto_move.getTitle(cmpp)
-        p=n_gram.trigram(ntitle,ncmpp)
-        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]>threshold:
-            return ngram[0][1]
-        else:
-            return ""
-    else:
-        return ""
\ No newline at end of file