|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
"""
|
|
|
|
tmdbsimple.tv
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
This module implements the TV, TV Seasons, TV Episodes, and Networks
|
|
|
|
functionality of tmdbsimple.
|
|
|
|
|
|
|
|
Created by Celia Oakley on 2013-10-31.
|
|
|
|
|
|
|
|
:copyright: (c) 2013-2020 by Celia Oakley
|
|
|
|
:license: GPLv3, see LICENSE for more details
|
|
|
|
"""
|
|
|
|
|
|
|
|
from .base import TMDB
|
|
|
|
|
|
|
|
class TV(TMDB):
|
|
|
|
"""
|
|
|
|
TV functionality.
|
|
|
|
|
|
|
|
See: https://developers.themoviedb.org/3/tv
|
|
|
|
"""
|
|
|
|
BASE_PATH = 'tv'
|
|
|
|
URLS = {
|
|
|
|
'info': '/{id}',
|
|
|
|
'alternative_titles': '/{id}/alternative_titles',
|
|
|
|
'content_ratings': '/{id}/content_ratings',
|
|
|
|
'credits': '/{id}/credits',
|
|
|
|
'external_ids': '/{id}/external_ids',
|
|
|
|
'images': '/{id}/images',
|
|
|
|
'rating': '/{id}/rating',
|
|
|
|
'similar': '/{id}/similar',
|
|
|
|
'recommendations': '/{id}/recommendations',
|
|
|
|
'translations': '/{id}/translations',
|
|
|
|
'videos': '/{id}/videos',
|
|
|
|
'keywords': '/{id}/keywords',
|
|
|
|
'latest': '/latest',
|
|
|
|
'on_the_air': '/on_the_air',
|
|
|
|
'airing_today': '/airing_today',
|
|
|
|
'top_rated': '/top_rated',
|
|
|
|
'popular': '/popular',
|
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, id=0):
|
|
|
|
super(TV, self).__init__()
|
|
|
|
self.id = id
|
|
|
|
|
|
|
|
def info(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the primary information about a TV series by id.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
append_to_response: (optional) Comma separated, any TV series
|
|
|
|
method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('info')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
def alternative_titles(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the alternative titles for a specific tv id.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 3166-1 code.
|
|
|
|
append_to_response: (optional) Comma separated, any tv method.
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('alternative_titles')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
def content_ratings(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the content ratings for a TV Series.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
append_to_response: (optional) Comma separated, any collection
|
|
|
|
method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('content_ratings')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def credits(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the cast & crew information about a TV series. Just like the
|
|
|
|
website, we pull this information from the last season of the series.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
append_to_response: (optional) Comma separated, any collection
|
|
|
|
method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('credits')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def external_ids(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the external ids that we have stored for a TV series.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('external_ids')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def images(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the images (posters and backdrops) for a TV series.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
include_image_language: (optional) Comma separated, a valid
|
|
|
|
ISO 69-1.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('images')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def rating(self, **kwargs):
|
|
|
|
"""
|
|
|
|
This method lets users rate a TV show. A valid session id or guest
|
|
|
|
session id is required.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
session_id: see Authentication.
|
|
|
|
guest_session_id: see Authentication.
|
|
|
|
value: Rating value.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('rating')
|
|
|
|
|
|
|
|
payload = {
|
|
|
|
'value': kwargs.pop('value', None),
|
|
|
|
}
|
|
|
|
|
|
|
|
response = self._POST(path, kwargs, payload)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def similar(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the similar TV series for a specific TV series id.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum value of 1. Expected value is an integer.
|
|
|
|
language: (optional) ISO 639-1 code.
|
|
|
|
append_to_response: (optional) Comma separated, any TV method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('similar')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def recommendations(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the recommendations for TV series for a specific TV series id.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum value of 1. Expected value is an integer.
|
|
|
|
language: (optional) ISO 639-1 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('recommendations')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def translations(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of translations that exist for a TV series. These
|
|
|
|
translations cascade down to the episode level.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('translations')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def videos(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the videos that have been added to a TV series (trailers, opening
|
|
|
|
credits, etc...).
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('videos')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def keywords(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of keywords related to a TV series.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('keywords')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def latest(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the most newly created TV show. This is a live response
|
|
|
|
and will continuously change.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('latest')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def on_the_air(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of TV shows that are currently on the air. This query
|
|
|
|
looks for any TV show that has an episode with an air date in the
|
|
|
|
next 7 days.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_path('on_the_air')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def airing_today(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of TV shows that air today. Without a specified timezone,
|
|
|
|
this query defaults to EST (Eastern Time UTC-05:00).
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
timezone: (optional) Valid value from the list of timezones.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_path('airing_today')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def top_rated(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of top rated TV shows. By default, this list will only
|
|
|
|
include TV shows that have 2 or more votes. This list refreshes every
|
|
|
|
day.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_path('top_rated')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def popular(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the list of popular TV shows. This list refreshes every day.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_path('popular')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
class TV_Seasons(TMDB):
|
|
|
|
"""
|
|
|
|
TV Seasons functionality.
|
|
|
|
|
|
|
|
See: https://developers.themoviedb.org/3/tv-seasons
|
|
|
|
"""
|
|
|
|
BASE_PATH = 'tv/{series_id}/season/{season_number}'
|
|
|
|
URLS = {
|
|
|
|
'info': '',
|
|
|
|
'credits': '/credits',
|
|
|
|
'external_ids': '/external_ids',
|
|
|
|
'images': '/images',
|
|
|
|
'videos': '/videos',
|
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, series_id, season_number):
|
|
|
|
super(TV_Seasons, self).__init__()
|
|
|
|
self.series_id = series_id
|
|
|
|
self.season_number = season_number
|
|
|
|
|
|
|
|
def info(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the primary information about a TV season by its season number.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
append_to_response: (optional) Comma separated, any TV series
|
|
|
|
method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_path('info')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def credits(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the cast & crew credits for a TV season by season number.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_path('credits')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def external_ids(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the external ids that we have stored for a TV season by season
|
|
|
|
number.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_path('external_ids')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def images(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the images (posters) that we have stored for a TV season by season
|
|
|
|
number.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
include_image_language: (optional) Comma separated, a valid
|
|
|
|
ISO 69-1.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_path('images')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def videos(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the videos that have been added to a TV season (trailers, teasers,
|
|
|
|
etc...).
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_path('videos')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
class TV_Episodes(TMDB):
|
|
|
|
"""
|
|
|
|
TV Episodes functionality.
|
|
|
|
|
|
|
|
See: https://developers.themoviedb.org/3/tv-episodes
|
|
|
|
"""
|
|
|
|
BASE_PATH = 'tv/{series_id}/season/{season_number}/episode/{episode_number}'
|
|
|
|
URLS = {
|
|
|
|
'info': '',
|
|
|
|
'credits': '/credits',
|
|
|
|
'external_ids': '/external_ids',
|
|
|
|
'images': '/images',
|
|
|
|
'rating': '/rating',
|
|
|
|
'videos': '/videos',
|
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, series_id, season_number, episode_number):
|
|
|
|
super(TV_Episodes, self).__init__()
|
|
|
|
self.series_id = series_id
|
|
|
|
self.season_number = season_number
|
|
|
|
self.episode_number = episode_number
|
|
|
|
|
|
|
|
def info(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the primary information about a TV episode by combination of a
|
|
|
|
season and episode number.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
append_to_response: (optional) Comma separated, any TV series
|
|
|
|
method.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path('info')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def credits(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the TV episode credits by combination of season and episode number.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path('credits')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def external_ids(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the external ids for a TV episode by combination of a season and
|
|
|
|
episode number.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path(
|
|
|
|
'external_ids')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def images(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the images (episode stills) for a TV episode by combination of a
|
|
|
|
season and episode number. Since episode stills don't have a language,
|
|
|
|
this call will always return all images.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path('images')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def rating(self, **kwargs):
|
|
|
|
"""
|
|
|
|
This method lets users rate a TV episode. A valid session id or guest
|
|
|
|
session id is required.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
session_id: see Authentication.
|
|
|
|
guest_session_id: see Authentication.
|
|
|
|
value: Rating value.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path('rating')
|
|
|
|
|
|
|
|
payload = {
|
|
|
|
'value': kwargs.pop('value', None),
|
|
|
|
}
|
|
|
|
|
|
|
|
response = self._POST(path, kwargs, payload)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def videos(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the videos that have been added to a TV episode (teasers, clips,
|
|
|
|
etc...).
|
|
|
|
|
|
|
|
Args:
|
|
|
|
language: (optional) ISO 639 code.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_series_id_season_number_episode_number_path('videos')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
class TV_Changes(TMDB):
|
|
|
|
"""
|
|
|
|
Changes functionality for TV Series, Season and Episode.
|
|
|
|
|
|
|
|
See: https://developers.themoviedb.org/3/tv/get-tv-changes
|
|
|
|
https://developers.themoviedb.org/3/tv-seasons/get-tv-season-changes
|
|
|
|
https://developers.themoviedb.org/3/tv-episodes/get-tv-episode-changes
|
|
|
|
"""
|
|
|
|
BASE_PATH = 'tv'
|
|
|
|
URLS = {
|
|
|
|
'series': '/{id}/changes', # id => tv_id
|
|
|
|
'season': '/season/{id}/changes', # id => season_id
|
|
|
|
'episode': '/episode/{id}/changes', # id => episode_id
|
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, id=0):
|
|
|
|
super(TV_Changes, self).__init__()
|
|
|
|
self.id = id
|
|
|
|
|
|
|
|
def series(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the changes for a specific series id.
|
|
|
|
|
|
|
|
Changes are grouped by key, and ordered by date in descending order.
|
|
|
|
By default, only the last 24 hours of changes are returned. The
|
|
|
|
maximum number of days that can be returned in a single request is 14.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
start_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
end_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('series')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def season(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the changes for a specific season id.
|
|
|
|
|
|
|
|
Changes are grouped by key, and ordered by date in descending order.
|
|
|
|
By default, only the last 24 hours of changes are returned. The
|
|
|
|
maximum number of days that can be returned in a single request is 14.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
start_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
end_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('season')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
def episode(self, **kwargs):
|
|
|
|
"""
|
|
|
|
Get the changes for a specific episode id.
|
|
|
|
|
|
|
|
Changes are grouped by key, and ordered by date in descending order.
|
|
|
|
By default, only the last 24 hours of changes are returned. The
|
|
|
|
maximum number of days that can be returned in a single request is 14.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
start_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
end_date: (optional) Expected format is 'YYYY-MM-DD'.
|
|
|
|
page: (optional) Minimum 1, maximum 1000.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('episode')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|
|
|
|
|
|
|
|
|
|
|
|
class Networks(TMDB):
|
|
|
|
"""
|
|
|
|
Networks functionality.
|
|
|
|
|
|
|
|
See: https://developers.themoviedb.org/3/networks
|
|
|
|
"""
|
|
|
|
BASE_PATH = 'network'
|
|
|
|
URLS = {
|
|
|
|
'info': '/{id}',
|
|
|
|
}
|
|
|
|
|
|
|
|
def __init__(self, id):
|
|
|
|
super(Networks, self).__init__()
|
|
|
|
self.id = id
|
|
|
|
|
|
|
|
def info(self, **kwargs):
|
|
|
|
"""
|
|
|
|
This method is used to retrieve the basic information about a TV
|
|
|
|
network. You can use this ID to search for TV shows with the discover.
|
|
|
|
At this time we don't have much but this will be fleshed out over time.
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
A dict respresentation of the JSON returned from the API.
|
|
|
|
"""
|
|
|
|
path = self._get_id_path('info')
|
|
|
|
|
|
|
|
response = self._GET(path, kwargs)
|
|
|
|
self._set_attrs_to_values(response)
|
|
|
|
return response
|