rsocial 0.6.2 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7bd9c510d2b1cb3af67c84c2e4d8f795e9ba1402
4
- data.tar.gz: 0574d26b23472fc4551c6817e6dd3531d4de4eb9
3
+ metadata.gz: 74fa551e5ed8e6ae7e21b0a8c3acd9ca63ef5e19
4
+ data.tar.gz: ee0292c47c123323322d6d725dc66dae281172f9
5
5
  SHA512:
6
- metadata.gz: 2c10447ab8d5a8147c43fa761caf462fa3bbbbe6168e498879c7b4eadf0c85c84d52a9c4b22f1fd811ce445cd97af5b56960c0536749fce3bd0ceddc9fe4e2b0
7
- data.tar.gz: cb296f399252cae6fcec148c3896e5c73470665a0e0474ef61f67501e50866760e5a77891086f09d2d387a448ddb34aa6f2586990b6377da4f6386faeb306147
6
+ metadata.gz: 09a10d4381172c2f214577762906ed8c145660f5d85aa5f6e7d43f6835c1408b5322911d9640e32440c2add7a4a89e4a957c468e07eff60b94354fb6e2000ffd
7
+ data.tar.gz: 5b776ee6a18066ff8ddc898a18eda122b9d93b28029bb0f0a6356fdd3fb7c5387f0b750c3e86d29c40b1e5f75350e2ed999b2a3058ff1211dc8b29ddda4142e8
data/README.md CHANGED
@@ -58,6 +58,27 @@ client = RSocial::Youtube.client(:requesting_handle => "my_handle")
58
58
  client.user("TransworldSKATEmag") #=> {:subscribers=>195811, :handle=>"TransworldSKATEmag"}
