Пример #1
0
        public static void Main(string[] args)
        {
            string usuarioSQL  = ConfigurationSettings.AppSettings["usuarioSQL"];
            string servidorSQL = ConfigurationSettings.AppSettings["servidorSQL"];
            string passwordSQL = ConfigurationSettings.AppSettings["passwordSQL"];
            string bd          = ConfigurationSettings.AppSettings["bdSQL"];

            string cnnStr = "Data Source=" + servidorSQL + ";Initial Catalog=" + bd + ";User ID=" + usuarioSQL + ";Password="******"";

            SqlConnection cnn = new SqlConnection(cnnStr);

            cnn.Open();
            // init with your API key
            var newsApiClient    = new NewsApiClient("a55ecdd5ddd34f279b3b9e1ffd1eefa9");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = "La casa de papel",
                SortBy   = SortBys.Popularity,
                Language = Languages.ES,
                From     = new DateTime(2018, 6, 13),
                PageSize = 100
            });

            //var articulos = newsApiClient.GetTopHeadlines(new EverythingRequest {Page="www"})

            string     queryDelete = "delete from noticias";
            SqlCommand command2    = new SqlCommand(queryDelete, cnn);

            command2.ExecuteNonQuery();

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    // title
                    Console.WriteLine(article.Title);
                    // author
                    Console.WriteLine(article.Author);
                    // description
                    Console.WriteLine(article.Description);
                    // url
                    Console.WriteLine(article.Url);
                    // image
                    Console.WriteLine(article.UrlToImage);
                    // published at
                    Console.WriteLine(article.PublishedAt);
                    Console.WriteLine(article.Source.Id);
                    Console.WriteLine(article.Source.Name);

                    string     queryControl = "insert into NOTICIAS(TITULO,AUTOR,DESCRIPCION,URL,URLTOIMAGE,PUBLICADO,FUENTE_ID,FUENTE_NOMBRE) values('" + article.Title.Replace("'", "") + ")','" + article.Author + "','" + article.Description + "','" + article.Url + "','" + article.UrlToImage + "','" + article.PublishedAt + "','" + article.Source.Id + "','" + article.Source.Name + "')";
                    SqlCommand command      = new SqlCommand(queryControl, cnn);
                    command.ExecuteNonQuery();
                }
            }
            cnn.Close();
            Console.ReadLine();
        }
Пример #2
0
        public async Task FetchNews(string query)
        {
            var apikey           = _config["newskey"].ToString();
            var newsApiClient    = new NewsApiClient($"{apikey}");
            var articlesResponse = newsApiClient.GetTopHeadlines(new TopHeadlinesRequest
            {
                Q        = query,
                Language = Languages.EN,
                PageSize = 4
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                await Context.Channel.SendMessageAsync($"Results Found: {articlesResponse.TotalResults}");

                EconomyHelper.DepositEconomy(Context.User.Id, Context.User.Discriminator, Context.User.Username, 7, _config["brobotapibaseurl"]);
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    var builder = new EmbedBuilder()
                                  .WithTitle($"{article.Title}.")
                                  .WithUrl($"{article.Url}")
                                  .WithDescription($"{article.Description}.")
                                  .AddField("Author", $"{article.Author}.")
                                  .WithImageUrl($"{article.Url}.")
                                  .WithFooter($"{article.PublishedAt}.")
                                  .WithColor(11, 3, 252);

                    var embed = builder.Build();
                    await Context.Channel.SendMessageAsync(null, false, embed);
                }
            }
        }
Пример #3
0
        public bool ValidateNewsAPI()
        {
            /*
             * Fetches NewsAPI credentials to create new client
             */

            Console.WriteLine("Validating News API");
            label1.Text = label1.Text + "\nValidating News API";

            string API_key = "";
            string path    = FindCredentials();

            label1.Text += "\nAPI key path: " + path;

            if (File.Exists(path))
            {
                API_key     = File.ReadLines(path).Skip(0).Take(1).First();
                label1.Text = label1.Text + "\nAPI Key aquired";
            }
            else
            {
                label1.Text = label1.Text + "\nERROR: No news credentials found";
                return(false);
            }

            APIn        = new NewsApiClient(API_key);
            label1.Text = label1.Text + "\nAPI client created";

            return(true);

            //return API;
        }
