rsocial 0.3.0 → 0.4.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/Gemfile +2 -10
- data/Rakefile +9 -0
- data/lib/rsocial.rb +2 -1
- data/lib/rsocial/runner.rb +2 -2
- data/lib/rsocial/utils.rb +18 -0
- data/rsocial.gemspec +8 -2
- data/spec/rsocial/facebook/client/pages_spec.rb +16 -0
- data/spec/rsocial/instagram/client/users_spec.rb +18 -0
- data/spec/rsocial/twitter/client/users_spec.rb +19 -0
- data/spec/rsocial/twitter_spec.rb +13 -0
- data/spec/rsocial/youtube/client/channels_spec.rb +16 -0
- data/spec/rsocial/youtube/client/users_spec.rb +16 -0
- data/spec/rsocial_spec.rb +2 -0
- metadata +111 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb0ca6b81936691af1ffc1e2f334ca29fdf0798a
|
4
|
+
data.tar.gz: efd1216219679676c8328bf8fe9b9a641f761e0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52aa382675120e078e5769eba733502b4ae50804f5bc8aec779721699742fd275f264791323648ca3be784c45209b15906e99a5c98e8f55d44f3a446754721d9
|
7
|
+
data.tar.gz: f7af2227b1c7e0619eff6f055216670b818974df5c8fc44235fd62941a1cb15e664fb812061fe5f5d42fa836cec5c433f8c7dcf234f968d008f69cb4ddbf91e8
|
data/Gemfile
CHANGED
data/Rakefile
ADDED
data/lib/rsocial.rb
CHANGED
data/lib/rsocial/runner.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'headless'
|
2
2
|
|
3
3
|
module RSocial
|
4
|
-
class Runner
|
4
|
+
class Runner < Utils
|
5
5
|
def initialize(options={})
|
6
6
|
@options = options
|
7
7
|
end
|
@@ -41,7 +41,7 @@ module RSocial
|
|
41
41
|
|
42
42
|
def execute(script)
|
43
43
|
begin
|
44
|
-
Driver.instance.firefox.execute_script(script)
|
44
|
+
h2n(Driver.instance.firefox.execute_script(script))
|
45
45
|
rescue Selenium::WebDriver::Error::JavascriptError
|
46
46
|
"Javascript Error"
|
47
47
|
rescue Selenium::WebDriver::Error::UnknownError
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'headless'
|
2
|
+
|
3
|
+
module RSocial
|
4
|
+
class Utils
|
5
|
+
def human_to_number(human)
|
6
|
+
result = human.gsub(/likes/,"")
|
7
|
+
if result.upcase.include? "K"
|
8
|
+
result = result.upcase.gsub("K","").gsub(/\D/,"").to_f*1000
|
9
|
+
elsif result.upcase.include? "M"
|
10
|
+
result = result.upcase.gsub("M","").gsub(/\D/,"").to_f*1000000
|
11
|
+
else
|
12
|
+
result = result.gsub(/\D/,"")
|
13
|
+
end
|
14
|
+
result.to_i
|
15
|
+
end
|
16
|
+
alias_method :h2n, :human_to_number
|
17
|
+
end
|
18
|
+
end
|
data/rsocial.gemspec
CHANGED
@@ -4,8 +4,14 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'rsocial'
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.add_development_dependency
|
8
|
-
s.add_development_dependency
|
7
|
+
s.add_development_dependency "rake"
|
8
|
+
s.add_development_dependency "rspec"
|
9
|
+
s.add_development_dependency "rspec-nc"
|
10
|
+
s.add_development_dependency "guard"
|
11
|
+
s.add_development_dependency "guard-rspec"
|
12
|
+
s.add_development_dependency "pry"
|
13
|
+
s.add_development_dependency "pry-remote"
|
14
|
+
s.add_development_dependency "pry-nav"
|
9
15
|
s.add_runtime_dependency('selenium-webdriver', '~> 2.53', '>= 2.53.4')
|
10
16
|
s.add_runtime_dependency('headless', '~> 2.3', '>= 2.3.0')
|
11
17
|
s.description = "A ruby social media stat crawler"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
describe RSocial::Facebook::Client::Pages do
|
2
|
+
describe 'Facebook.client.page()' do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@client = RSocial::Facebook.client({})
|
6
|
+
@user = @client.page("RyanBingham")
|
7
|
+
end
|
8
|
+
|
9
|
+
#{:followers=>"149,207 likes", :handle=>"RyanBingham"}
|
10
|
+
it 'should find page stats' do
|
11
|
+
expect(@user[:followers]).to be_an Integer
|
12
|
+
expect(@user[:handle]).to be_an String
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
describe RSocial::Instagram::Client::Users do
|
2
|
+
describe 'Instagram.client.user()' do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@client = RSocial::Instagram.client({})
|
6
|
+
@user = @client.user("ryanbingham_official")
|
7
|
+
end
|
8
|
+
|
9
|
+
#{:posts=>"1,458", :followers=>"43.8k", :following=>"171", :handle=>"ryanbingham_official"}
|
10
|
+
it 'should find user stats' do
|
11
|
+
expect(@user[:posts]).to be_an Integer
|
12
|
+
expect(@user[:following]).to be_an Integer
|
13
|
+
expect(@user[:followers]).to be_an Integer
|
14
|
+
expect(@user[:handle]).to be_an String
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
describe RSocial::Twitter::Client::Users do
|
2
|
+
describe 'Twitter.client.user()' do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@client = RSocial::Twitter.client({})
|
6
|
+
@user = @client.user("RyanBingham")
|
7
|
+
end
|
8
|
+
|
9
|
+
#{:tweets=>"5,668", :following=>"633", :followers=>"39.8K", :likes=>"14.8K", :handle=>"RyanBingham"}
|
10
|
+
it 'should find user stats' do
|
11
|
+
expect(@user[:tweets]).to be_an Integer
|
12
|
+
expect(@user[:following]).to be_an Integer
|
13
|
+
expect(@user[:followers]).to be_an Integer
|
14
|
+
expect(@user[:likes]).to be_an Integer
|
15
|
+
expect(@user[:handle]).to be_an String
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
describe RSocial::Youtube::Client::Channels do
|
2
|
+
describe 'Youtube.client.channel()' do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@client = RSocial::Youtube.client({})
|
6
|
+
@channel = @client.channel("UCXScCWtV6cFkiIMRioSWMEA")
|
7
|
+
end
|
8
|
+
|
9
|
+
#{:subscribers=>"5,016", :channel_id=>"UCXScCWtV6cFkiIMRioSWMEA"}
|
10
|
+
it 'should find user stats' do
|
11
|
+
expect(@channel[:subscribers]).to be_an Integer
|
12
|
+
expect(@channel[:channel_id]).to be_an String
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
describe RSocial::Youtube::Client::Users do
|
2
|
+
describe 'Youtube.client.user()' do
|
3
|
+
|
4
|
+
before(:each) do
|
5
|
+
@client = RSocial::Youtube.client({})
|
6
|
+
@user = @client.user("ryanbingham")
|
7
|
+
end
|
8
|
+
|
9
|
+
#{:subscribers=>"11,131", :handle=>"ryanbingham"}
|
10
|
+
it 'should find user stats' do
|
11
|
+
expect(@user[:subscribers]).to be_an Integer
|
12
|
+
expect(@user[:handle]).to be_an String
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsocial
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ed Richards
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec-nc
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: guard
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry-remote
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-nav
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
39
123
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
124
|
+
version: '0'
|
41
125
|
- !ruby/object:Gem::Dependency
|
42
126
|
name: selenium-webdriver
|
43
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,6 +171,7 @@ files:
|
|
87
171
|
- ".gitignore"
|
88
172
|
- Gemfile
|
89
173
|
- README.md
|
174
|
+
- Rakefile
|
90
175
|
- lib/rsocial.rb
|
91
176
|
- lib/rsocial/driver.rb
|
92
177
|
- lib/rsocial/facebook.rb
|
@@ -99,11 +184,19 @@ files:
|
|
99
184
|
- lib/rsocial/twitter.rb
|
100
185
|
- lib/rsocial/twitter/client.rb
|
101
186
|
- lib/rsocial/twitter/client/users.rb
|
187
|
+
- lib/rsocial/utils.rb
|
102
188
|
- lib/rsocial/youtube.rb
|
103
189
|
- lib/rsocial/youtube/client.rb
|
104
190
|
- lib/rsocial/youtube/client/channels.rb
|
105
191
|
- lib/rsocial/youtube/client/users.rb
|
106
192
|
- rsocial.gemspec
|
193
|
+
- spec/rsocial/facebook/client/pages_spec.rb
|
194
|
+
- spec/rsocial/instagram/client/users_spec.rb
|
195
|
+
- spec/rsocial/twitter/client/users_spec.rb
|
196
|
+
- spec/rsocial/twitter_spec.rb
|
197
|
+
- spec/rsocial/youtube/client/channels_spec.rb
|
198
|
+
- spec/rsocial/youtube/client/users_spec.rb
|
199
|
+
- spec/rsocial_spec.rb
|
107
200
|
homepage: http://www.github.com/advectus/rsocial
|
108
201
|
licenses:
|
109
202
|
- MIT
|
@@ -128,4 +221,11 @@ rubygems_version: 2.5.1
|
|
128
221
|
signing_key:
|
129
222
|
specification_version: 4
|
130
223
|
summary: A ruby social media stat crawler
|
131
|
-
test_files:
|
224
|
+
test_files:
|
225
|
+
- spec/rsocial/facebook/client/pages_spec.rb
|
226
|
+
- spec/rsocial/instagram/client/users_spec.rb
|
227
|
+
- spec/rsocial/twitter/client/users_spec.rb
|
228
|
+
- spec/rsocial/twitter_spec.rb
|
229
|
+
- spec/rsocial/youtube/client/channels_spec.rb
|
230
|
+
- spec/rsocial/youtube/client/users_spec.rb
|
231
|
+
- spec/rsocial_spec.rb
|