class Insta::User

Attributes

config[RW]
data[RW]
language[R]
password[R]
session[RW]
username[R]

Public Class Methods

new(username, password, session = nil, data = nil, config = nil) click to toggle source
# File lib/insta/user.rb, line 17
def initialize(username, password, session = nil, data = nil, config = nil)
  @username = username
  @password = password
  @language = 'en_US'
  @session = session
  @data = data
  @config = config
end

Public Instance Methods

api() click to toggle source
# File lib/insta/user.rb, line 58
def api
  (18 + (md5int % 5)).to_s
end
device_id() click to toggle source
# File lib/insta/user.rb, line 99
def device_id
  'android-' + md5[0..15]
end
dpi() click to toggle source
# File lib/insta/user.rb, line 67
def dpi
  %w[801 577 576 538 515 424 401 373][md5int % 8]
end
info() click to toggle source
# File lib/insta/user.rb, line 76
def info
  line = Device.devices[md5int % Device.devices.count]
  {
    manufacturer: line[0],
    device: line[1],
    model: line[2]
  }
end
md5() click to toggle source
# File lib/insta/user.rb, line 50
def md5
  Digest::MD5.hexdigest @username
end
md5int() click to toggle source
# File lib/insta/user.rb, line 54
def md5int
  (md5.to_i(32) / 10e32).round
end
release() click to toggle source

@return [string]

# File lib/insta/user.rb, line 63
def release
  %w[4.0.4 4.3.1 4.4.4 5.1.1 6.0.1][md5int % 5]
end
resolution() click to toggle source
# File lib/insta/user.rb, line 71
def resolution
  %w[3840x2160 1440x2560 2560x1440 1440x2560
     2560x1440 1080x1920 1080x1920 1080x1920][md5int % 8]
end
search_for_user(username, data = {}) click to toggle source
# File lib/insta/user.rb, line 26
def search_for_user (username, data = {})
  Insta::Account.search_for_user(self, username, data)
end
search_for_user_graphql(username, data = {}) click to toggle source
# File lib/insta/user.rb, line 30
def search_for_user_graphql (username, data = {})
  Insta::Account.search_for_user_graphql(self, username, data)
end
user_followers(limit = Float::INFINITY, data = {}) click to toggle source
# File lib/insta/user.rb, line 42
def user_followers(limit = Float::INFINITY, data = {})
  Insta::Feed.user_followers(self, data, limit)
end
user_followers_graphql(limit = Float::INFINITY, data = {}) click to toggle source
# File lib/insta/user.rb, line 46
def user_followers_graphql(limit = Float::INFINITY, data = {})
  Insta::Feed.user_followers_graphql(self, data, limit)
end
user_media(data = {}) click to toggle source
# File lib/insta/user.rb, line 34
def user_media(data = {})
  Insta::Feed.user_media(self, data)
end
user_media_graphql(data = {}) click to toggle source
# File lib/insta/user.rb, line 38
def user_media_graphql(data = {})
  Insta::Feed.user_media_graphql(self, data)
end
useragent() click to toggle source
# File lib/insta/user.rb, line 95
def useragent
  format('Instagram %s Android(%s)', useragent_hash[:version], useragent_hash[:agent].rstrip)
end
useragent_hash() click to toggle source
# File lib/insta/user.rb, line 85
def useragent_hash
  agent = [api + '/' + release, dpi + 'dpi',
           resolution, info[:manufacturer], info[:model], info[:device], @language]

  {
    agent: agent.join('; '),
    version: CONSTANTS::PRIVATE_KEY[:APP_VERSION]
  }
end