Пример #4
0
        public List <Article> GetNewsFeed()
        {
            var apiKey        = ConfigurationManager.AppSettings["newsAPIKey"];
            var newsApiClient = new NewsApiClient(apiKey);

            try
            {
                _logger.LogInformation("Getting news feed from api");
                var articlesResponse = newsApiClient.GetTopHeadlines(new TopHeadlinesRequest
                {
                    PageSize = 10,
                    Q        = "Technology",
                    Language = Languages.EN,
                });

                if (articlesResponse.Status == Statuses.Ok)
                {
                    _logger.LogInformation("Status Ok, returning model");
                    return(articlesResponse.Articles);
                }
                else
                {
                    throw new Exception();
                }
            }

            catch (Exception ex)
            {
                _logger.LogError($"Error getting news feed {ex.Message}");
                throw ex.InnerException;
            }
        }
Пример #5
0
        public async Task <ActionResult> Index3()
        {
            // init with your API keyGetEverythingAsync
            var newsApiClient = new NewsApiClient("acffc7a435f24838a883e692c0fa44dc");


            var articlesResponse = newsApiClient.GetEverythingAsync(new EverythingRequest
            {
                // Q = "Apple",

                SortBy   = SortBys.PublishedAt,
                Language = Languages.TR,
                From     = new DateTime(2021, 4, 19)
            }).GetAwaiter().GetResult();

            List <News> mynews = new List <News>();

            foreach (var article in articlesResponse.Articles)
            {
                News news = new News();
                news.Author      = article.Author;
                news.Content     = article.Content;
                news.Title       = article.Title;
                news.Url         = article.Url;
                news.UrlToImage  = article.UrlToImage;
                news.PublishedAt = article.PublishedAt;
                mynews.Add(news);
            }

            return(await Task.Run(() => View(mynews)));
        }
        public ArticlesResult News(string country, string sources, string category)
        {
            var newsApiClient = new NewsApiClient("4f9333875c98436787fa163b2604664a");
            var query         = new TopHeadlinesRequest();

            if (!string.IsNullOrEmpty(country))
            {
                query.Country = Enum.Parse <NewsAPI.Constants.Countries>(country.ToUpper());
            }

            if (!string.IsNullOrEmpty(sources))
            {
                query.Sources = new List <string> {
                    sources
                };
            }

            if (!string.IsNullOrEmpty(category))
            {
                query.Category = Enum.Parse <NewsAPI.Constants.Categories>(
                    new CultureInfo("en-US", false).TextInfo.ToTitleCase(category));
            }

            return(newsApiClient.GetTopHeadlines(query));
        }
Пример #7
0
        public List <NewsModel> GetListNews(string keyphrase, DateTime fromDate)
        {
            var newsApiClient    = new NewsApiClient("c3eb90f31b2946d29c9ffca8cd9c2626");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = keyphrase,
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = fromDate
            });

            var list = new List <NewsModel>();

            for (var i = 0; i < 8; i++)
            {
                var news = new NewsModel()
                {
                    Title = articlesResponse.Articles[i].Title,
                    Url   = articlesResponse.Articles[i].Url,
                    From  = articlesResponse.Articles[i].Source.Name
                };
                list.Add(news);
            }

            return(list);
        }
Пример #8
0
        public void VerifyNewsStories()
        {
            NewsApiClient client = new NewsApiClient(true, DateTime.Now.AddDays(-1));

            client.RequestLatestNews();
            Assert.NotEqual(0, client.StoryCount);
        }
Пример #9
0
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
            // init with your API key
            var newsApiClient    = new NewsApiClient("5a6f078ea39446cda5b9698ccd4e26be");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = "Apple",
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = new DateTime(2018, 1, 25)
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    // title
                    Console.WriteLine(article.Title);
                    // author
                    Console.WriteLine(article.Author);
                    // description
                    Console.WriteLine(article.Description);
                    // url
                    Console.WriteLine(article.Url);
                    // published at
                    Console.WriteLine(article.PublishedAt);
                }
            }
            Console.ReadLine();
        }
