instagram_user 0.1.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -3
- data/lib/instagram_user/client.rb +18 -5
- data/lib/instagram_user/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcd1fb801da58a3fa43d84feca7a3bcd5b4d0b713ccd5f2c1bb0899a1d5589be
|
4
|
+
data.tar.gz: 25b98881499d8f7d85ed72bc7f5bff8f410cf9eb53c031f5dc1b7bc9aa24fea2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91c9dbe134413dc9fcc0a151e75de90bd0cc35bade7410cee8573b03131ae0a27f3926c5c0e373269fcefb29ed97a60352f6e3504ab52d93d9b78042ced6c9bd
|
7
|
+
data.tar.gz: 98e037164f0b8b8ba691b48562d0772343cd3b351226d85a275169aa71829c9982b71049535d93569b7282b90be2dfd7bb0618f9d471bb819e8065180d9b2d07
|
data/.travis.yml
CHANGED
@@ -1,10 +1,18 @@
|
|
1
|
-
sudo:
|
1
|
+
sudo: required
|
2
|
+
dist: trusty
|
2
3
|
language: ruby
|
3
|
-
script: bundle exec rake ci
|
4
4
|
rvm:
|
5
5
|
- 2.1.0
|
6
6
|
- 2.2.0
|
7
7
|
- 2.3.0
|
8
8
|
- 2.4.0
|
9
9
|
- 2.5.0
|
10
|
-
before_install:
|
10
|
+
before_install:
|
11
|
+
- gem install bundler -v 1.15.4
|
12
|
+
- sudo apt-get update
|
13
|
+
- sudo apt-get install chromium-chromedriver
|
14
|
+
before_script:
|
15
|
+
- "export PATH=$PATH:/usr/lib/chromium-browser/"
|
16
|
+
- "export DISPLAY=:99.0"
|
17
|
+
- "sh -e /etc/init.d/xvfb start"
|
18
|
+
- sleep 3 # give xvfb some time to start
|
@@ -2,6 +2,7 @@ require 'mechanize'
|
|
2
2
|
require 'selenium-webdriver'
|
3
3
|
require 'json'
|
4
4
|
require 'instagram_user/version'
|
5
|
+
require 'pry'
|
5
6
|
|
6
7
|
module InstagramUser
|
7
8
|
class Client
|
@@ -60,7 +61,7 @@ module InstagramUser
|
|
60
61
|
@driver.find_element(:xpath, '//article//button').click
|
61
62
|
sleep(2)
|
62
63
|
|
63
|
-
@driver.get "https://www.instagram.com/#{
|
64
|
+
@driver.get "https://www.instagram.com/#{user_name}"
|
64
65
|
@wait.until { !@driver.find_elements(:xpath, '//article//button').empty? }
|
65
66
|
color = @driver.find_element(:xpath, '//article//button').css_value("color")
|
66
67
|
(color == "rgba(255, 255, 255, 1)") ? false : true
|
@@ -80,19 +81,28 @@ module InstagramUser
|
|
80
81
|
@driver.find_element(:xpath, '//article//button').click
|
81
82
|
sleep(2)
|
82
83
|
|
83
|
-
@driver.get "https://www.instagram.com/#{
|
84
|
+
@driver.get "https://www.instagram.com/#{user_name}"
|
84
85
|
@wait.until { !@driver.find_elements(:xpath, '//article//button').empty? }
|
85
86
|
color = @driver.find_element(:xpath, '//article//button').css_value("color")
|
86
87
|
(color != "rgba(255, 255, 255, 1)") ? false : true
|
87
88
|
end
|
88
89
|
|
90
|
+
def get_cookies_d
|
91
|
+
@driver.manage.all_cookies
|
92
|
+
end
|
93
|
+
|
94
|
+
def get_cookies_s
|
95
|
+
@session.cookie_jar.cookies
|
96
|
+
end
|
97
|
+
|
89
98
|
private
|
90
99
|
|
91
100
|
def selenium_setting
|
92
101
|
options = Selenium::WebDriver::Chrome::Options.new
|
93
102
|
options.add_argument("--user-agent=#{@user_agent}")
|
94
|
-
|
103
|
+
options.add_argument('--headless')
|
95
104
|
@driver = Selenium::WebDriver.for :chrome, options: options
|
105
|
+
@driver.get 'https://www.instagram.com/'
|
96
106
|
@session.cookie_jar.cookies.each do |c|
|
97
107
|
cookie_hash = {
|
98
108
|
name: c.name,
|
@@ -103,7 +113,10 @@ module InstagramUser
|
|
103
113
|
domain: c.domain,
|
104
114
|
for_domain: c.for_domain,
|
105
115
|
httponly: c.httponly,
|
106
|
-
max_age: c.max_age
|
116
|
+
max_age: c.max_age,
|
117
|
+
created_at: c.created_at,
|
118
|
+
accessed_at: c.accessed_at,
|
119
|
+
origin: c.origin.to_s
|
107
120
|
}
|
108
121
|
@driver.manage.add_cookie(cookie_hash)
|
109
122
|
end
|
@@ -114,7 +127,7 @@ module InstagramUser
|
|
114
127
|
url = format USER_INFO_URL, user_name
|
115
128
|
page = @session.get(url)
|
116
129
|
json = JSON.parse(page.body)
|
117
|
-
@user_ids[user_name] = json["user"]["id"]
|
130
|
+
@user_ids[user_name] = json["graphql"]["user"]["id"]
|
118
131
|
@user_ids[user_name]
|
119
132
|
end
|
120
133
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: instagram_user
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuzuru Suzuki
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|