Ticket #6219: imdb_script3.patch

File imdb_script3.patch, 4.4 KB (added by jyavenard@…, 12 years ago)

Addition fixes

  • imdbpy.py

     
    327327                shortest_found = None
    328328                #print "%d plots found" % len(plots)
    329329                for plot in plots:
    330                         text = plot.split("::")[1]
     330                        #IMDbPY 3.9 doesn't order the content of plot like earlier version of IMDbPY.
     331                        # IMDB 3.6 is : plot_content::author
     332                        # IMDB 3.9 is : author::plot_content
     333                        #So we assume that should one side longer than the other, it's actually where the description is
     334                        splitvalue = plot.split("::")
     335                        if len(splitvalue[0]) > len(splitvalue[1]):
     336                                text = splitvalue[0]
     337                        else:
     338                                text = splitvalue[1]
    331339                        if shortest_found == None or len(text) < len(shortest_found):
    332340                                shortest_found = text
    333341                metadata.plot = shortest_found
     
    397405
    398406        if options.movie_search is not None:
    399407                results = title_search(options.movie_search.decode("utf8"))
    400                 for result in results:
    401                         print "%s:%s (%d)" % (result[0], result[1], result[2])
     408                if results:
     409                        for result in results:
     410                                print "%s:%s (%d)" % (result[0], result[1], result[2])
    402411        elif options.poster_search is not None:
    403412                poster_search(options.poster_search)
    404413        elif options.metadata_search is not None:
  • fetch_poster.py

     
    189189
    190190                if imdb_id is None:
    191191                        return []
    192                 poster_url = imdbpy.find_poster_url(imdb_id)
     192                try:
     193                        poster_url = imdbpy.find_poster_url(imdb_id)
     194                except:
     195                        #IMDb often timesout or return an error 503... try again just in case
     196                        poster_url = imdbpy.find_poster_url(imdb_id)
    193197                if poster_url is not None:
    194198                        filename = poster_url.split("/")[-1]
    195199                        (name, extension) = os.path.splitext(filename)
     
    254258        if len(arguments) != 1:
    255259                if options.imdb_id:
    256260                        # TODO: Fetch the title from IMDb.
    257                         metadata = imdbpy.metadata_search(options.imdb_id)
     261                        try:
     262                                metadata = imdbpy.metadata_search(options.imdb_id)
     263                        except:
     264                                #IMDb often timesout or return an error 503... try again just in case
     265                                metadata = imdbpy.metadata_search(options.imdb_id)
    258266                        title = imdbpy.parse_meta(metadata, "Title")
    259267                else:
    260268                        print "Please give a video title as argument."
  • find_meta.py

     
    153153                        lowest_cutpoint = pos
    154154
    155155        title = title[0:lowest_cutpoint]
     156        # Remove trailing year in the form of "name [year]" or "name (year)"if any
     157        m = re.compile(r"(.*)([\(\[]([0-9]+)[\]\)])$")
     158        found = m.match(title.strip())
     159        if found:
     160                title = found.group(1)
    156161        return title.strip()
    157162
    158163def parse_meta(variable, oldvalue, emptyvalue="", meta=""):
     
    528533
    529534                print_verbose("Title search '%s'" % title)
    530535
    531                 candidates = imdbpy.title_search(title)
     536                try:
     537                        candidates = imdbpy.title_search(title)
     538                except:
     539                        #IMDb often timesout or return an error 503... try again just in case
     540                        candidates = imdbpy.title_search(title)
     541                       
    532542                if candidates is None or len(candidates) == 0:
    533543                        # TODO: Try with the dirname
    534544                        pass
     
    560570
    561571        print_verbose("Querying IMDb for meta data for ID %s..." % imdb_id)
    562572        try:
    563                 meta = imdbpy.fetch_metadata(imdb_id)
     573                try:
     574                        meta = imdbpy.fetch_metadata(imdb_id)
     575                except:
     576                        #IMDb often timesout or return an error 503... try again just in case
     577                        meta = imdbpy.fetch_metadata(imdb_id)
    564578                if meta is not None:
    565579                        if meta.series_episode:
    566580                                title, season, episode = imdbpy.detect_series_title(title)
     
    708722                metadata = load_metadata_file(metadata_target)
    709723
    710724        if imdb_id is not None:
    711                 meta = imdbpy.fetch_metadata(imdb_id)
     725                try:
     726                        meta = imdbpy.fetch_metadata(imdb_id)
     727                except:
     728                        #IMDb often timesout or return an error 503... try again just in case
     729                        meta = imdbpy.fetch_metadata(imdb_id)
    712730                if meta.series_episode:
    713731                        fileName = os.path.basename(pathName)
    714732                        t, season, episode = imdbpy.detect_series_title(fileName)
     
    734752                return
    735753
    736754        if imdb_id is not None:
    737                 metadata = imdbpy.metadata_search(imdb_id)
     755                try:
     756                        metadata = imdbpy.metadata_search(imdb_id)
     757                except:
     758                        #IMDb often timesout or return an error 503... try again just in case
     759                        metadata = imdbpy.metadata_search(imdb_id)
    738760                if metadata is not None:
    739761                        metadata += "IMDb:%s" % imdb_id + "\n"
    740762                        save_metadata(dirName, dirName + "/video.metadata", metadata)