Пример #10
0
        public NewsAPITests()
        {
            // set this
            var apiKey = Environment.GetEnvironmentVariable("NewsAPIKey");

            NewsApiClient = new NewsApiClient(apiKey);
        }
Пример #11
0
        public ActionResult <IEnumerable <News> > Get(string search)
        {
            var newsApiKey = "baa2e97368c5442aba7a2d47c77e3258";

            var list = new List <News>();

            var newsApiClient    = new NewsApiClient(newsApiKey);
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = search,
                SortBy   = SortBys.Popularity,
                Language = Languages.PL,
                From     = new DateTime(2019, 6, 15),
            });

            var tmp = new List <Article>();

            tmp = articlesResponse.Articles;


            foreach (var item in tmp)
            {
                var name = new string(item.Title);

                var desp = new string(item.Description);
                var url  = new string(item.Url);

                list.Add(new News(name, desp, url));
            }



            return(list);
        }
 public NewsUI()
 {
     InitializeComponent();
     news = new NewsApiClient(ApiKey);
     GetNews("General News");
     LoadIcon();
 }
Пример #13
0
        public async Task <ActionResult <FeedListingModel> > Get()
        {
            var feedList = new FeedListingModel();

            // init with your API key
            var newsApiClient    = new NewsApiClient("de67b2237afe4fb1b77bfbe773987fca");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = "Trump",
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = new DateTime(2020, 01, 01)
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                foreach (var article in articlesResponse.Articles)
                {
                    feedList.TotalResults = articlesResponse.TotalResults;
                    feedList.Author       = article.Author;
                    feedList.Description  = article.Description;
                    feedList.PublishedAt  = Convert.ToDateTime(article.PublishedAt);
                    feedList.Title        = article.Title;
                    feedList.Url          = article.Url;
                    feedList.UrlToImage   = article.UrlToImage;
                }
            }

            return(feedList);
        }
Пример #14
0
        public void Init()
        {
            // set this
            var apiKey = Environment.GetEnvironmentVariable("news_key");

            NewsApiClient = new NewsApiClient(apiKey);
        }
Пример #15
0
        public void getNews()
        {
            // init with your API key
            var newsApiClient    = new NewsApiClient("81e27dad45464fc3a21aa17d61f3e3b1");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = "Apple",
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = new DateTime(2018, 1, 25)
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    // title
                    Console.WriteLine(article.Title);
                    // author
                    Console.WriteLine(article.Author);
                    // description
                    Console.WriteLine(article.Description);
                    // url
                    Console.WriteLine(article.Url);
                    // image
                    Console.WriteLine(article.UrlToImage);
                    // published at
                    Console.WriteLine(article.PublishedAt);
                }
            }
            Console.ReadLine();
        }
Пример #16
0
        public IActionResult GetNewsApi(string SearchTerm)
        {
            var newsApiClient    = new NewsApiClient(NewsApiKey);
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = SearchTerm,
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = new DateTime(2019, 10, 5)
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    // title
                    Console.WriteLine(article.Title);
                    // author
                    Console.WriteLine(article.Author);
                    // description
                    Console.WriteLine(article.Description);
                    // url
                    Console.WriteLine(article.Url);
                    // image
                    Console.WriteLine(article.UrlToImage);
                    // published at
                    Console.WriteLine(article.PublishedAt);
                }
            }
            return(Ok(articlesResponse));
        }
