Class: NewsApi

Inherits:
Object
  • Object
show all
Defined in:
lib/chid/news_api.rb

Overview

Api Reference: newsapi.org/#apiArticles

Defined Under Namespace

Classes: Article, Source

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

.articlesObject



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

.sourcesObject



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