Ejemplo n.º 1
0
    def splitArtistDelim(self, artist, delval):
        names = {}
        if delval not in artist:
            return None

        for val in artist.split(delval):
            val = val.strip()

            if self.discdata is not None and len(self.discArtists) > 0:
                retval = self.discdata.get(val)
                if retval is not None:
                    names[val] = retval
                else:
                    retval = findNearest(val, self.discArtists, 1, self.cutoff)
                    if len(retval) == 0:
                        names[val] = None
                    else:
                        names[val] = retval
            else:
                names[val] = [-1]

        if len(names) == 0:
            return None

        if any(names.values()) is False:
            return None

        return names
Ejemplo n.º 2
0
    def combineResults(self, allArtists, knownArtists, debug=False):
        results = {}
        if debug:
            print("Combining Results")
            print("All Artists:   {0}".format(allArtists))
            print("Known Artists: {0}".format(knownArtists))
        if self.discdata is not None and len(self.discArtists) > 0:
            for name in knownArtists:
                retval = self.discdata.get(name)
                if self.exact is False:
                    if retval is None:
                        retval = findNearest(name, self.discArtists, 1,
                                             self.cutoff)
                        if len(retval) == 1:
                            retval = self.discdata.get(retval[0])
                        else:
                            retval = None

                results[name] = retval
        else:
            for artist in allArtists.keys():
                if self.masks.get(artist) is not None:
                    artist = self.masks[artist]
                results[artist] = ['?']
            #results = {k: ['?'] for k,v in allArtists.items()}
        return results
Ejemplo n.º 3
0
 def searchMyMovies(self, movie, year, cutoff=0.8, num=3):
     moviesMine = self.getMyMovies()
     key = "{0} [{1}]".format(movie, year)
     result     = findNearest(key, moviesMine.keys(), num, 0.95)
     if len(result) > 0:
         print("{0}  --->  {1}".format(movie, result))
         location = moviesMine[result[0]]
         print("moveFile(src=\"{0}\", dst=\"{1}\", debug=True)\n".format(location, location))
         return
     else:
         key = "{0} [{1}]".format(movie, year)
         result = findNearest(key, moviesMine.keys(), num, cutoff)
         if len(result) > 0:
             print("{0}  --->  {1}".format(movie, result))
             location = moviesMine[result[0]]
             print("moveFile(src=\"{0}\", dst=\"{1}\", debug=True)\n".format(location, location))
             return
     print("No match found")
     return
Ejemplo n.º 4
0
 def searchBoxOfficeMojo(self, movie, debug=False):
     savename = setFile(self.getResultsDir(), "{0}.json".format(self.name))
     data = getFile(savename)
     print("Nearest matches for {0}".format(movie))
     for year, yearlyMovies in data.items():
         result = findNearest(movie, [x[0] for x in yearlyMovies],
                              num=1,
                              cutoff=0.9)
         if len(result) > 0:
             values = [(name, value) for name, value in yearlyMovies
                       if name in result]
             print("{0: <6}{1}".format(year, values))
Ejemplo n.º 5
0
 def findPlayerTeam(self, playText, playersDict, useNearest=None, debug=False):
     if playText is None:
         return None
         
     for name,pos in playersDict.items():
         if name in playText:
             if debug:
                 print("\t\tEXACT MATCH: {0} <-- {1}".format(pos, name))
             return [name,pos]
     
     if useNearest is not None:
         pos = findNearest(item=playText, ilist=playersDict.keys(), cutoff=useNearest, num=1)
         if len(pos) == 0:
             return None
         else:
             name = pos[0]
             pos  = playersDict[name]
             if debug:
                 print("\t\tNEAR MATCH: {0} <-- {1}".format(name, playText))
             return [name,pos]
     
     return None
Ejemplo n.º 6
0
    def getArtistNames(self, artist, debug=False):
        if debug:
            print("Getting Artist Names For {0}".format(artist))
        return self.newMethod(artist, debug)

        if self.nDelims(artist) == 0:
            names = {artist: []}
            return names

        if self.discdata is not None and len(self.discArtists) > 0:
            retval = self.discdata.get(artist)
            if retval is not None:
                return {artist: retval}
            else:
                retval = findNearest(artist, self.discArtists, 1, self.cutoff)
                if len(retval) == 1:
                    return {artist: self.discdata.get(retval[0])}

        names = {artist: None}
        names = self.splitArtist(names)
        names = self.unravelDict(names)
        names = self.unravelDict(names)
        return names
Ejemplo n.º 7
0
    def mergeMovies(self, toFile=False, movie=None, source=None, year=None):
        combinedMovies = self.getCombinedMoviesByYear()
        
        myMovies       = self.getMyMoviesByYear()
        renames        = {}
        filename = setFile(self.getResultsDir(), "mymovies.dat")
        
        
        yearcut = year
        sourcecut = source
        moviecut = movie

        pYear = None
        yearRenames = {}
        
        locations = {}
        toGet = {}
        

        years = sorted(combinedMovies.keys())
        for year in years:
            locations[year] = {}
            movies = combinedMovies[year]
            #print("Analyzing {0} movies from {1}".format(len(movies), year))

            for name,source in movies.items():
                key = "{0} [{1}]".format(name, year)
                locations[year][name] = [None, source]
                
                for yearval in [year+y for y in [0,1,-1,2,-2]]:
                    try:
                        location = myMovies[yearval][name]
                        break
                    except:
                        location = None

                exact    = False
                if location is not None:
                    location = u'\u2713'
                    exact    = True
                else:
                    nearbyMovies = []
                    for yearval in [year+y for y in [0,1,-1]]:
                        yearlyMovies = myMovies.get(yearval)                        
                        if isinstance(yearlyMovies, dict):
                            result = findNearest(name, yearlyMovies.keys(), 1, 0.98)
                            if len(result) > 0:
                                location = u'\u2248'
                                
                                myMovie = myMovies[yearval][result[0]]
                                fileInfo = getFileBasics(myMovie)
                                newMovieKey = "{0} [{1}]".format(name, year)
                                yearRenames[myMovie] = join(fileInfo[0], "".join([newMovieKey, fileInfo[2]]))

                    if location is None:
                        for yearval in [year+y for y in [0,1,-1]]:
                            yearlyMovies = myMovies.get(yearval)
                            if isinstance(yearlyMovies, dict):
                                result = findNearest(name, yearlyMovies.keys(), 1, 0.90)
                                if len(result) > 0:
                                    location = u'\u2047'

                                    myMovie = myMovies[yearval][result[0]]
                                    fileInfo = getFileBasics(myMovie)
                                    newMovieKey = "{0} [{1}]".format(name, year)
                                    yearRenames[myMovie] = join(fileInfo[0], "".join([newMovieKey, fileInfo[2]]))

                    if location is None:
                        location = ""
                        
                    if exact is False:
                        if toGet.get(year) is None:
                            toGet[year] = {}
                        toGet[year][name] = source
                
                locations[year][name][0] = location
         
        
        self.setCombinedMovieStatus(locations)
        self.setMissingMovies(toGet)
        self.setMovieRenames(yearRenames)