private static string CreateHtml([NotNull] ShowItem si) { SeriesInfo series = si.TheSeries(); if (series is null) { return(string.Empty); } string posterUrl = TheTVDB.GetImageURL(series.GetImage(TVSettings.FolderJpgIsType.Poster)); string yearRange = ShowHtmlHelper.YearRange(series); string episodeSummary = series.AiredSeasons.Sum(pair => pair.Value.Episodes.Count).ToString(); string stars = ShowHtmlHelper.StarRating(series.SiteRating / 2); string genreIcons = string.Join(" ", series.Genres().Select(ShowHtmlHelper.GenreIconHtml)); string siteRating = series.SiteRating > 0 ? series.SiteRating + "/10" : ""; return($@"<div class=""card card-body""> <div class=""row""> <div class=""col-md-4""> <img class=""show-poster rounded w-100"" src=""{posterUrl}"" alt=""{si.ShowName} Show Poster""></div> <div class=""col-md-8 d-flex flex-column""> <div class=""row""> <div class=""col-md-8""><h1>{si.ShowName}</h1></div> <div class=""col-md-4 text-right""><h6>{yearRange} ({series.Status})</h6><small class=""text-muted"">{episodeSummary} Episodes</small></div> </div> <div><blockquote>{series.Overview}</blockquote></div> <div><blockquote>{string.Join(", ", series.GetActorNames())}</blockquote></div> <div class=""row align-items-bottom flex-grow-1""> <div class=""col-md-4 align-self-end"">{stars}<br>{siteRating}</div> <div class=""col-md-4 align-self-end text-center"">{series.ContentRating}<br>{series.Network}</div> <div class=""col-md-4 align-self-end text-right"">{genreIcons}<br>{string.Join(", ", series.Genres())}</div> </div> </div></div></div>"); }
public override ItemList ProcessShow(ShowItem si, bool forceRefresh) { ItemList theActionList = new ItemList(); if (!TVSettings.Instance.FolderJpg) { return(theActionList); } if (si is null) { return(theActionList); } FileInfo fi = FileHelper.FileInFolder(si.AutoAddFolderBase, DEFAULT_FILE_NAME); bool fileDoesntExist = !doneFolderJpg.Contains(fi.FullName) && !fi.Exists; if (forceRefresh || fileDoesntExist) { SeriesInfo series = si.TheSeries(); if (series is null) { return(theActionList); } //default to poster when we want season posters for the season specific folders string downloadPath = TVSettings.Instance.SeasonSpecificFolderJPG() ? series.GetSeriesPosterPath() : series.GetImage(TVSettings.Instance.ItemForFolderJpg()); if (!string.IsNullOrEmpty(downloadPath)) { theActionList.Add(new ActionDownloadImage(si, null, fi, downloadPath, false)); } doneFolderJpg.Add(fi.FullName); } return(theActionList); }