Get the information for a specific episode

@param showID
@param seasonId
@param episodeId
@return
@throws com.omertron.tvrageapi.TVRageException
559627
public Episode getEpisodeInfo(String showID, String seasonId, String episodeId) throws TVRageException {
        if (!isValidString(showID) || !isValidString(seasonId) || !isValidString(episodeId)) {
            return new Episode();
        }

        StringBuilder tvrageURL = buildURL(API_EPISODE_INFO, showID);
        // Append the Season & Episode to the URL
        tvrageURL.append("&ep=").append(seasonId);
        tvrageURL.append("x").append(episodeId);

        return TVRageParser.getEpisodeInfo(tvrageURL.toString());
    }
1167179
public function getClosureForEpisodes(int $seriesId, array $options): Closure
    {
        return function ($language) use ($seriesId, $options) {
            $options['headers'] = ['Accept-Language' => $language];
            $json = $this->parent->performAPICallWithJsonResponse(
                'get',
                '/series/'.$seriesId.'/episodes',
                $options
            );

            return DataParser::parseDataArray($json, BasicEpisode::class);
        };
    }
240305
public Banners getBanners(String seriesId) throws TvDbException {
        StringBuilder urlBuilder = new StringBuilder();
        urlBuilder.append(BASE_URL)
                  .append(apiKey)
                  .append(SERIES_URL)
                  .append(seriesId)
                  .append("/banners.xml");

        LOG.trace(URL, urlBuilder.toString());
        Banners b = TvdbParser.getBanners(urlBuilder.toString());

        if (b != null) {
            b.setSeriesId(NumberUtils.toInt(seriesId));
        }

        return b;
    }
979687
public MediaCreditList getSeasonCredits(int tvID, int seasonNumber) throws MovieDbException {
        TmdbParameters parameters = new TmdbParameters();
        parameters.add(Param.ID, tvID);
        parameters.add(Param.SEASON_NUMBER, seasonNumber);

        URL url = new ApiUrl(apiKey, MethodBase.SEASON).subMethod(MethodSub.CREDITS).buildUrl(parameters);
        String webpage = httpTools.getRequest(url);
        try {
            return MAPPER.readValue(webpage, MediaCreditList.class);
        } catch (IOException ex) {
            throw new MovieDbException(ApiExceptionType.MAPPING_FAILED, "Failed to get credits", url, ex);
        }
    }
1022893
public function getEpisodeByNumber($ID, $season, $episode)
	{
		$ep = false;
		$url = self::APIURL . '/shows/' . $ID . '/episodebynumber?season='. $season . '&number=' . $episode;
		$response = $this->getFile($url);
		if (is_array($response)) {
			$ep = new Episode($response);
		}
		return $ep;
	}
969901
@SuppressWarnings({"ConstantConditions"})
    private Map<String, String> buildEpisodeMap(String[] showIds, String[] episodeIds, String searchTerm,
                                                SearchType searchType, TagMode tagMode, Episode.EpisodeStatus status,
                                                SortBy sortBy, SortDir sortDir, Boolean includeViews, Integer page,
                                                Integer perPage, Integer embedWidth, Integer embedHeight) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("expires", expires());
        if (showIds != null) map.put("show_id", join(showIds));
        if (episodeIds != null) map.put("id", join(episodeIds));
        if (searchTerm != null) map.put("search_type", searchType.name());
        if (tagMode != null) map.put("tag_mode", tagMode.name());
        if (status != null) map.put("status", status.name());
        if (sortBy != null) map.put("sort_by", sortBy.name());
        if (sortDir != null) map.put("sort_dir", sortDir.name());
        if (includeViews != null) map.put("include_views", includeViews.toString());
        if (page != null) map.put("page", page.toString());
        if (perPage != null) map.put("per_page", perPage.toString());
        if (embedWidth != null) map.put("embed_width", embedWidth.toString());
        if (embedHeight != null) map.put("embed_height", embedHeight.toString());
        return map;
    }
1078540
public function get($episodeId): Episode
    {
        $json = $this->client->performApiCallWithJsonResponse('get', '/episodes/' . (int) $episodeId);
        return ResponseHandler::create($json, ResponseHandler::METHOD_EPISODE)->handle();
    }
1170319
private static void processSeasons(EpisodeList epList, NodeList nlSeasons) {
        if (nlSeasons == null || nlSeasons.getLength() == 0) {
            return;
        }

        Node nEpisodeList;
        for (int loop = 0; loop < nlSeasons.getLength(); loop++) {
            nEpisodeList = nlSeasons.item(loop);
            if (nEpisodeList.getNodeType() == Node.ELEMENT_NODE) {
                processSeasonEpisodes((Element) nEpisodeList, epList);
            }
        }
    }
