class FacebookWordCounter

Constants

FACEBOOK_URL_PREFIX
FACEBOOK_URL_SUFFIX

Public Class Methods

get_word_counts(*facebook_pages) click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 16
def self.get_word_counts(*facebook_pages)
        raise NotLoggedInError unless logged_in?

        facebook_pages.map do |url|
                no_js_url = "#{FACEBOOK_URL_PREFIX}#{url}#{FACEBOOK_URL_SUFFIX}"
                @agent.get(no_js_url)
                {
                        name: get_facebook_name,
                        image: get_facebook_photo_url,
                        words: get_word_counts_on_page
                }
        end
end
setup_browser_agent(username, password) click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 10
def self.setup_browser_agent(username, password)
        @agent = Mechanize.new
        @agent.get(FACEBOOK_URL_PREFIX)
        login(username, password)
end

Private Class Methods

get_facebook_name() click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 43
def self.get_facebook_name
        @agent.page.title
end
get_facebook_photo_url() click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 52
def self.get_facebook_photo_url
        @agent.page.search("img.profilePic").first['src']
end
get_word_counts_on_page() click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 47
def self.get_word_counts_on_page
        all_words = @agent.page.search(".userContent").map { |post| TextCleaner.clean_text(post.text) }.join(' ')
        WordCounter.count_words(all_words)
end
logged_in?() click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 39
def self.logged_in?
        !(@agent.page.uri.to_s =~ /login_attempt/)
end
login(username, password) click to toggle source
# File lib/facebook_word_counter/facebook_word_counter.rb, line 32
def self.login(username, password)
        form = @agent.page.forms.first
        form.email = username
        form.pass = password
        form.submit
end