class FetchUserData
Public Instance Methods
fetch_user_data(username)
click to toggle source
# File lib/helper/fetch_user_data.rb, line 3 def fetch_user_data username url = "#{@member_root_url}#{username}" begin page = @scraper.get(url) userid = page.search(".toggle-follow-user")[0]["data-user-id"] begin fullname = page.search('.member-details h1')[0].children.text.to_s rescue fullname = nil end begin karma = page.search('.user-stats .number')[0].text.to_i rescue karma = nil end begin followers = page.search('.user-stats .number')[1].text.to_i rescue followers = nil end begin following = page.search('.user-stats .number')[2].text.to_i rescue following = nil end begin company = page.search("div.member-banner-details p:nth-of-type(1) a")[0].parent.text.strip.chomp.gsub("\n"," ").gsub("\t"," ") rescue company = nil end begin company_link = page.search("div.member-banner-details p:nth-of-type(1) a")[0]["href"] rescue company_link = nil end begin image = page.search(".member-banner .avatar img")[0]["src"] rescue image = nil end begin location = page.search("div.member-banner-details p:nth-of-type(2)")[0].text.strip rescue location = nil end begin tw_link = page.search(".member .twitter")[0]["href"] rescue tw_link = nil end begin in_link = page.search(".member .linkedin")[0]["href"] rescue in_link = nil end begin fb_link = page.search(".member .facebook")[0]["href"] rescue fb_link = nil end begin gplus_link = page.search(".member .google-plus")[0]["href"] rescue gplus_link = nil end begin web_link = page.search('.fa-link')[0].parent["href"] rescue web_link = nil end begin badge_wrapper , badges = page.search('.badges li') , [] badge_wrapper.each do |badge| badges.push(badge.search('.karma_title').text.strip) end number_badges = (badges.count == 0) ? nil : badges.count badges = number_badges.nil? ? nil : badges rescue badges = nil number_badges = nil end begin recent_activity = page.search('.activity-list-submitted').first.text[2..-1] rescue recent_activity = nil end return { "response" => "Success", "userid" => userid, "name" => fullname, "image_url" => image, "location" => location, "karma" => karma, "number_followers" => followers, "number_following" => following, "work" => company, "company_link" => company_link, "twitter_link" => tw_link, "facebook_link" => fb_link, "linkedin_link" => in_link, "googleplus_link" => gplus_link, "my_link" => web_link, "number_badges" => number_badges, "badges" => badges, "recent_activity" => recent_activity } rescue return { "response" => "Failure" } end end