Example #1
0
        private async Task <EpisodeInfo> CreateEpisodeInfo(Episode episode, string episodeId = null)
        {
            if (episode == null)
            {
                return(null);
            }
            if (string.IsNullOrEmpty(episodeId))
            {
                episodeId = episode.IDs.ID.ToString();
            }
            var         cacheKey = $"episode:{episodeId}";
            EpisodeInfo info     = null;

            if (DataCache.TryGetValue <EpisodeInfo>(cacheKey, out info))
            {
                return(info);
            }
            var aniDB = (await ShokoAPI.GetEpisodeAniDb(episodeId));

            info = new EpisodeInfo
            {
                Id        = episodeId,
                ExtraType = GetExtraType(aniDB),
                Shoko     = (await ShokoAPI.GetEpisode(episodeId)),
                AniDB     = aniDB,
                TvDB      = ((await ShokoAPI.GetEpisodeTvDb(episodeId))?.FirstOrDefault()),
            };
            DataCache.Set <EpisodeInfo>(cacheKey, info, DefaultTimeSpan);
            return(info);
        }
Example #2
0
        public async Task <EpisodeInfo> GetEpisodeInfo(string episodeId)
        {
            if (string.IsNullOrEmpty(episodeId))
            {
                return(null);
            }
            if (DataCache.TryGetValue <EpisodeInfo>($"episode:{episodeId}", out var info))
            {
                return(info);
            }
            var episode = await ShokoAPI.GetEpisode(episodeId);

            return(await CreateEpisodeInfo(episode, episodeId));
        }