Class: NewsApi
- Inherits:
-
Object
- Object
- NewsApi
- Defined in:
- lib/chid/news_api.rb
Overview
Api Reference: newsapi.org/#apiArticles
Defined Under Namespace
Constant Summary collapse
- API_TOKEN =
'ce81e7aeb6c4467880b2ee5e4e2d8492'- SOURCES =
[ :"reddit-r-all", :'google-news', :'bbc-news', :'cnn', :'espn', :'mashable', :techcrunch ]
Class Method Summary collapse
Class Method Details
.articles ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/chid/news_api.rb', line 33 def self.articles sources = self.sources() sources.collect do |s| request = ::HTTP.get("https://newsapi.org/v1/articles?source=#{s.id}&apiKey=#{API_TOKEN}") json_news = JSON.parse request json_news[ 'articles' ].collect do |n| published_at = n[ 'publishedAt' ].nil? ? nil : Date.parse(n[ 'publishedAt' ]) Article.new(json_news[ 'source' ], n[ 'author' ], n[ 'title' ], n[ 'description' ], n[ 'url' ], published_at) end end.flatten end |
.sources ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/chid/news_api.rb', line 48 def self.sources() #request = HTTP.get("https://newsapi.org/v1/sources?language=en") #json_sources = JSON.parse request #json_sources[ 'sources' ].collect do |s| # Source.new(s[ 'id' ], s[ 'name' ], s[ 'description' ], s[ 'category' ]) #end SOURCES.collect do |s| Source.new(s) end end |