Пример #17
0
        async Task DownloadAllCountriesTopHeadlines()
        {
            var client    = NewsApiClient.FromResource();
            var countries = (NewsApiCountry[])Enum.GetValues(typeof(NewsApiCountry));

            foreach (var country in countries)
            {
                var response = await client.GetTopHeadlines(new NewsApiTopHeadlinesRequest
                {
                    Language = NewsApiLanguage.EN,
                    Country  = country,
                    Page     = 0,
                    PageSize = 10,
                });

                if (CatchError(response))
                {
                    return;
                }

                var articles = response.Articles;
                var io       = new NewsApiOfflineCopyWriter(_fileName);
                io.WriteArticles(country.ToString(), articles);

                Debug.Log($"Finished downloading {country}");
            }

            Debug.Log("Finished downloading");
        }
        public void GetNews(object sender = null, ElapsedEventArgs e = null)
        {
            List <NewsAPI.Models.Article> newNews = new List <NewsAPI.Models.Article>();

            try
            {
                var newsApiClient = new NewsApiClient(apiKey);

                var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
                {
                    Q        = "all",
                    SortBy   = SortBys.PublishedAt,
                    Language = Languages.RU,
                    From     = DateTime.Now - TimeSpan.FromDays(1)
                });

                if (articlesResponse.Status == Statuses.Ok)
                {
                    DateTime latestArticle = DateTime.MinValue;
                    if (Articles.Count > 0 && Articles[0].PublishedAt.HasValue)
                    {
                        latestArticle = Articles[0].PublishedAt.Value;
                    }


                    foreach (var article in articlesResponse.Articles)
                    {
                        if (article.PublishedAt.HasValue && article.PublishedAt.Value > latestArticle)
                        {
                            Articles.Add(article);
                            newNews.Add(article);
                        }
                    }
                }
                else
                {
                    Console.WriteLine(articlesResponse.Error.Message);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                foreach (var art in newNews)
                {
                    /*Console.WriteLine(art.Title);
                     * Console.WriteLine(article.Author);
                     * Console.WriteLine(article.Description);
                     * Console.WriteLine(article.Url);
                     * Console.WriteLine(article.UrlToImage);
                     * Console.WriteLine(article.PublishedAt);*/
                    NewsReceived(new MessageSendServe.Article(art.Title, art.Description, art.PublishedAt.ToString()));
                }
            }
        }
Пример #19
0
        public ArticlesResult News()
        {
            var newsApiClient = new NewsApiClient("4f9333875c98436787fa163b2604664a");
            var topNews       = new TopHeadlinesRequest {
                Country = NewsAPI.Constants.Countries.CA
            };

            return(newsApiClient.GetTopHeadlines(topNews));
        }
Пример #20
0
        public static List <MultiLanguageInput> GetNewsNewsApi(ref string news, string q)
        {
            // init with your API key
            var newsApiClient = new NewsApiClient("288e5576cf624fec9fed057fc290fb29");


            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q = q,

                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = DateTime.Today.AddDays(0)
            });
            List <MultiLanguageInput> result = new List <MultiLanguageInput>();

            news = "<table><tr><td>ID</td><td>News Title</td><td>News URL</td></tr>";
            string[] strToReplace = new string[] { "USD/JPY", "USD-JPY" };
            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
                int i = 0;
                // here's the first 20
                foreach (var article in articlesResponse.Articles)
                {
                    // title
                    Console.WriteLine(article.Title);
                    news += "<tr>";
                    // author
                    Console.WriteLine(article.Author);
                    // description
                    Console.WriteLine(article.Description);
                    // url
                    Console.WriteLine(article.Url);
                    // image
                    Console.WriteLine(article.UrlToImage);
                    // published at
                    Console.WriteLine(article.PublishedAt);

                    string articleStr = "";
                    foreach (string str in strToReplace)
                    {
                        articleStr = CleanUpTitle(article.Description, str, q);
                    }
                    result.Add(new MultiLanguageInput("en", i.ToString(), articleStr));
                    news += "<td>" + (i + 1) + "</td>";
                    news += "<td>" + article.Title + "</td>";
                    news += "<td>" + article.Url + "</td>";
                    news += "</tr>";
                    i++;
                }
                news += "</table>";
            }
            return(result);
        }
Пример #21
0
        public List <INewsItem> GetLatestNews()
        {
            var client = NewsApiClient.GetClient();

            var response = client.GetAsync("/v2/top-headlines?sources=techcrunch&apiKey=1ed506b2d88f4400a191fd29778cbbce").Result;

            var result = response.Content.ReadAsAsync <ArticleList>().Result;

            return(result.articles.Select(a => ArticlesResulttoNewsItemConverter.Convert(a)).ToList());
        }
