예제 #1
0
        public async Task Get_Html_From_UrlAsync()
        {
            var expected = AgilityPackHtml;
            var result   = (await HtmlDownloader.GetHtml(Url)).Text;

            Assert.AreEqual(expected, result);
        }
예제 #2
0
 private void ItemsControl_ItemClicked(object sender, RoutedEventArgs e)
 {
     if (e.OriginalSource as KinectTileButton != null)
     {
         var selectedItem = (e.OriginalSource as KinectTileButton).DataContext as NewsModel;
         if (selectedItem != null)
         {
             new AsyncTask <string, int, string>
             {
                 onPreExecute = () =>
                 {
                     WebBrowserContentViewer.Visibility = Visibility.Hidden;
                     GridLoading.Visibility             = Visibility.Visible;
                     (Resources["Loading"] as Storyboard).Begin();
                     return(true);
                 },
                 onUpdate       = progress => { },
                 doInBackground = (input, process) =>
                 {
                     string result = null;
                     result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                     return(result);
                 },
                 onPostExecute = output =>
                 {
                     string itemContent = NewsScreenViewModel.AnalyzeArticle(output);
                     WebBrowserContentViewer.NavigateToString(itemContent);
                     (Resources["Loading"] as Storyboard).Stop();
                     WebBrowserContentViewer.Visibility = Visibility.Visible;
                     GridLoading.Visibility             = Visibility.Hidden;
                 }
             }.Execute(selectedItem.Url);
         }
     }
 }
예제 #3
0
        public List <HostImages> GetImages(string url, int threadCount, int imageCount)
        {
            using CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMinutes(1));

            var images = HtmlParser.GetImages(HtmlDownloader.DownloadHtml(url), imageCount, url);

            try
            {
                Parallel.ForEach(images, new ParallelOptions()
                {
                    MaxDegreeOfParallelism = threadCount, CancellationToken = cancellationTokenSource.Token
                }, (image) =>
                {
                    new ImageDownloader().DownloadImage(image);
                });
            }
            catch {
                //operation cancelled exception//
            }

            var hostsImages = images
                              .Where(img => img.Size != long.MinValue)
                              .GroupBy(image => new Uri(image.Src).Host)
                              .Select(imgGroup => new HostImages()
            {
                Host   = imgGroup.Key,
                Images = imgGroup.ToList()
            })
                              .ToList();

            Response.Headers.Add("Operation-result", $"Downloaded {images.Count(img => img.Size != long.MinValue)}/{imageCount} images");
            return(hostsImages);
        }
예제 #4
0
        // POST: api/Aptekas
        public async Task <IEnumerable <AptekaDrugInfo> > Post([FromBody] AptekasQuery query)
        {
            var html = await HtmlDownloader.Download("http://www.medgorodok.ru" + query.Url);

            var data = MedgorodokParser.Parse(html);

            return(data);
        }
예제 #5
0
        public void ParseTest2()
        {
            var html = HtmlDownloader.Download("http://www.medgorodok.ru/drugs/aspirin-tabl-500-mg-n10-bajer-bitterfeld-gmbh-germaniya-drugs-21184.html");

            html.Wait();

            var result = MedgorodokParser.Parse(html.Result);
        }
예제 #6
0
        public ActionResult ParseTourResult(ParseMatchesResultModel model)
        {
            string html = HtmlDownloader.GetHtml(model.Url);
            string s    = new ForecastParser(QueryFactory, log, UnitOfWorkFactory).ParseResult(html);

            return(View(new ParseMatchesResultModel {
                Result = s
            }));
        }
예제 #7
0
        public CoreHandler(string coresDirectory, string infoDirectory)
        {
            _downloader = new HtmlDownloader();
            _cores      = new List <LocalCore>();

            _coresDirectory = coresDirectory;
            _infoDirectory  = infoDirectory;

            CoreUpdaterSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <CoreUpdaterSettings>();

            _baseUrl          = settings.BaseUrl;
            _infoUrl          = settings.CoreInfoZipUrl;
            _unsupportedCores = new HashSet <string>(CoreUpdaterSettings.DEFAULT_UNSUPPORTED);

            settings.GetPlatformSpecificCoresUrls(out _latestUrl, out _customCoresUrl);
        }
