vegas_insider_scraper 1.0.0 → 1.0.1

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
  SHA256:
3
- metadata.gz: 69a23eb646b9085eac798a97bc6cf733f98df54c21b3011371e4f4fa9f5a2252
4
- data.tar.gz: bd8fbd9fccc62b419800a757191e232120657cfa02b48d9397dd34ff9479da3b
3
+ metadata.gz: 5da344d3fb972c1628fa835f561628049aba8ea84684a78bb50333d8da9ba3ee
4
+ data.tar.gz: 8314442a6678a6da65cca3bb7d8a5edf12647d9e99d88f80bdc0c249c2563e26
5
5
  SHA512:
6
- metadata.gz: 882881640914c68decd5b24d49343a73b4c2cb011d98f6bb2490866143dc80a28b5fca6bf069ca113ea0cf91298332e14bfb278d738ebca4d71bc8fd2b3d742f
7
- data.tar.gz: 7f933d97c7ccabfc07e1186ea22ea27bc132c4ef7e6a0ccc55818ea80ee6e1192f73e3f45b71230877227dce5f4526dfcf015a98b763d577058697c8fbf6ca2d
6
+ metadata.gz: 7fc9c3974ad506865f610e18e7ccef4c99f7d6630757ef7e8f08ff7ac060870e4f2dc0153dcd7341e31838d78d74078a47402ef8e241c515a9ee0e75d6e50a7a
7
+ data.tar.gz: bab62fa2f08f7e84d55c653d08706d3c1958a413dabe98d064ff9807809e2b1f5557debdf6e475f83120889381060265c25b8f682f217b497ba2c7b754ac3d51
@@ -52,7 +52,7 @@ class ScraperLeague
52
52
  doc = Nokogiri::HTML(open(url)).at_css('.main-content-cell')
53
53
 
54
54
  doc.css('a').map do |team_link|
55
- team = {}
55
+ team = {}
56
56
  team[:info] = format_college_team(team_link, doc)
57
57
 
58
58
  row = team_link.parent.parent.previous
@@ -92,7 +92,7 @@ class ScraperLeague
92
92
  # Utility method for scraping standings
93
93
  # * gets the standings table class
94
94
  def standings_table_class
95
- vegas_sport_identifier == "college-football" ? '.SLTables1' : 'table'
95
+ vegas_sport_identifier == "college-football" ? '.SLTables1' : 'table'
96
96
  end
97
97
 
98
98
  # Utility method for scraping standings
@@ -141,7 +141,7 @@ class ScraperLeague
141
141
  row.css('td').each_with_index do |cell, cell_index|
142
142
  value = remove_element_whitespace(cell)
143
143
  case cell_index
144
- when 0
144
+ when 0
145
145
  team[:info] = format_college_team(cell.at_css('a'), teams_doc)
146
146
  when 1 then team[:record][:conf_wins] = value.to_i
147
147
  when 2 then team[:record][:conf_losses] = value.to_i
@@ -162,11 +162,11 @@ class ScraperLeague
162
162
  row.css('td').each_with_index do |cell, cell_index|
163
163
  value = remove_element_whitespace(cell)
164
164
  case cell_index
165
- when 0
165
+ when 0
166
166
  team[:info] = format_college_team(cell.at_css('a'), teams_doc)
167
167
  when 1 then team[:record][:overall_wins] = value.to_i
168
168
  when 2 then team[:record][:overall_losses] = value.to_i
169
- when 5
169
+ when 5
170
170
  record = RegularExpressions::RECORD_REGEX.match(value) || { wins: 0, losses: 0 }
171
171
  team[:record][:home_wins] = record[:wins].to_i
172
172
  team[:record][:home_losses] = record[:losses].to_i
@@ -219,7 +219,7 @@ class ScraperLeague
219
219
  when 0 then team[:info] = format_team(cell.at_css('a'))
220
220
  when 1 then team[:record][:overall_wins] = content.to_i
221
221
  when 2 then team[:record][:overall_losses] = content.to_i
222
- when 5
222
+ when 5
223
223
  record = RegularExpressions::RECORD_REGEX.match(content) || { wins: 0, losses: 0 }
224
224
  team[:record][:home_wins] = record[:wins]
225
225
  team[:record][:home_losses] = record[:losses]
@@ -237,7 +237,7 @@ class ScraperLeague
237
237
  def hockey_standings_row_parser(row, team)
238
238
  row.css('td').each_with_index do |cell, cell_index|
239
239
  content = remove_element_whitespace(cell)
240
-
240
+
241
241
  case cell_index
242
242
  when 0 then team[:info] = format_team(cell.at_css('a'))
243
243
  when 1 then team[:record][:overall_wins] = content.to_i
@@ -245,7 +245,7 @@ class ScraperLeague
245
245
  when 3 then team[:record][:over_time_losses] = content.to_i
246
246
  when 4 then team[:record][:shootout_losses] = content.to_i
247
247
  when 5 then team[:record][:points] = content.to_i
248
- when 8
248
+ when 8
249
249
  record = RegularExpressions::NHL_RECORD_REGEX.match(content) || { wins: 0, losses: 0, ot_losses: 0, shootout_losses: 0 }
250
250
  team[:record][:home_wins] = record[:wins]
251
251
  team[:record][:home_losses] = record[:losses]
@@ -267,7 +267,7 @@ class ScraperLeague
267
267
  def format_team(url)
268
268
  full_name = url.content
