class Newsblurry::Connection

Public Class Methods

new(username, password) click to toggle source
# File lib/newsblurry/connection.rb, line 9
def initialize(username, password)
  options = { body: { username: username, password: password } }
  response = post_request('/api/login', options)
  @cookie = response.headers['set-cookie']
end

Public Instance Methods

mark_as_read(story_hash) click to toggle source
# File lib/newsblurry/connection.rb, line 23
def mark_as_read(story_hash)
  options = { body: { story_hash: story_hash } }
  post_request('/reader/mark_story_hashes_as_read', options)
end
unread_stories() click to toggle source
# File lib/newsblurry/connection.rb, line 15
def unread_stories
  feed_array = feeds
  unread_feed_story_hashes.keys.flat_map do |feed_id|
    feed = feed_array.find { |f| f.id == feed_id.to_i }
    unread_stories_for_feed(feed)
  end
end

Private Instance Methods

feeds() click to toggle source
# File lib/newsblurry/connection.rb, line 30
def feeds
  response = get_request('/reader/feeds')
  FeedParser.new(response['feeds']).feeds
end
get_request(url, options = {}) click to toggle source
# File lib/newsblurry/connection.rb, line 50
def get_request(url, options = {})
  options.merge!(headers)
  self.class.get(url, options)
end
headers() click to toggle source
# File lib/newsblurry/connection.rb, line 60
def headers
  { headers: {
    'User-Agent' => "#{self.class.name} - #{Newsblurry::VERSION}",
    'Cookie' => @cookie || '' }
  }
end
post_request(url, options = {}) click to toggle source
# File lib/newsblurry/connection.rb, line 55
def post_request(url, options = {})
  options.merge!(headers)
  self.class.post(url, options)
end
unread_feed_story_hashes() click to toggle source
# File lib/newsblurry/connection.rb, line 45
def unread_feed_story_hashes
  response = get_request('/reader/unread_story_hashes')
  response['unread_feed_story_hashes']
end
unread_stories_for_feed(feed) click to toggle source
# File lib/newsblurry/connection.rb, line 35
def unread_stories_for_feed(feed)
  options = {
    query: {
      read_filter: 'unread', include_story_content: false
    }
  }
  response = get_request("/reader/feed/#{feed.id}", options)
  StoryParser.new(feed, response['stories']).stories
end