Пример #22
0
        public NewsService(IUserSettingsService _userSettingsService)
        {
            userSettingsService = _userSettingsService;

            // this HttpCLient is used to get all the available sources
            client.BaseAddress = new Uri("https://newsapi.org/v2/");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            //move key to config later
            newsApi = new NewsApiClient("a96df9dbc6624717932b21dabce240d5");
        }
Пример #23
0
        async UniTask DoGetSources()
        {
            var client = NewsApiClient.FromResource();

            client.LogJsonResponses = true;
            var result = await client.GetSources();

            Assert.AreNotEqual(NewsApiStatus.Unknown, result.Status, "status not read properly");
            Assert.AreNotEqual(NewsApiStatus.Error, result.Status, $"Error code: {result.Code}, Message: {result.Message}");
            Assert.IsNotNull(result.Sources, "null source list");
            Assert.Greater(result.Sources.Count(), 0, "no sources");
        }
Пример #24
0
        public ActionResult Index(NewsFeed news)
        {
            var mvcName = typeof(Controller).Assembly.GetName();
            var isMono  = Type.GetType("Mono.Runtime") != null;

            ViewData["Version"] = mvcName.Version.Major + "." + mvcName.Version.Minor;
            ViewData["Runtime"] = isMono ? "Mono" : ".NET";

            var newsApiClient    = new NewsApiClient("cb0c01ef96964a42a903295d3fce7aa0");
            var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
            {
                Q        = "Google",
                SortBy   = SortBys.Popularity,
                Language = Languages.EN,
                From     = new DateTime(2018, 1, 25)
            });

            IList <NewsFeed> articleList = new List <NewsFeed>();

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                Console.WriteLine(articlesResponse.TotalResults);
            }

            // here's the first 20
            foreach (var article in articlesResponse.Articles)
            {
                NewsFeed LatestNews = new NewsFeed();
                {
                    // title
                    LatestNews.Title = article.Title;
                    // author
                    LatestNews.Author = article.Author;
                    // description
                    LatestNews.Description = article.Description;
                    // url
                    LatestNews.Url = article.Url;
                    // image
                    LatestNews.UrlToImage = article.UrlToImage;
                    // published at
                    LatestNews.PublishedAt = article.PublishedAt;
                };

                articleList.Add(LatestNews);

                var list = new List <NewsFeed>(articleList);

                news.NewsList = list;
            }

            return(View(news));
        }
Пример #25
0
        private static async Task <ArticlesResult> getNewsBySource(Module module)
        {
            NewsApiClient newsApiClient = new NewsApiClient(Api.ApiKeys[ApiEnum.NEWSAPI]);

            ArticlesResult topheadlines = await newsApiClient.GetTopHeadlinesAsync(new TopHeadlinesRequest
            {
                Language = module.NewsLanguage,
                Sources  = module.NewsSources
            });

            return(topheadlines);
        }
Пример #26
0
        private static async Task <ArticlesResult> getNewsByCategory(Module module)
        {
            NewsApiClient newsApiClient = new NewsApiClient(Api.ApiKeys[ApiEnum.NEWSAPI]);

            ArticlesResult topheadlines = await newsApiClient.GetTopHeadlinesAsync(new TopHeadlinesRequest
            {
                Category = module.NewsCategory,
                Country  = module.NewsCountry,
                Language = module.NewsLanguage
            });

            return(topheadlines);
        }