59
59
  ```
60
60
 
61
+
62
+ #### Shazam
63
+
64
+ ```ruby
65
+ require 'rsocial'
66
+
67
+ client = RSocial::Shazam.client(:requesting_handle => "my_handle")
68
+
69
+ client.page("40229308") #=> {:followers=>189000, :id=>"40229308"}
70
+ ```
71
+
72
+ #### Soundcloud
73
+
74
+ ```ruby
75
+ require 'rsocial'
76
+
77
+ client = RSocial::Soundcloud.client(:requesting_handle => "my_handle")
78
+
79
+ client.page("ryan-bingham") #=> {:followers=>189000, :tracks=>5, :handle=>"ryan-bingham"}
80
+ ```
81
+
61
82
  ## Contributing
62
83
 
63
84
  * Fork the project.
@@ -9,7 +9,11 @@ require 'rsocial/twitter'
9
9
  require 'rsocial/twitter/client'
10
10
  require 'rsocial/youtube'
11
11
  require 'rsocial/youtube/client'
12
+ require 'rsocial/shazam'
13
+ require 'rsocial/shazam/client'
14
+ require 'rsocial/soundcloud'
15
+ require 'rsocial/soundcloud/client'
12
16
 
13
17
  module RSocial
14
- VERSION = '0.6.2'
18
+ VERSION = '0.7.0'
15
19
  end
@@ -4,16 +4,13 @@ module RSocial
4
4
  class Runner < Utils
5
5
  def initialize(options={})
6
6
  @options = options
7
- puts "Runner"
8
- puts @options
9
7
  end
10
8
 
11
9
  def run(url, injections)
12
10
  begin
13
11
  #Headless::Exception: Xvfb not found on your system
14
12
  Headless.ly do
15
- #@wd = Selenium::WebDriver.for :chrome
16
- @wd = Driver.instance.send( @options[:browser] )
13
+ @wd = Driver.instance.send( "firefox" ) #@options[:browser]
17
14
  @wd.navigate.to url
18
15
  inject_each do
19
16
  injections
@@ -0,0 +1,7 @@
1
+ module RSocial
2
+ module Shazam
3
+ def self.client(options={browser:"firefox"})
4
+ Shazam::Client.new(options)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module RSocial
2
+ module Shazam
3
+ class Client < Runner
4
+ Dir[File.expand_path('../client/*.rb', __FILE__)].each{|f| require f}
5
+ include Shazam::Client::Users
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,22 @@
1
+ module RSocial
2
+ module Shazam
3
+ class Client
4
+ module Users
5
+ def user(id)
6
+ run(
7
+ "https://www.shazam.com/artist/#{id}",
8
+ user_injections
9
+ ).merge(:id => id)
10
+ end
11
+
12
+ private
13
+
14
+ def user_injections
15
+ {
16
+ :followers => "return document.getElementsByClassName('js-followers')[0].textContent"
17
+ }
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ module RSocial
2
+ module Soundcloud
3
+ def self.client(options={browser:"firefox"})
4
+ Soundcloud::Client.new(options)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module RSocial
2
+ module Soundcloud
3
+ class Client < Runner
4
+ Dir[File.expand_path('../client/*.rb', __FILE__)].each{|f| require f}
5
+ include Soundcloud::Client::Users
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,23 @@
1
+ module RSocial
2
+ module Soundcloud
3
+ class Client
4
+ module Users
5
+ def user(handle)
6
+ run(
7
+ "https://soundcloud.com/#{handle}/",
8
+ user_injections
9
+ ).merge(:handle => handle)
10
+ end
11
+
12
+ private
13
+
14
+ def user_injections
15
+ {
16
+ :followers => "return document.getElementsByClassName('infoStats__value')[0].textContent",
17
+ :tracks => "return document.getElementsByClassName('infoStats__value')[2].textContent"
18
+ }
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ describe RSocial::Shazam::Client::Users do
2
+ describe 'Shazam.client.user()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Shazam.client({})
6
+ @user = @client.user("40229308")
7
+ end
8
+
9
+ #{:followers=>"254,682"}
10
+ it 'should find user stats' do
11
+ expect(@user[:followers]).to be_an Integer
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ describe RSocial::Soundcloud::Client::Users do
2
+ describe 'Soundcloud.client.user()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Soundcloud.client({})
6
+ @user = @client.user("ryan-bingham")
7
+ end
8
+
9
+ #{:followers=>"254,682", :tracks=>"5"}
10
+ it 'should find user stats' do
11
+ expect(@user[:followers]).to be_an Integer
12
+ expect(@user[:tracks]).to be_an Integer
13
+ end
14
+
15
+ end
16
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsocial
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.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-09-25 00:00:00.000000000 Z
11
+ date: 2016-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -181,6 +181,12 @@ files:
181
181
  - lib/rsocial/instagram/client.rb
182
182
  - lib/rsocial/instagram/client/users.rb
183
183
  - lib/rsocial/runner.rb
184
+ - lib/rsocial/shazam.rb
185
+ - lib/rsocial/shazam/client.rb
186
+ - lib/rsocial/shazam/client/users.rb
187
+ - lib/rsocial/soundcloud.rb
188
+ - lib/rsocial/soundcloud/client.rb
189
+ - lib/rsocial/soundcloud/client/users.rb
184
190
  - lib/rsocial/twitter.rb
185
191
  - lib/rsocial/twitter/client.rb
186
192
  - lib/rsocial/twitter/client/users.rb
@@ -192,6 +198,8 @@ files:
192
198
  - rsocial.gemspec
193
199
  - spec/rsocial/facebook/client/pages_spec.rb
194
200
  - spec/rsocial/instagram/client/users_spec.rb
201
+ - spec/rsocial/shazam/client/users_spec.rb
202
+ - spec/rsocial/soundcloud/client/users_spec.rb
195
203
  - spec/rsocial/twitter/client/users_spec.rb
196
204
  - spec/rsocial/twitter_spec.rb
197
205
  - spec/rsocial/youtube/client/channels_spec.rb
@@ -224,6 +232,8 @@ summary: A ruby social media stat crawler
224
232
  test_files:
225
233
  - spec/rsocial/facebook/client/pages_spec.rb
226
234
  - spec/rsocial/instagram/client/users_spec.rb
235
+ - spec/rsocial/shazam/client/users_spec.rb
236
+ - spec/rsocial/soundcloud/client/users_spec.rb
227
237
  - spec/rsocial/twitter/client/users_spec.rb
228
238
  - spec/rsocial/twitter_spec.rb
229
239
  - spec/rsocial/youtube/client/channels_spec.rb