instagram_user 0.1.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|