protected override async Task <IManga> GetMangaFromNode(Uri host, ISiteHttpClient client, HtmlNode manga)
        {
            // Это переводчик, идем дальше.
            if (manga.SelectSingleNode(".//i[@class='fa fa-user text-info']") != null)
            {
                return(null);
            }

            var image    = manga.SelectSingleNode(".//div[@class='img']//a//img");
            var imageUri = image?.Attributes.Single(a => a.Name == "data-original").Value;

            var mangaNode = manga.SelectSingleNode(".//h3//a");
            var mangaUri  = mangaNode.Attributes.Single(a => a.Name == "href").Value;
            var mangaName = mangaNode.Attributes.Single(a => a.Name == "title").Value;

            if (!Uri.TryCreate(mangaUri, UriKind.Relative, out Uri test))
            {
                return(null);
            }

            var result = await Mangas.Create(new Uri(host, mangaUri)).ConfigureAwait(false);

            result.Name = WebUtility.HtmlDecode(mangaName);
            if (!string.IsNullOrWhiteSpace(imageUri))
            {
                result.Cover = await client.GetData(new Uri(host, imageUri)).ConfigureAwait(false);
            }
            return(result);
        }
Exemple #2
0
        protected override async Task ConfigureCookieClient(ISiteHttpClient client, ILogin login)
        {
            await base.ConfigureCookieClient(client, login).ConfigureAwait(false);

            if (!client.GetCookies().Any(c => c.Name == "PHPSESSID"))
            {
                await client.GetPage(login.MainUri).ConfigureAwait(false);
            }
        }
        protected override Task ConfigureCookieClient(ISiteHttpClient client, ILogin login)
        {
            var baseLogin = (BaseLogin)login;

            if (!string.IsNullOrWhiteSpace(baseLogin.UserId) && !client.GetCookies().Any(c => c.Name == "dle_user_id"))
            {
                client.AddCookie("dle_user_id", baseLogin.UserId);
                client.AddCookie("dle_password", baseLogin.PasswordHash);
            }

            return(base.ConfigureCookieClient(client, login));
        }
Exemple #4
0
        protected override async Task <IManga> GetMangaFromNode(Uri host, ISiteHttpClient client, HtmlNode manga)
        {
            var image    = manga.SelectSingleNode(".//div[@class='manga_images']//img");
            var imageUri = image?.Attributes.Single(a => a.Name == "src").Value;

            var mangaNode = manga.SelectSingleNode(".//h2//a");
            var mangaUri  = mangaNode.Attributes.Single(a => a.Name == "href").Value;
            var mangaName = mangaNode.InnerText;

            var result = await Mangas.Create(new Uri(mangaUri)).ConfigureAwait(false);

            result.Name = WebUtility.HtmlDecode(mangaName);
            if (!string.IsNullOrWhiteSpace(imageUri))
            {
                result.Cover = await client.GetData(new Uri(host, imageUri)).ConfigureAwait(false);
            }
            return(result);
        }
Exemple #5
0
 protected virtual Task ConfigureCookieClient(ISiteHttpClient client, ILogin login)
 {
     return(Task.CompletedTask);
 }
Exemple #6
0
 protected override Task ConfigureCookieClient(ISiteHttpClient client, ILogin login)
 {
     client.AddCookie("ageRestrict", "40");
     return(base.ConfigureCookieClient(client, login));
 }
Exemple #7
0
 protected abstract Task <IManga> GetMangaFromNode(Uri host, ISiteHttpClient client, HtmlNode manga);
 protected override Task ConfigureCookieClient(ISiteHttpClient client, ILogin login)
 {
     client.AddCookie(GroupleParser.CookieKey, "true");
     return(base.ConfigureCookieClient(client, login));
 }
 public Task <IManga> GetMangaFromBookmarks(Uri host, ISiteHttpClient client, HtmlNode mangaNode)
 {
     return(GetMangaFromNode(host, client, mangaNode));
 }