Beispiel #1
0
 public async Task <byte[]> GetBannerAsync(TheTVDBClient client)
 {
     if (this.Image.IsNullOrWhiteSpace())
     {
         return(null);
     }
     return(await client.GetBannerByBannerPathAsync(this.Image));
 }
        private async Task<bool> LoadFanartByImdbIdAsync(TheTVDBClient client, RemoteId id, string index = null)
        {
            var seriesId = await client.TryGetTheTVDBSeriesIdByRemoteIdAsync(id);
            if (seriesId == null) return false;

            var urls = (await client.GetBannersBySeriesIdAsync(seriesId)).Where(z => z.BannerType == BannerType.Fanart)
                .Where(z => index == null || z.Season == index)
                .Select(z => z.BuildUrl(client))
                .ToArray();
            if (urls.Length > 0)
            {
                this.Load(urls);
                return true;
            }
            return false;
        }
        public async void BeginLoadFanartByImdbId(TheTVDBClient client, string index, params RemoteId[] ids)
        {
            if (client == null) throw new ArgumentNullException(nameof(client));

            foreach (var id in ids)
            {
                if (await this.LoadFanartByImdbIdAsync(client, id, index)) return;
            }

            foreach (var id in ids)
            {
                if (await this.LoadFanartByImdbIdAsync(client, id)) return;
            }

            this.Load(Enumerable.Empty<string>());
        }
        public async void BeginLoadPosterByImdbId(TheTVDBClient client, string imdbId)
        {
            if (client == null) throw new ArgumentNullException(nameof(client));
            if (imdbId == null) throw new ArgumentNullException(nameof(imdbId));

            var videos = (await client.GetSeriesByImdbIdAsync(imdbId)).ToArray();
            if (videos.Length == 0)
            {
                this.Load(Enumerable.Empty<string>());
            }
            else
            {
                var urls = (await videos[0].GetBannersAsync(JryVideoCore.Current.GetTheTVDBClient()))
                    .Where(z => z.BannerType == BannerType.Poster)
                    .Select(z => z.BuildUrl(client))
                    .ToArray();
                this.Load(urls);
            }
        }
 private async Task<bool> TryAutoAddCoverAsync(DataCenter dataCenter, TheTVDBClient client, RemoteId removeId, VideoRole role)
 {
     var theTVDBId = await client.TryGetTheTVDBSeriesIdByRemoteIdAsync(removeId);
     if (theTVDBId == null) return false;
     var actor = await dataCenter.ArtistManager.FindAsync(role.ActorId);
     if (actor == null) return false;
     var actors = (await client.GetActorsBySeriesIdAsync(theTVDBId)).ToArray();
     actors = actors.Where(z => z.Id == actor.TheTVDBId).ToArray();
     if (actors.Length != 1) return false;
     if (!actors[0].HasBanner) return false;
     var url = actors[0].BuildUrl(client);
     var builder = CoverBuilder.CreateRole(role);
     builder.Uri.Add(url);
     return await dataCenter.CoverManager.BuildCoverAsync(builder);
 }
            private async Task<bool> AutoGenerateCoverOverTheTVDBIdAsync(TheTVDBClient client, string theTVDBId, string index)
            {
                if (theTVDBId.IsNullOrWhiteSpace()) return false;

                return await Task.Run(async () =>
                {
                    var array = (await client.GetBannersBySeriesIdAsync(theTVDBId)).ToArray();
                    var urls = array.Where(z => z.Season == index).RandomSort()
                        .Concat(array.Where(z => z.Season != index).RandomSort())
                        .Where(banner => banner.BannerType == BannerType.Fanart)
                        .Select(z => z.BuildUrl(client))
                        .ToArray();
                    if (urls.Length == 0) return false;
                    var builder = CoverBuilder.CreateBackground(this.source.InfoView.Source);
                    builder.Uri.AddRange(urls);
                    return await this.coverManager.BuildCoverAsync(builder);
                });
            }
            private async Task<bool> AutoGenerateCoverAsync(TheTVDBClient client, IImdbItem item)
            {
                var imdbId = item.GetValidImdbId();
                if (imdbId == null) return false;

                foreach (var series in await client.GetSeriesByImdbIdAsync(imdbId))
                {
                    if (await this.AutoGenerateCoverOverTheTVDBIdAsync(client, series.SeriesId,
                        this.source.InfoView.Source.Index.ToString()))
                        return true;
                }
                return false;
            }
Beispiel #8
0
 public string BuildUrl(TheTVDBClient client) => client.BuildBannerUrl(this.BannerPath);
Beispiel #9
0
 public async Task<byte[]> GetBannerAsync(TheTVDBClient client)
     => await client.GetBannerByBannerPathAsync(this.BannerPath);
Beispiel #10
0
 public string BuildUrl(TheTVDBClient client) => client.BuildBannerUrl(this.Image);
Beispiel #11
0
 public async Task<byte[]> GetBannerAsync(TheTVDBClient client)
 {
     if (this.Image.IsNullOrWhiteSpace()) return null;
     return await client.GetBannerByBannerPathAsync(this.Image);
 }
Beispiel #12
0
 public async Task <IEnumerable <Actor> > GetActorsAsync(TheTVDBClient client)
 => await client.GetActorsBySeriesIdAsync(this.Id);
Beispiel #13
0
 public async Task <byte[]> GetBannerAsync(TheTVDBClient client)
 => await client.GetBannerByBannerPathAsync(this.Banner);
Beispiel #14
0
 public string BuildUrl(TheTVDBClient client) => client.BuildBannerUrl(this.BannerPath);
Beispiel #15
0
 public async Task<IEnumerable<Actor>> GetActorsAsync(TheTVDBClient client)
     => await client.GetActorsBySeriesIdAsync(this.Id);
Beispiel #16
0
 public string BuildUrl(TheTVDBClient client) => client.BuildBannerUrl(this.Image);