async public Task <IResult <Show> > GetShow(string ShowUri) { IResult <Show> Donut = null; var Req = new RestRequest("/anime/" + ShowUri); var Res = this._HttpClient.Get(Req); if (Res.StatusCode != System.Net.HttpStatusCode.OK) { Donut = Result.Fail <Show>(Res.StatusDescription); } else { var Document = await Res.Content.ConvertHTML(); var Show = new Show(); var TagInner = Document.QuerySelector(".tags-inner"); var TagsHTML = TagInner.QuerySelectorAll(".tag"); foreach (var TagHTML in TagsHTML) { Show.Categories.Add(new ShortCategory() { Name = TagHTML.Text(), Uri = TagHTML.Attributes["href"].Value }); } TagInner.ParentElement.PreviousElementSibling.Remove(); var OtherNamesHTML = TagInner.ParentElement.ParentElement; TagInner.ParentElement.Remove(); OtherNamesHTML.QuerySelectorAll("dd")[0].Remove(); var NamesHTML = OtherNamesHTML.QuerySelectorAll("dt"); foreach (var NameHTML in NamesHTML) { Show.OtherNames.Add(NameHTML.Text().Trim().Replace(" ", "").ClearHtmlTags()); } var Bilgiler = OtherNamesHTML.NextElementSibling.QuerySelector("dl"); var Bilgiler2 = OtherNamesHTML.NextElementSibling.NextElementSibling.QuerySelector("dl"); Show.EpisodeCounter = Convert.ToInt32(Bilgiler.QuerySelectorAll("dt")[1].Text().Split('/')[0].Trim().Replace(" ", "")); Show.StartedDay = Bilgiler.QuerySelectorAll("dt")[2].Text().ClearHtmlTags(); Show.LastAddedDay = Bilgiler.QuerySelectorAll("dt")[3].Text().ClearHtmlTags();; Show.MinutePerEpisode = Bilgiler2.QuerySelectorAll("dt")[1].Text().ClearHtmlTags(); Show.EndedDay = Bilgiler2.QuerySelectorAll("dt")[2].Text().ClearHtmlTags(); Show.YearOfShow = Bilgiler2.QuerySelectorAll("dt")[3].Text().ClearHtmlTags(); var TranslartorsHTML = Bilgiler2.ParentElement.NextElementSibling.QuerySelector("dl").QuerySelectorAll("dt>ul>li"); foreach (var TranslartorHTML in TranslartorsHTML) { Show.Translators.Add(TranslartorHTML.Text()); } Show.Image = Document.QuerySelector(".animeDetail-video-player").QuerySelector(".poster").QuerySelector("img").Attributes["src"].Value; var IdParserRegex = new Regex(@"\/animes\/(.*?)\/"); var IdParseTest = IdParserRegex.Match(Show.Image); if (IdParseTest.Success) { Show.ID = Convert.ToInt32(IdParseTest.Groups[1].Value); } Show.Name = Document.QuerySelector(".playlist-title").QuerySelector("h1").Text(); Regex SezonAndBolum = new Regex(@"(.*?) ([\d]+). sezon ([\d]+). bölüm izle"); Regex OnlyBolum = new Regex(@"(.*?) ([\d]+). bölüm izle"); Regex Onlyizle = new Regex(@"(.*?) izle"); TextInfo ti = CultureInfo.CurrentCulture.TextInfo; var EpisodesHTML = Document.QuerySelectorAll(".episodeBtn"); foreach (var EpisodeHTML in EpisodesHTML) { var ShortEp = new ShortEpisode(); ShortEp.Name = EpisodeHTML.QuerySelector("p>span").Text(); ShortEp.EpID = EpisodeHTML.QuerySelector("p>meta").Attributes["content"].Value; EpisodeHTML.QuerySelector("p>small>br").Remove(); ShortEp.PublisedDay = EpisodeHTML.QuerySelector("p>small").Text().ClearHtmlTags(); ShortEp.Image = EpisodeHTML.QuerySelector(".imgContainer>img").Attributes["src"].Value; ShortEp.Uri = EpisodeHTML.Attributes["data-slug"].Value; var TestSezonAndBolum = SezonAndBolum.Match(ShortEp.Name.ToLower()); if (TestSezonAndBolum.Success) { ShortEp.ShowName = ti.ToTitleCase(TestSezonAndBolum.Groups[1].Value); ShortEp.SeasonID = TestSezonAndBolum.Groups[2].Value; } else { var TestBolum = OnlyBolum.Match(ShortEp.Name.ToLower()); if (TestBolum.Success) { ShortEp.ShowName = ti.ToTitleCase(TestBolum.Groups[1].Value); } else { var TestIzle = Onlyizle.Match(ShortEp.Name.ToLower()); if (TestIzle.Success) { ShortEp.ShowName = ti.ToTitleCase(TestIzle.Groups[1].Value); } else { ShortEp.ShowName = ShortEp.Name; } } } Show.Episodes.Add(ShortEp); } Show.Description = Document.QuerySelector("p[itemprop=description]").Text(); Donut = Result.Success(Show); } return(Donut); }
async public Task <IResult <NewEpisode> > GetNewEpisodes(int Page = 1) { IResult <NewEpisode> Donut = null; var Liste = new NewEpisode(); var Req = new RestRequest("listeler/yenibolum/sayfa-" + Page.ToString()); var Res = this._HttpClient.Get(Req); if (Res.StatusCode != System.Net.HttpStatusCode.OK) { Donut = Result.Fail <NewEpisode>(Res.StatusDescription); } else { TextInfo ti = CultureInfo.CurrentCulture.TextInfo; var Document = await Res.Content.ConvertHTML(); var BolumlerHTMLS = Document.QuerySelectorAll(".flx-block"); Regex SezonAndBolum = new Regex(@"(.*?) ([\d]+). sezon ([\d]+). bölüm izle"); Regex OnlyBolum = new Regex(@"(.*?) ([\d]+). bölüm izle"); Regex Onlyizle = new Regex(@"(.*?) izle"); foreach (var BolumHTML in BolumlerHTMLS) { ShortEpisode ShortEpisode = new ShortEpisode(); var Chip = BolumHTML.QuerySelectorAll(".info-chip")[1].Text().ToLower().Trim().Replace(" ", ""); var Bol = Chip.Split('/'); if (Chip.Contains("böl")) { ShortEpisode.EpID = Bol[0].Replace("böl", "").Trim(); } else { ShortEpisode.EpID = Bol[0].Replace(" ", "").Trim(); } ShortEpisode.Name = BolumHTML.QuerySelector(".bar>h4").Text(); var TestSezonAndBolum = SezonAndBolum.Match(ShortEpisode.Name.ToLower()); if (TestSezonAndBolum.Success) { ShortEpisode.ShowName = ti.ToTitleCase(TestSezonAndBolum.Groups[1].Value); ShortEpisode.SeasonID = TestSezonAndBolum.Groups[2].Value; } else { var TestBolum = OnlyBolum.Match(ShortEpisode.Name.ToLower()); if (TestBolum.Success) { ShortEpisode.ShowName = ti.ToTitleCase(TestBolum.Groups[1].Value); } else { var TestIzle = Onlyizle.Match(ShortEpisode.Name.ToLower()); if (TestIzle.Success) { ShortEpisode.ShowName = ti.ToTitleCase(TestIzle.Groups[1].Value); } else { ShortEpisode.ShowName = ShortEpisode.Name; } } } ShortEpisode.Uri = BolumHTML.Attributes["data-href"].Value; ShortEpisode.Image = BolumHTML.QuerySelector("a>img").Attributes["src"].Value; Liste.Episodes.Add(ShortEpisode); } var PaginationHtml = Document.QuerySelectorAll(".pagination")[0]; Liste.Pagination.Current = Convert.ToInt32(PaginationHtml.QuerySelector(".active").Text()); Liste.Pagination.Max = Convert.ToInt32(PaginationHtml.QuerySelectorAll("li")[PaginationHtml.QuerySelectorAll("li").Length - 2].Text()); Donut = Result.Success(Liste); } return(Donut); }