Esempio n. 1
0
    def search(self, q, limit = 12):
        ''' Find movie by name '''

        if self.isDisabled():
            return False

        search_string = simplifyString(q)
        cache_key = 'tmdb.cache.%s.%s' % (search_string, limit)
        results = self.getCache(cache_key)

        if not results:
            log.debug('Searching for movie: %s' % q)
            raw = tmdb.search(search_string)

            results = []
            if raw:
                try:
                    nr = 0
                    for movie in raw:

                        results.append(self.parseMovie(movie))

                        nr += 1
                        if nr == limit:
                            break

                    log.info('Found: %s' % [result['titles'][0] + ' (' + str(result['year']) + ')' for result in results])

                    self.setCache(cache_key, results)
                    return results
                except SyntaxError, e:
                    log.error('Failed to parse XML response: %s' % e)
                    return False
Esempio n. 2
0
    def search(self, q, limit=12):
        """ Find movie by name """

        if self.isDisabled():
            return False

        search_string = simplifyString(q)
        cache_key = "tmdb.cache.%s.%s" % (search_string, limit)
        results = self.getCache(cache_key)

        if not results:
            log.debug("Searching for movie: %s", q)
            raw = tmdb.search(search_string)

            results = []
            if raw:
                try:
                    nr = 0

                    for movie in raw:
                        results.append(self.parseMovie(movie))

                        nr += 1
                        if nr == limit:
                            break

                    log.info(
                        "Found: %s", [result["titles"][0] + " (" + str(result["year"]) + ")" for result in results]
                    )

                    self.setCache(cache_key, results)
                    return results
                except SyntaxError, e:
                    log.error("Failed to parse XML response: %s", e)
                    return False
Esempio n. 3
0
    def search(self, q, limit = 12):
        ''' Find movie by name '''

        if self.isDisabled():
            return False

        log.debug('TheMovieDB - Searching for movie: %s' % q)
        raw = tmdb.search(simplifyString(q))

        results = []
        if raw:
            try:
                nr = 0
                for movie in raw:

                    results.append(self.parseMovie(movie))

                    nr += 1
                    if nr == limit:
                        break

                log.info('TheMovieDB - Found: %s' % [result['titles'][0] + ' (' + str(result['year']) + ')' for result in results])
                return results
            except SyntaxError, e:
                log.error('Failed to parse XML response: %s' % e)
                return False
Esempio n. 4
0
    def search(self, q, limit=12):
        ''' Find movie by name '''

        if self.isDisabled():
            return False

        log.debug('TheMovieDB - Searching for movie: %s' % q)
        raw = tmdb.search(simplifyString(q))

        results = []
        if raw:
            try:
                nr = 0
                for movie in raw:

                    results.append(self.parseMovie(movie))

                    nr += 1
                    if nr == limit:
                        break

                log.info('TheMovieDB - Found: %s' % [
                    result['titles'][0] + ' (' + str(result['year']) + ')'
                    for result in results
                ])
                return results
            except SyntaxError, e:
                log.error('Failed to parse XML response: %s' % e)
                return False
Esempio n. 5
0
    def search(self, q, limit=12):
        ''' Find movie by name '''

        if self.isDisabled():
            return False

        search_string = simplifyString(q)
        cache_key = 'tmdb.cache.%s.%s' % (search_string, limit)
        results = self.getCache(cache_key)

        if not results:
            log.debug('Searching for movie: %s', q)

            raw = None
            try:
                raw = tmdb.search(search_string)
            except:
                log.error('Failed searching TMDB for "%s": %s',
                          (search_string, traceback.format_exc()))

            results = []
            if raw:
                try:
                    nr = 0

                    for movie in raw:
                        results.append(self.parseMovie(movie))

                        nr += 1
                        if nr == limit:
                            break
                    for result in results:
                        if 'year' in result:
                            log.info('Found: %s', [
                                result['titles'][0] + ' (' +
                                str(result['year']) + ')'
                            ])
                        else:
                            log.info('Found: %s', [result['titles'][0]])
                    self.setCache(cache_key, results)
                    return results
                except SyntaxError, e:
                    log.error('Failed to parse XML response: %s', e)
                    return False
Esempio n. 6
0
    def search(self, q, limit=12):
        """ Find movie by name """

        if self.isDisabled():
            return False

        search_string = simplifyString(q)
        cache_key = "tmdb.cache.%s.%s" % (search_string, limit)
        results = self.getCache(cache_key)

        if not results:
            log.debug("Searching for movie: %s" % q)
            raw = tmdb.search(search_string)

            results = []
            if raw:
                try:
                    nr = 0

                    # Sort on returned score first when year is in q
                    if re.search("\s\d{4}", q):
                        movies = sorted(raw, key=lambda k: k["score"], reverse=True)
                    else:
                        movies = raw

                    for movie in movies:
                        results.append(self.parseMovie(movie))

                        nr += 1
                        if nr == limit:
                            break

                    log.info(
                        "Found: %s" % [result["titles"][0] + " (" + str(result["year"]) + ")" for result in results]
                    )

                    self.setCache(cache_key, results)
                    return results
                except SyntaxError, e:
                    log.error("Failed to parse XML response: %s" % e)
                    return False
Esempio n. 7
0
    def search(self, q, limit=12):
        """ Find movie by name """

        if self.isDisabled():
            return False

        search_string = q
        cache_key = "tmdb.cache.%s.%s" % (search_string, limit)
        results = self.getCache(cache_key)

        if not results:
            log.debug("Searching for movie: %s", q)

            raw = None
            try:
                raw = tmdb.search(search_string)
            except:
                log.error('Failed searching TMDB for "%s": %s', (search_string, traceback.format_exc()))

            results = []
            if raw:
                try:
                    nr = 0

                    for movie in raw:
                        results.append(self.parseMovie(movie))

                        nr += 1
                        if nr == limit:
                            break
                    for result in results:
                        if "year" in result:
                            log.info("Found: %s", [result["titles"][0] + " (" + str(result["year"]) + ")"])
                        else:
                            log.info("Found: %s", [result["titles"][0]])
                    self.setCache(cache_key.encode("utf-8"), results)
                    return results
                except SyntaxError, e:
                    log.error("Failed to parse XML response: %s", e)
                    return False