Sha256: 464d26ffa1f0c9bf071a7744113885ae7c02d2e01797bc9f47bd81750741b362

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

class IdsPlease
  module Grabbers
    class Twitter < IdsPlease::Grabbers::Base

      def grab_link
        @network_id   = page_source.scan(/data-user-id="(\d+)"/).flatten.first
        @avatar       = page_source.scan(/ProfileAvatar-image " src="([^"]+)"/).flatten.first
        @display_name = page_source.scan(/ProfileHeaderCard-nameLink[^>]+>([^<]+)</).flatten.first
        @username     = page_source.scan(/<title>[^\(]+\(@([^\)]+)\)/).flatten.first
        @data = {}
        {
          description: page_source.scan(/ProfileHeaderCard-bio[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'),
          location: page_source.scan(/ProfileHeaderCard-locationText[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'),
          join_date: page_source.scan(/ProfileHeaderCard-joinDateText[^>]+>([^<]+)</).flatten.first.to_s.encode('utf-8'),
        }.each do |k, v|
          next if v.nil? || v == ''
          @data[k] = CGI.unescapeHTML(v).strip
        end
        @counts = {
          tweets: page_source.scan(/statuses_count&quot;:(\d+),&quot;/).flatten.first.to_i,
          following: page_source.scan(/friends_count&quot;:(\d+),&quot;/).flatten.first.to_i,
          followers: page_source.scan(/followers_count&quot;:(\d+),&quot;/).flatten.first.to_i,
          favorites: page_source.scan(/favourites_count&quot;:(\d+),&quot;/).flatten.first.to_i,
          lists: page_source.scan(/listed_count&quot;:(\d+),&quot;/).flatten.first.to_i,
        }
        self
      rescue => e
        p e
        return self
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ids_please-2.2.0 lib/ids_please/grabbers/twitter.rb