/// <summary> /// Gets detailed information about a series. /// </summary> /// <param name="id">ID of series to get details for.</param> /// <param name="request">API request object to use.</param> /// <returns>Detailed series object.</returns> public static TvdbDetailedSeries GetDetailedSeries(uint id, TvdbApiRequest request) { Debug.WriteLine("-> TvdbDetailedSeries::GetDetailedSeries id=\"" + id + "\" request=\"" + request + "\" Called"); var cacheKey = id + "~series"; return(request.PerformApiRequestAndDeserialize <TvdbDetailedSeries>(GetExtendedSeriesUrl(id, request.ApiKey), cacheKey)); }
/// <summary> /// Searches the TVDB for a series. /// </summary> /// <param name="series">Series to search for.</param> /// <param name="request">API request object to use.</param> /// <returns>An array of possible series.</returns> public static TvdbSeries[] GetTvdbSeriesSearch(string series, TvdbApiRequest request) { Debug.WriteLine("-> TvdbSeries::GetTvdbSeriesSearch series=\"" + series + "\" request=\"" + request + "\" Called"); series = series.ToLower().Trim(); var cacheKey = series + "~search"; var seriesSearch = request.PerformApiRequestAndDeserialize <SeriesSearch>(GetSeriesUrl(series), cacheKey, false, true); return(seriesSearch.Series); }
/// <summary> /// Instantiates a new copy of the TVDB API helper class /// </summary> /// <param name="apiKey">API Key to use for lookups</param> /// <param name="cacheType">Type of cache to use. Defaults to memory and persistent.</param> /// <param name="persistentCacheLocation">Location of persistent cache (if one is to be used).</param> public Tvdb(string apiKey, TvdbCacheType cacheType = TvdbCacheType.PersistentMemory, string persistentCacheLocation = null) { Debug.WriteLine("-> Tvdb::_cstr apiKey=\"" + apiKey + "\" cacheType=\"" + cacheType + "\" persistentCacheLocation=\"" + persistentCacheLocation + "\" Called"); // Create the cache var tvdbCacheProvider = new TvdbCacheProvider(cacheType, persistentCacheLocation); // Create request object TvdbApiRequest = new TvdbApiRequest(apiKey, tvdbCacheProvider); }
/// <summary> /// Gets the current TVDB epoch time. /// </summary> /// <param name="request">Request to use.</param> /// <param name="previousTime">Previous time.</param> /// <returns>A TvdbApiTime representation.</returns> public static TvdbApiTime TvdbServerTime(TvdbApiRequest request, uint previousTime) { Debug.WriteLine("-> TvdbApiTime::TvdbServerTime request=\"" + request + "\" previousTime=\"" + previousTime + " Called"); var ut = request.CacheProvider.CacheType == TvdbCacheType.None || previousTime == 0 ? UpdateType.Time : UpdateType.All; var st = request.PerformApiRequestAndDeserialize <TvdbApiTime>(GetUpdateUrl(ut, previousTime), string.Empty, true, true); if (st.Series != null) { st.Series.Sort(); } if (st.Episodes != null) { st.Episodes.Sort(); } return(st); }
/// <summary> /// Gets indepth information about the current series. /// </summary> /// <param name="request">API requester to use.</param> /// <returns>Detailed series information.</returns> public TvdbDetailedSeries GetDetailedInformation(TvdbApiRequest request) { Debug.WriteLine("-> TvdbSeries::GetDetailedInformation request=\"" + request + "\" Called"); return(TvdbDetailedSeries.GetDetailedSeries(TvdbId, request)); }