406103
public ExternalID getEpisodeExternalID(int tvID, int seasonNumber, int episodeNumber, String language) throws MovieDbException {
        return tmdbEpisodes.getEpisodeExternalID(tvID, seasonNumber, episodeNumber, language);
    }
1183048
public List<Actor> getActors(String seriesId) throws TvDbException {
        StringBuilder urlBuilder = new StringBuilder();
        urlBuilder.append(BASE_URL)
                  .append(apiKey)
                  .append(SERIES_URL)
                  .append(seriesId)
                  .append("/actors.xml");

        LOG.trace(URL, urlBuilder.toString());
        return TvdbParser.getActors(urlBuilder.toString());
    }
400670
public static List<Episode> getAllEpisodes(String urlString, int season) throws TvDbException {
        List<Episode> episodeList = new ArrayList<>();
        Episode episode;
        NodeList nlEpisode;
        Node nEpisode;
        Element eEpisode;

        Document doc = DOMHelper.getEventDocFromUrl(urlString);
        nlEpisode = doc.getElementsByTagName(EPISODE);
        for (int loop = 0; loop < nlEpisode.getLength(); loop++) {
            nEpisode = nlEpisode.item(loop);
            if (nEpisode.getNodeType() == Node.ELEMENT_NODE) {
                eEpisode = (Element) nEpisode;
                episode = parseNextEpisode(eEpisode);
                if ((episode != null) && (season == -1 || episode.getSeasonNumber() == season)) {
                    // Add the episode only if the season is -1 (all seasons) or matches the season
                    episodeList.add(episode);
                }
            }
        }

        return episodeList;
    }
1238821
private Episode getTVEpisode(String seriesId, int seasonNbr, int episodeNbr, String language, String episodeType) throws TvDbException {
        if (!isValidNumber(seriesId) || !isValidNumber(seasonNbr) || !isValidNumber(episodeNbr)) {
            // Invalid number passed
            return new Episode();
        }

        StringBuilder urlBuilder = new StringBuilder();
        urlBuilder.append(BASE_URL)
                  .append(apiKey)
                  .append(SERIES_URL)
                  .append(seriesId)
                  .append(episodeType)
                  .append(seasonNbr)
                  .append("/")
                  .append(episodeNbr)
                  .append("/");
        if (StringUtils.isNotBlank(language)) {
            urlBuilder.append(language).append(XML_EXTENSION);
        }

        LOG.trace(URL, urlBuilder.toString());
        return TvdbParser.getEpisode(urlBuilder.toString());
    }
829815
def podcast_episode(self, podcast_episode_id):
		

		response = self._call(
			mc_calls.PodcastFetchEpisode,
			podcast_episode_id
		)
		podcast_episode_info = [
			podcast_episode
			for podcast_episode in response.body
			if not podcast_episode['deleted']
		]

		return podcast_episode_info
577141
private static EpisodeUpdate parseNextEpisodeUpdate(Element element) {
        EpisodeUpdate episodeUpdate = new EpisodeUpdate();

        episodeUpdate.setSeriesId(DOMHelper.getValueFromElement(element, "id"));
        episodeUpdate.setEpisodeId(DOMHelper.getValueFromElement(element, SERIES));
        episodeUpdate.setTime(DOMHelper.getValueFromElement(element, TIME));

        return episodeUpdate;
    }
553001
def get_series_by_id(self, series_id):
        
        try:
            return self.api.get_series(series_id), None
        except exceptions.TVDBRequestException as err:
            LOG.exception('search for series %s failed', series_id)
            return None, _as_str(err)
454443
def episode_information(self):
        
        return [
            info.get('episode') for infolist in self.environment_information for info in infolist if 'episode' in info
        ]
47453
public List<Episode> getAllEpisodes(String id, String language) throws TvDbException {
        List<Episode> episodeList = Collections.emptyList();

        if (isValidNumber(id)) {
            StringBuilder urlBuilder = new StringBuilder();
            urlBuilder.append(BASE_URL)
                      .append(apiKey)
                      .append(SERIES_URL)
                      .append(id)
                      .append(ALL_URL);
            if (StringUtils.isNotBlank(language)) {
                urlBuilder.append(language).append(XML_EXTENSION);
            }

            LOG.trace(URL, urlBuilder.toString());
            episodeList = TvdbParser.getAllEpisodes(urlBuilder.toString(), -1);
        }
        return episodeList;
    }