158 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from ..tmdb import TMDb
 | |
| 
 | |
| 
 | |
| class Episode(TMDb):
 | |
|     _urls = {
 | |
|         "details": "/tv/%s/season/%s/episode/%s",
 | |
|         "account_states": "/tv/%s/season/%s/episode/%s/account_states",
 | |
|         "changes": "/tv/episode/%s/changes",
 | |
|         "credits": "/tv/%s/season/%s/episode/%s/credits",
 | |
|         "external_ids": "/tv/%s/season/%s/episode/%s/external_ids",
 | |
|         "images": "/tv/%s/season/%s/episode/%s/images",
 | |
|         "translations": "/tv/%s/season/%s/episode/%s/translations",
 | |
|         "rate_tv_episode": "/tv/%s/season/%s/episode/%s/rating",
 | |
|         "delete_rating": "/tv/%s/season/%s/episode/%s/rating",
 | |
|         "videos": "/tv/%s/season/%s/episode/%s/videos",
 | |
|     }
 | |
| 
 | |
|     def details(self, tv_id, season_num, episode_num, append_to_response="trailers,images,casts,translations"):
 | |
|         """
 | |
|         Get the TV episode details by id.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :param append_to_response: str
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(
 | |
|             self._urls["details"] % (tv_id, season_num, episode_num),
 | |
|             params="append_to_response=%s" % append_to_response
 | |
|         )
 | |
| 
 | |
|     def account_states(self, tv_id, season_num, episode_num):
 | |
|         """
 | |
|         Get your rating for a episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(
 | |
|             self._urls["account_states"] % (tv_id, season_num, episode_num),
 | |
|             params="session_id=%s" % self.session_id
 | |
|         )
 | |
| 
 | |
|     def changes(self, episode_id, start_date=None, end_date=None, page=1):
 | |
|         """
 | |
|         Get the changes for a TV episode. By default only the last 24 hours are returned.
 | |
|         You can query up to 14 days in a single query by using the start_date and end_date query parameters.
 | |
|         :param episode_id: int
 | |
|         :param start_date: str
 | |
|         :param end_date: str
 | |
|         :param page: int
 | |
|         :return:
 | |
|         """
 | |
|         params = "page=%s" % page
 | |
|         if start_date:
 | |
|             params += "&start_date=%s" % start_date
 | |
|         if end_date:
 | |
|             params += "&end_date=%s" % end_date
 | |
|         return self._request_obj(
 | |
|             self._urls["changes"] % episode_id,
 | |
|             params=params,
 | |
|             key="changes"
 | |
|         )
 | |
| 
 | |
|     def credits(self, tv_id, season_num, episode_num):
 | |
|         """
 | |
|         Get the credits for TV season.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(self._urls["credits"] % (tv_id, season_num, episode_num))
 | |
| 
 | |
|     def external_ids(self, tv_id, season_num, episode_num):
 | |
|         """
 | |
|         Get the external ids for a TV episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(self._urls["external_ids"] % (tv_id, season_num, episode_num))
 | |
| 
 | |
|     def images(self, tv_id, season_num, episode_num, include_image_language=None):
 | |
|         """
 | |
|         Get the images that belong to a TV episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :param include_image_language: str
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(
 | |
|             self._urls["images"] % (tv_id, season_num, episode_num),
 | |
|             params="include_image_language=%s" % include_image_language if include_image_language else "",
 | |
|             key="stills"
 | |
|         )
 | |
| 
 | |
|     def translations(self, tv_id, season_num, episode_num):
 | |
|         """
 | |
|         Get the translation data for an episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :return:
 | |
|         """
 | |
|         return self._request_obj(
 | |
|             self._urls["translations"] % (tv_id, season_num, episode_num),
 | |
|             key="translations"
 | |
|         )
 | |
| 
 | |
|     def rate_tv_episode(self, tv_id, season_num, episode_num, rating):
 | |
|         """
 | |
|         Rate a TV episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :param rating: float
 | |
|         """
 | |
|         self._request_obj(
 | |
|             self._urls["rate_tv_episode"] % (tv_id, season_num, episode_num),
 | |
|             params="session_id=%s" % self.session_id,
 | |
|             method="POST",
 | |
|             json={"value": rating}
 | |
|         )
 | |
| 
 | |
|     def delete_rating(self, tv_id, season_num, episode_num):
 | |
|         """
 | |
|         Remove your rating for a TV episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         """
 | |
|         self._request_obj(
 | |
|             self._urls["delete_rating"] % (tv_id, season_num, episode_num),
 | |
|             params="session_id=%s" % self.session_id,
 | |
|             method="DELETE"
 | |
|         )
 | |
| 
 | |
|     def videos(self, tv_id, season_num, episode_num, include_video_language=None):
 | |
|         """
 | |
|         Get the videos that have been added to a TV episode.
 | |
|         :param tv_id: int
 | |
|         :param season_num: int
 | |
|         :param episode_num: int
 | |
|         :param include_video_language: str
 | |
|         :return:
 | |
|         """
 | |
|         params = ""
 | |
|         if include_video_language:
 | |
|             params += "&include_video_language=%s" % include_video_language
 | |
|         return self._request_obj(
 | |
|             self._urls["videos"] % (tv_id, season_num, episode_num),
 | |
|             params=params
 | |
|         )
 |