예제 #8
0
        private async Task SetNameAsync()
        {
            if (!(GameObject is Mod mod))
            {
                Text = GameObject.Name;
                return;
            }

            var name = mod.ModInfo?.Name;

            if (string.IsNullOrEmpty(name))
            {
                var folderName = mod.Directory.Name;
                switch (mod.Type)
                {
                case ModType.Default:
                    name = mod.Directory.Name.Replace('_', ' ');
                    break;

                case ModType.Workshops when SteamModNamePersister.Instance.TryFind(folderName, out var modName):
                    name = modName;

                    break;

                case ModType.Workshops:
                {
                    var doc = await HtmlDownloader.GetSteamModPageDocumentAsync(folderName);

                    name = new WorkshopNameResolver().GetName(doc, folderName);
                    SteamModNamePersister.Instance.AddModName(folderName, name);
                    break;
                }
                }
            }

            if (string.IsNullOrEmpty(name))
            {
                name = "Unnamed (Failed to resolve)";
            }

            Text = name !;
            OnPropertyChanged(nameof(Text));
        }
예제 #9
0
        public NewsScreenViewModel()
        {
            string src = null;

            switch (NewsCategoryViewModel.SelectedCateGory)
            {
            case "WorldNews":
                new AsyncTask <string, int, string>
                {
                    onPreExecute   = () => true,
                    onUpdate       = progress => { },
                    doInBackground = (input, process) =>
                    {
                        string result = null;
                        result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                        return(result);
                    },
                    onPostExecute = output =>
                    {
                        WorldNews = GetNewsModelList(output);
                        OnPropertyChanged("WorldNews");
                    }
                }.Execute("http://www.thanhnien.com.vn/_layouts/newsrss.aspx?Channel=Th%E1%BA%BF+gi%E1%BB%9Bi+tr%E1%BA%BB");
                break;

            case "PoliticNews":
                new AsyncTask <string, int, string>
                {
                    onPreExecute   = () => true,
                    onUpdate       = progress => { },
                    doInBackground = (input, process) =>
                    {
                        string result = null;
                        result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                        return(result);
                    },
                    onPostExecute = output =>
                    {
                        PoliticNews = GetNewsModelList(output);
                        OnPropertyChanged("PoliticNews");
                    }
                }.Execute("http://www.thanhnien.com.vn/_layouts/newsrss.aspx?Channel=Ch%C3%ADnh+tr%E1%BB%8B+-+X%C3%A3+h%E1%BB%99i");
                break;

            case "HealthNews":
                new AsyncTask <string, int, string>
                {
                    onPreExecute   = () => true,
                    onUpdate       = progress => { },
                    doInBackground = (input, process) =>
                    {
                        string result = null;
                        result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                        return(result);
                    },
                    onPostExecute = output =>
                    {
                        HealthNews = GetNewsModelList(output);
                        OnPropertyChanged("HealthNews");
                    }
                }.Execute("http://www.thanhnien.com.vn/_layouts/newsrss.aspx?Channel=S%E1%BB%A9c+kh%E1%BB%8Fe");
                break;

            case "ScienceNews":
                new AsyncTask <string, int, string>
                {
                    onPreExecute   = () => true,
                    onUpdate       = progress => { },
                    doInBackground = (input, process) =>
                    {
                        string result = null;
                        result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                        return(result);
                    },
                    onPostExecute = output =>
                    {
                        ScienceNews = GetNewsModelList(output);
                        OnPropertyChanged("ScienceNews");
                    }
                }.Execute("http://www.thanhnien.com.vn/_layouts/newsrss.aspx?Channel=Khoa+h%E1%BB%8Dc");
                break;

            case "TechNews":
                new AsyncTask <string, int, string>
                {
                    onPreExecute   = () => true,
                    onUpdate       = progress => { },
                    doInBackground = (input, process) =>
                    {
                        string result = null;
                        result = HtmlDownloader.byWebClient(input, Encoding.UTF8);
                        return(result);
                    },
                    onPostExecute = output =>
                    {
                        TechNews = GetNewsModelList(output);
                        OnPropertyChanged("TechNews");
                    }
                }.Execute("http://www.thanhnien.com.vn/_layouts/newsrss.aspx?Channel=C%C3%B4ng+ngh%E1%BB%87+th%C3%B4ng+tin");
                break;
            }
        }