Sha256: 65c416779354f3c541553c244541e49538e6ab50453dcb5df92602b64128802f

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

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

      def grab_link
        @page_source ||= open(link).read
        @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.encode('utf-8'),
          location: @page_source.scan(/ProfileHeaderCard-locationText[^>]+>([^<]+)</).flatten.first.encode('utf-8'),
          join_date: @page_source.scan(/ProfileHeaderCard-joinDateText[^>]+>([^<]+)</).flatten.first.encode('utf-8'),
        }.each do |k, v|
          next if v.nil? || v == ''
          @data[k] = CGI.unescapeHTML(v)
        end
        self
      rescue => e
        p e
        return self
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ids_please-2.1.2 lib/ids_please/grabbers/twitter.rb
ids_please-2.1.1 lib/ids_please/grabbers/twitter.rb
ids_please-2.1.0 lib/ids_please/grabbers/twitter.rb
ids_please-2.0.0.beta2 lib/ids_please/grabbers/twitter.rb