Example #1
0
 public NHentaiTests()
 {
     source     = new CancellationTokenSource();
     logger     = new Mock <ILogger>().Object;
     downloader = new HttpDownloader(new FilenameDetector(new GoogleProxyFilenameDetector()));
     service    = new NHentai(logger, downloader, new XPathSelector(), new Retry());
 }
        private async Task <List <object> > SelectSiteAsync(HentaiModel hentai)
        {
            switch (hentai.Site)
            {
            case "Hentai.cafe":
            {
                var(paths, count) = await HentaiCafe.CollectImagesTaskAsync(hentai, SetPages);

                Pages = $"{paths.Count} : {count}";
                return(paths);
            }

            case "nHentai.net":
            {
                var(paths, count) = await NHentai.CollectImagesTaskAsync(hentai, SetPages);

                Pages = $"{paths.Count} : {count}";
                return(paths);
            }

            case "ExHentai.org":
            {
                var(paths, count) = await ExHentai.CollectImagesTaskAsync(hentai, SetPages);

                Pages = $"{paths.Count} : {count}";
                return(paths);
            }

            case "Pururin.us":
            {
                var(paths, count) = await Pururin.CollectImagesTaskAsync(hentai, SetPages);

                Pages = $"{paths.Count} : {count}";
                return(paths);
            }

            case "Imgur.com":
            {
                var(paths, count) = await Sites.Imgur.CollectImagesTaskAsync(hentai, SetPages);

                Pages = $"{paths.Count} : {count}";
                return(paths);
            }

            default:
                return(null);
            }
        }
Example #3
0
        private async Task LoadnHentaiPageAsync(int value, bool delete = true)
        {
            SettingsController.Save();
            if (NHentaiPageLoading)
            {
                return;
            }
            NHentaiPageLoading = true;
            NextnHentaiPage    = NextnHentaiPage + value;
            NHentaiLoadedPage  = NHentaiLoadedPage + value;
            if (_nHentai.Count > 0 && delete)
            {
                _nHentai.Clear();
            }
            NHentaiView.Instance.ScrollViewer.ScrollToTop();
            var searchquery = SettingsController.Settings.nHentai.SearchQuery;
            List <HentaiModel> i;

            if (string.IsNullOrEmpty(searchquery))
            {
                i = await NHentai.GetLatestAsync($"https://nhentai.net/?page={NHentaiLoadedPage}");
            }
            else
            {
                i = await NHentai.GetLatestAsync(
                    $"https://nhentai.net/search/?q={searchquery.Replace(" ", "+")}&sort={SortItems[SelectedSort].ToLower()}&page={NHentaiLoadedPage}");
            }
            foreach (var hentaiModel in i)
            {
                if (FavoritesController.FavoriteMd5s.Contains(hentaiModel.Md5))
                {
                    hentaiModel.Favorite = true;
                }
                _nHentai.Add(hentaiModel);
                await Task.Delay(10);
            }
            NHentaiPageLoading = false;
        }