private static async Task DigestCatalogItem(CatalogItem item) { item.Poster = LocalScraper.GetOrAddItemPoster(item, item.Poster); item.Banner = LocalScraper.GetOrAddItemBanner(item, item.Banner); item.Preview = LocalScraper.GetOrAddItemBanner(item, item.Preview); var local = await AppContext.LocalScraper.GetAsync(item.GroupName, item.KindName, item.Name); if (local != null) { item.Watching = local.Watching; } }
private async Task <CatalogItem> ParseListItem(string content) { if (string.IsNullOrEmpty(content)) { return(null); } var item = new CatalogItem { ScrapedBy = Name }; var url = content.Between("<a href=\"", "\"").Replace("/ver/", "/anime/"); item.Group = EntryGroup.Anime; item.Banner = ConcatToBaseUrl(content.Between("<img src=\"", "\"")); item.Preview = item.Banner; item.Kind = GetItemType(content); item.Name = content.Between("Title\">", "<"); item.Poster = LocalScraper.GetItemPoster(item, item.Banner); FillCustomProperties(item, content); var start = "/anime/".Length; if (ItemHasEpisodes(item) && item.Kind == EntryType.TvShow) { item.Url = ConcatToBaseUrl(url.Substring(0, url.LastIndexOf('-'))); var end = url.LastIndexOf('-'); item.Id = url.Substring(start, end - start); } else { item.Url = ConcatToBaseUrl(url); item.Id = url.Substring(start); } await DigestCatalogItem(item); return(item); }