269
269
  identifier = team_url_parser(url.attribute('href'))
270
- nickname = humanize_identifier(identifier)
270
+ nickname = humanize_identifier(identifier)[0]
271
271
 
272
272
  {
273
273
  identifier: identifier,
@@ -287,7 +287,10 @@ class ScraperLeague
287
287
  nickname = full_name.gsub("#{location} ",'')
288
288
 
289
289
  if nickname == full_name
290
- nickname = full_name.gsub('&','').gsub("#{humanize_identifier(identifier)}", '').strip
290
+ nickname = full_name.gsub('&','')
291
+ .gsub(humanize_identifier(identifier)[0], '')
292
+ .gsub(humanize_identifier(identifier)[1], '')
293
+ .strip
291
294
  end
292
295
 
293
296
  if nickname == full_name.gsub('&','').strip
@@ -296,17 +299,22 @@ class ScraperLeague
296
299
  nickname = nickname_exceptions(identifier,nickname)
297
300
  end
298
301
 
302
+ location = full_name.gsub(" #{nickname}", '')
303
+
299
304
  return {
300
305
  identifier: identifier,
301
306
  nickname: nickname,
302
- location: full_name.gsub(" #{nickname}", ''),
307
+ location: location,
303
308
  full_name: full_name,
304
309
  url: url.attribute('href').value
305
310
  }
306
311
  end
307
312
 
308
313
  def humanize_identifier(identifier)
309
- identifier.split('-').map { |x| x.capitalize }.join(' ')
314
+ [
315
+ identifier.split('-').map(&:capitalize).join(' '),
316
+ identifier.split('-').map(&:capitalize).join('-')
317
+ ]
310
318
  end
311
319
 
312
320
  def nickname_exceptions(identifier,nickname)
@@ -346,7 +354,7 @@ class ScraperLeague
346
354
 
347
355
  result = {}
348
356
  game.css('.tanBg a').each_with_index do |team, i|
349
- if i == 0
357
+ if i == 0
350
358
  result[:away_team] = team_url_parser(team.attribute('href'))
351
359
  else
352
360
  result[:home_team] = team_url_parser(team.attribute('href'))
@@ -386,8 +394,8 @@ class ScraperLeague
386
394
  end
387
395
 
388
396
  if segment_titles
389
- result[:scoring] = segment_titles.each_with_index.map { |s,i|
390
- { period: s, away: away_values[i], home: home_values[i] }
397
+ result[:scoring] = segment_titles.each_with_index.map { |s,i|
398
+ { period: s, away: away_values[i], home: home_values[i] }
391
399
  }
392
400
  end
393
401
 
@@ -419,7 +427,7 @@ class ScraperLeague
419
427
 
420
428
  game_cell = game_row.at_css('td:first-child')
421
429
  teams = game_cell_parser(game_cell)
422
- game = Game.new(home_team: teams[1], away_team: teams[0])
430
+ game = Game.new(home_team: teams[1], away_team: teams[0])
423
431
 
424
432
  if game.teams_found?
425
433
  game.update(time: get_game_time(game_cell))
@@ -514,7 +522,7 @@ class ScraperLeague
514
522
 
515
523
  case m
516
524
  when 0 then game.update(time: get_game_date(cell,row))
517
- when 1
525
+ when 1
518
526
  info = get_game_info(cell, team)
519
527
  opponent = info[:opponent]
520
528
  game.update(info[:game_info])
@@ -559,7 +567,7 @@ class ScraperLeague
559
567
  # * determines if the game has concluded
560
568
  def game_finished?(row)
561
569
  !"#{RegularExpressions::GAME_RESULTS.match(remove_element_whitespace(row.at_css('td:nth-child(5)')))}".empty?
562
- end
570
+ end
563
571
 
564
572
  # Utility method for scraping team page results
565
573
  # * gets the home_team, away_team, and doubleheader info
@@ -641,7 +649,7 @@ class ScraperLeague
641
649
  SOCCER_MONEYLINE_ODDS = /(?<away_moneyline>(-|\+)\d+)(?<home_moneyline>(-|\+)\d+)(?<draw>(-|\+)\d+)(?<over_under>\d((\.5)|(\.25)|(\.75))?)(o|u).\d\d/
642
650
  RUNLINE_ODDS = /(?<away_line>(\+|-)\d+(\.5)?)\/(\+|-)\d{3}(?<home_line>(\+|-)\d+(\.5)?)\/(\+|-)\d{3}/
643
651
  MONEYLINE_ODDS = /((?<over_under>\d+(\.5)?)[ou]-\d{2})?(?<away_moneyline>(\+|-)\d{3}\d*)(?<home_moneyline>(\+|-)\d{3}\d*)/
644
-
652
+
645
653
  DOUBLEHEADER = /DH Gm (?<id>\d)/
646
654
  RESULTS_DOUBLEHEADER = /\(DH (?<doubleheader>\d)\)/
647
655
 
@@ -659,7 +667,7 @@ class ScraperLeague
659
667
  end
660
668
 
661
669
  def update(args = {})
662
- Game.sanitize(args).map { |attribute, value|
670
+ Game.sanitize(args).map { |attribute, value|
663
671
  new_val = (attribute == :vegas_info && value && vegas_info) ? value.merge(vegas_info) : value
664
672
  instance_variable_set("@#{attribute}", new_val)
665
673
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vegas_insider_scraper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Reitz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-22 00:00:00.000000000 Z
11
+ date: 2019-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri