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