public void GetNews(object sender = null, ElapsedEventArgs e = null)
        {
            List <_Article> newNews = new List <_Article>();

            try
            {
                var client      = new WebhoseClient(token: token);
                var queryParams = new Dictionary <string, string>();
                queryParams.Add("q", "language:russian");
                queryParams.Add("sort", "crawled");
                queryParams.Add("site", "ruposters.ru");
                var output = client.QueryAsync("filterWebContent", queryParams);
                while (!output.IsCompleted)
                {
                }
                if (output.IsCompleted)
                {
                    DateTime latestArticle = DateTime.MinValue;
                    if (Articles.Count > 0)
                    {
                        latestArticle = Articles[0].published;
                    }

                    for (int i = 0; i < output.Result["posts"].Count(); i++)
                    {
                        var article  = output.Result["posts"][i];
                        var _article = new _Article()
                        {
                            published = article["published"].ToObject <DateTime>(),
                            title     = article["title"].ToObject <string>(),
                            text      = article["text"].ToObject <string>()
                        };
                        if (_article.published > latestArticle)
                        {
                            Articles.Add(_article);
                            newNews.Add(_article);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                foreach (var article in newNews)
                {
                    /*Console.WriteLine(article.title);
                     * Console.WriteLine(article.text);
                     * Console.WriteLine(article.published);*/
                    NewsReceived(new Article(article.title, article.text, article.published.ToString()));
                }
                Console.WriteLine(newNews.Count);
            }
        }
Ejemplo n.º 2
0
        public async Task SimpleTest()
        {
            var client = new WebhoseClient();
            var output = await client.QueryAsync("search", new Dictionary <string, string> {
                { "q", "github" }
            });

            console.WriteLine(output["posts"][0]["text"].ToString());
            console.WriteLine(output["posts"][0]["published"].ToString());

            console.WriteLine(output["posts"].Count().ToString());
            console.WriteLine(output["posts"][0]["language"].Count().ToString());

            output = await output.GetNextAsync();

            console.WriteLine(output["posts"][0]["thread"]["site"].ToString());
        }