Пример #27
0
        public override Task <bool> Start()
        {
            if (Config.ApiKey == "change_me")
            {
                ThrowComponentNeedConfiguration("ApiKey");
            }

            _newsApiClient = new NewsApiClient(Config.ApiKey);

            Enum.TryParse(Config.Language.ToUpper(), out _newsLanguage);

            return(base.Start());
        }
        static async Task Main()
        {
            IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", true, true)
                                    .Build();


            var connectionString = config.GetConnectionString("EventHub");
            var eventHubName     = config["EventHubName"];
            var state            = await GetInitialState(config);

            var newsApiKey = config["NewsApiKey"];
            var delay      = Convert.ToInt32(config["Delay"]) * 1000;

            newsApiClient = new NewsApiClient(newsApiKey);

            await using (var producerClient = new EventHubProducerClient(connectionString, eventHubName))
            {
                var news = new List <ArticleModel>();
                var rng  = new Random();

                while (true)
                {
                    var eventBatch = await producerClient.CreateBatchAsync();

                    var newNews = await GetNews(state);

                    if (newNews.Any())
                    {
                        news.AddRange(newNews);
                    }

                    if (news.Any())
                    {
                        var count    = rng.Next(1, Math.Min(5, news.Count));
                        var toBeSent = news.Take(count).ToList();
                        toBeSent.ForEach(news =>
                        {
                            eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(news))));
                        });
                        await producerClient.SendAsync(eventBatch);

                        Console.WriteLine($"A batch of {toBeSent.Count} events has been published.");

                        news = news.Skip(count).ToList();
                    }

                    await Task.Delay(delay);
                }
            }
        }
Пример #29
0
        public List <ArticleModel> Get(String searchString = "Apple", String country = "us")
        {
            NewsApiClient       newsApiClient = new NewsApiClient(HLNewsLibrary.Properties.Resources.NewsAPIKey);
            List <ArticleModel> articles      = new List <ArticleModel>();
            var articlesResponse = newsApiClient.GetTopHeadlines(new TopHeadlinesRequest
            {
                Q        = searchString,
                Country  = GetCountry(country),
                Language = Languages.EN,
            });

            if (articlesResponse.Status == Statuses.Ok)
            {
                // total results found
                var data = articlesResponse.TotalResults;

                if (articlesResponse.Articles.Count > 0)
                {
                    // here's the first 20
                    foreach (var article in articlesResponse.Articles)
                    {
                        ArticleModel newArticle = new ArticleModel
                        {
                            sourceId    = article.Source.Id,
                            title       = article.Title,
                            description = article.Description,
                            author      = article.Author,
                            url         = article.Url,
                            imageURL    = article.UrlToImage,
                            publishedAt = (DateTime)article.PublishedAt
                        };

                        articles.Add(newArticle);
                    }
                }
                else
                {
                    ArticleModel newArticle = new ArticleModel
                    {
                        sourceId    = "No Data Available",
                        title       = "No Data Available",
                        description = "No Data Available",
                        author      = "No Data Available",
                        url         = "No Data Available",
                    };
                    articles.Add(newArticle);
                }
            }

            return(articles);
        }
Пример #30
0
        static void Main(string[] args)
        {
            // init with your API key
            var newsApiClient = new NewsApiClient("81c072dd1ec540069da4d4069ce99f39");
            int hitsperpage   = 80;
            int i             = 2;
            int j             = 1;
            int tot_arts      = 300;

            while (i <= tot_arts / hitsperpage)
            {
                var articlesResponse = newsApiClient.GetEverything(new EverythingRequest
                {
                    Q        = "Bitcoin",
                    SortBy   = SortBys.Popularity,
                    Language = Languages.EN,
                    From     = new DateTime(2020, 4, 1),
                    PageSize = hitsperpage,
                    Page     = i
                });

                if (articlesResponse.Status == Statuses.Ok)
                {
                    // total results found
                    tot_arts = articlesResponse.TotalResults;
                    int start = (i - 1) * 100 + 1;
                    int end   = start + 99;
                    Console.WriteLine(String.Format("Articles {0}-{1} of {2}", start, end, tot_arts));
                    foreach (var article in articlesResponse.Articles)
                    {
                        // title
                        Console.WriteLine(j.ToString(), article.Title);
                        // url
                        Console.WriteLine(article.Url);
                        // published at
                        Console.WriteLine(article.PublishedAt);

                        if (article.Author != null && article.Description != null && article.PublishedAt != null && article.Title != null)
                        {
                            // Convert to unixtime
                            long unixtime = ((DateTimeOffset)article.PublishedAt).ToUnixTimeSeconds();
                            DataAccess.InsertNews((DateTime)article.PublishedAt, unixtime, article.Url, article.Title, article.Author, article.Description);
                            j++;
                        }
                    }
                }
                Thread.Sleep(3000);
                i++;
            }
            Console.ReadLine();
        }