module NewsletterReader

Constants

VERSION

Public Class Methods

newsletters() click to toggle source
# File lib/newsletter_reader.rb, line 11
def self.newsletters
  gmail = Gmail.new(ENV['GMAIL_USERNAME'], ENV['GMAIL_PASSWORD'])
  parsed_links = gmail.label('newsletter').emails.each_with_object({}) do |email, links|
    mail = Mail.read_from_string email.message
    newsletter_name = mail['List-Id'].value[/(.+)</, 1].strip

    doc = Nokogiri::HTML(mail.html_part.body.decoded)

    newsletter_links = Parser.for(newsletter_name).parse(doc)

    links[newsletter_name] = newsletter_links
  end
  gmail.logout

  parsed_links.to_json
end