Exemplo n.º 1
0
	def tmdb_info(self):
		from tmdb3 import searchSeries, set_cache, set_key, set_locale, get_locale
		set_key('587c13e576f991c0a653f783b290a065')
		set_cache(filename='/tmp/tmdb3.cache')
		set_locale('en', 'us')
		_locale = get_locale()

		try:
			tmdb_results = searchSeries(self.title, first_air_date_year=self.year, locale=_locale)
			for _series in tmdb_results:
				if self.country:
					if not self.country in _series.origin_countries:
						continue
				if self.year:
					if not self.year == _series.first_air_date.year():
						continue
				if self.title == decode(_series.name):
					raise GetOutOfLoop(_series)
			raise SeriesNotFound("Series Not Found in TMDb: {}".format(self.title))
		except GetOutOfLoop, e:
			_series = e.message
			alias = {'name': 'title',
					'id': 'tmdb_id',
					'origin_countries': 'country'}
			for key in dir(_series):
				if key[:1] == '_': continue
				if key in alias: key2 = alias[key]
				else: key2  = key
				if not hasattr(self, key2):
					continue
				setattr(self, key2, decode(getattr(_series, key)))
Exemplo n.º 2
0
 def set_poster(self, title_query, video_type):
     if video_type is 'MOVIE':
         tmdb_id = tmdb3.searchMovie(title_query)[0].id
         video = tmdb3.Movie(tmdb_id)
     else:
         tmdb_id = tmdb3.searchSeries(title_query)[0].id
         video = tmdb3.Series(tmdb_id)
     self.tmdb_poster = video.poster.geturl('w342')
Exemplo n.º 3
0
def get_show_data(query):
    series = tmdb3.searchSeries(query)[0]
    show_data = {
        'id': series.id,
        'numSeasons': series.number_of_seasons,
        'numEps': series.number_of_episodes,
        'first_date': str(series.first_air_date),
        'last_date': str(series.last_air_date),
        'imdbId': series.imdb_id,
        'name': series.name,
        'imdbRating': series.userrating,
        'summary': series.overview,
        'networks': [],
        'genres': [],
        'keywords': [],
        'cast': [],
        'seasons': []
    }

    for network in series.networks:
        show_data['networks'].append(network.name)

    for genre in series.genres:
        show_data['genres'].append(genre.name)

    for keyword in series.keywords:
        show_data['keywords'].append(keyword.name)

    for person in series.cast:
        show_data['cast'].append(person.name)

    if series.poster is not None:
        sizes = series.poster.sizes()
        size = sizes[4] if len(sizes) > 4 else sizes[len(sizes)-1]
        url = series.poster.geturl(size)
        show_data['remote_img_url'] = url
        show_data['img_filename'] = url[url.rindex('/')+1:]

    seasons = []
    episodes = []
    for season in series.seasons:
        (season_data, season_episodes) = get_season_data(series.seasons[season])
        show_data['seasons'].append(series.seasons[season].id)
        season_data['season_number'] = season
        seasons.append(season_data)
        episodes.extend(season_episodes)

    return show_data, seasons, episodes
Exemplo n.º 4
0
    def tmdb_info(self):
        from tmdb3 import searchSeries, set_cache, set_key, set_locale, get_locale
        set_key('587c13e576f991c0a653f783b290a065')
        set_cache(filename='/tmp/tmdb3.cache')
        set_locale('en', 'us')
        _locale = get_locale()

        try:
            tmdb_results = searchSeries(self.title,
                                        first_air_date_year=self.year,
                                        locale=_locale)
            for _series in tmdb_results:
                if self.country:
                    if not self.country in _series.origin_countries:
                        continue
                if self.year:
                    if not self.year == _series.first_air_date.year():
                        continue
                if self.title == decode(_series.name):
                    raise GetOutOfLoop(_series)
            raise SeriesNotFound("Series Not Found in TMDb: {}".format(
                self.title))
        except GetOutOfLoop, e:
            _series = e.message
            alias = {
                'name': 'title',
                'id': 'tmdb_id',
                'origin_countries': 'country'
            }
            for key in dir(_series):
                if key[:1] == '_': continue
                if key in alias: key2 = alias[key]
                else: key2 = key
                if not hasattr(self, key2):
                    continue
                setattr(self, key2, decode(getattr(_series, key)))
Exemplo n.º 5
0
    def test_serie(self):
        result = searchSeries("Star Wars")
        serie = [i for i in result if i.name == "Star Wars: The Clone Wars"][0]
        self.assertIsInstance(serie, Series)
        self.assertEqual(repr(serie), "<Series 'Star Wars: The Clone Wars'>")

        self.assertEqual(serie.name, "Star Wars: The Clone Wars")
        self.assertEqual(serie.original_name, "Star Wars: The Clone Wars")
        self.assertIsInstance(serie.origin_countries, list)
        self.assertEqual(serie.origin_countries[0], "SG")
        self.assertEqual(
            serie.overview,
            "Yoda, Obi-Wan Kenobi, Anakin Skywalker, Mace Windu "
            "and other Jedi Knights lead the Grand Army of the "
            "Republic against the droid army of the Separatists.",
        )

        self.assertEqual(serie.first_air_date, datetime.date(2008, 10, 3))
        self.assertEqual(serie.last_air_date, datetime.date(2014, 3, 7))

        self.assertIsInstance(serie.authors, list)
        self.assertIsInstance(serie.authors[0], Person)
        self.assertEqual(serie.authors[0].name, "George Lucas")

        self.assertEqual(serie.number_of_seasons, 6)
        self.assertEqual(serie.number_of_episodes, 121)
        self.assertEqual(serie.popularity, 31.739)
        self.assertEqual(serie.status, "Returning Series")
        self.assertEqual(serie.userrating, 7.5)
        self.assertEqual(serie.votes, 165)

        self.assertIsInstance(serie.genres, list)
        genre = serie.genres[0]
        self.assertIsInstance(genre, Genre)
        self.assertEqual(genre.id, 10759)
        self.assertEqual(genre.name, "Action & Adventure")

        self.assertIsInstance(serie.poster, Poster)
        self.assertTrue(serie.poster.geturl().startswith("http"))

        self.assertIsInstance(serie.backdrop, Backdrop)
        self.assertIsInstance(serie.backdrops, list)

        self.assertIsInstance(serie.networks, list)
        self.assertIsInstance(serie.networks[0], Network)

        self.assertIsInstance(serie.seasons, dict)
        self.assertIsInstance(serie.seasons[0], Season)

        self.assertEqual(serie.id, 4194)
        self.assertEqual(serie.imdb_id, "tt0458290")
        self.assertEqual(serie.tvdb_id, 83268)
        self.assertEqual(serie.tvrage_id, 19187)
        self.assertEqual(serie.freebase_id, "")
        self.assertEqual(serie.freebase_mid, "/m/02q70n3")

        similars = serie.getSimilar()
        self.assertIsInstance(similars, SeriesSearchResult)
        first_similar = similars[0]
        self.assertIsInstance(first_similar, Series)
        self.assertEqual(first_similar.name, "Star Wars Rebels")
Exemplo n.º 6
0
 def test_results_searchSeries(self):
     result = searchSeries("Star Wars")
     self.assertIsInstance(result, SeriesSearchResult)
     self.assertGreaterEqual(len(result), 18)