whos_using_what 1.0.7 → 1.0.8

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.
@@ -9,6 +9,8 @@ class LinkedinClient < BaseApiClient
9
9
 
10
10
  @@json_indicator = "format=json"
11
11
  @@base_url = "http://api.linkedin.com/v1/"
12
+ #@linkedin_tech_industry_codes = "4,132,6,96,113,80,126,81,8,36,118,28,140";
13
+ @@linkedin_tech_industry_codes = "80"
12
14
 
13
15
 
14
16
  def initialize(api_key, api_secret, user_token, user_secret, url)
@@ -26,7 +28,7 @@ class LinkedinClient < BaseApiClient
26
28
  end
27
29
 
28
30
 
29
- def query_companies params
31
+ def query_companies location_code, company_size, params
30
32
 
31
33
  base_url = @@base_url <<
32
34
  "company-search:(
@@ -40,7 +42,10 @@ class LinkedinClient < BaseApiClient
40
42
  employee-count-range,
41
43
  locations
42
44
  )
43
- )"
45
+ )?facets=industry,location,company-size" <<
46
+ "&facet=industry," << @@linkedin_tech_industry_codes <<
47
+ "&facet=location," << location_code <<
48
+ "&facet=company-size,C,D,E,F,G,H,I"
44
49
 
45
50
  json_api_call_helper(base_url, params)
46
51
 
@@ -107,6 +112,8 @@ class LinkedinClient < BaseApiClient
107
112
 
108
113
  json = @access_token.get(url << "&" << @@json_indicator)
109
114
 
115
+ puts json.body
116
+
110
117
  JSON.parse(json.body)
111
118
 
112
119
  end
@@ -0,0 +1,28 @@
1
+ require_relative 'base_api_client'
2
+ require 'crack'
3
+
4
+ class SimplyHiredClient
5
+
6
+ require 'json'
7
+ @@base_url = "http://api.linkedin.com/v1/"
8
+ @@json_indicator = "format=json"
9
+ @@number_results = 100
10
+
11
+ def perform_search query, location
12
+
13
+ url = "http://api.simplyhired.com/a/jobs-api/xml-v2/" <<
14
+ "q-%22" << query << "%22/" <<
15
+ "l-" << location <<
16
+ "/ws-" << @@number_results.to_s <<
17
+ "?pshid=47575&ssty=2&cflg=r&jbd=hiringto.jobamatic.com"
18
+
19
+ url = url.tr(" ", "+")
20
+
21
+ xml_response = RestClient.get(url)
22
+
23
+ map = Crack::XML.parse(xml_response)
24
+
25
+ end
26
+
27
+
28
+ end
@@ -9,8 +9,6 @@ class GatherCompanies < Base
9
9
 
10
10
  def initialize
11
11
 
12
- @linkedin_tech_industry_codes = "4,132,6,96,113";
13
-
14
12
  @indeed_api_client = IndeedApiClient.new
15
13
 
16
14
  @@mongo_client = MongoHelper.get_mongo_connection
@@ -73,17 +71,18 @@ class GatherCompanies < Base
73
71
 
74
72
  def load_companies_to_db num_iterations, cur_start_position, facet_location_code
75
73
 
76
- increment = 20
74
+ company_size_codes = "C,D,E,F,G,H,I"
75
+ increment = 10
77
76
  cnt = 1
78
77
 
79
78
  while cnt <= num_iterations do
80
79
  puts cur_start_position.to_s
81
80
 
82
- resp = @@linkedin_client.query_companies ({
83
- "start" => cur_start_position.to_s << "&count=" << increment.to_s,
84
- "facet=industry" => @linkedin_tech_industry_codes,
85
- "facet=location" => facet_location_code
86
- })
81
+ params = {
82
+ "start" => cur_start_position.to_s
83
+ }
84
+
85
+ resp = @@linkedin_client.query_companies facet_location_code, company_size_codes, params
87
86
  docs = resp['companies'].values[3]
88
87
  if docs != nil
89
88
  docs.each do |doc|
@@ -96,7 +95,7 @@ class GatherCompanies < Base
96
95
 
97
96
  cnt = cnt + 1
98
97
 
99
- sleep_seconds = rand(1-35)
98
+ sleep_seconds = rand(3-9)
100
99
  puts "sleeping for: " << sleep_seconds.to_s << " seconds"
101
100
  sleep(sleep_seconds)
102
101
 
@@ -44,7 +44,7 @@ class DataPopulators
44
44
  @@coords_coll = @@mongo_client['coordinates']
45
45
 
46
46
  #data holders
47
- @@facet_location = "us:84"
47
+ @@facet_location = "us:82"
48
48
  @@programming_languages = ["java", "ruby", "c#", "php", "python", "javascript"]
49
49
 
50
50
  @li_config = YAML.load_file(File.expand_path("../../config/linkedin.env", __FILE__))
@@ -62,9 +62,19 @@ class DataPopulators
62
62
 
63
63
  begin
64
64
 
65
- results = @@linkedin_client.query_people_from_company_ids ['2003'], 'human', 'us:84'
65
+ # results = @@linkedin_client.query_people_from_company_ids ['2003'], 'software', 'us:84'
66
+
67
+
68
+ @@companies_coll.remove({
69
+ 'employeeCountRange' => {'code' => "B", "name" => "2-10"}
70
+ })
71
+ @@companies_coll.remove({
72
+ 'employeeCountRange' => {'code' => "B", "name" => "1-10"}
73
+ })
74
+
75
+
76
+ @@gather_companies.load_companies_to_db 100, 1200, @@facet_location
66
77
 
67
- pause = ""
68
78
  rescue Exception => e
69
79
  puts e.message
70
80
  puts e.backtrace
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whos_using_what
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -107,6 +107,22 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: crack
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
110
126
  - !ruby/object:Gem::Dependency
111
127
  name: mongo
112
128
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +184,7 @@ files:
168
184
  - lib/whos_using_what/api_clients/indeed_api_client.rb
169
185
  - lib/whos_using_what/api_clients/google_client.rb
170
186
  - lib/whos_using_what/api_clients/base_api_client.rb
187
+ - lib/whos_using_what/api_clients/simply_hired_client.rb
171
188
  - lib/whos_using_what/api_clients/linkedin_client.rb
172
189
  - lib/whos_using_what/api_clients/google_locations_client.rb
173
190
  - lib/whos_using_what/data_gatherers/gather_companies.rb