atp_scraper 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90124e707dd1f9b3dbf778b4e238e5eac6a1b82c
4
- data.tar.gz: 9cd570c89afb1b26e53d5ad8789dc188bec8da7c
3
+ metadata.gz: f7fe84730985d940e8b413c65f1b33cc375c30ec
4
+ data.tar.gz: ef3f2b93d9fa239d98254e0c272ef4cd3cd6d7e4
5
5
  SHA512:
6
- metadata.gz: a97e8ce05f2238166a32d01bdda85e8fc8116f66ce68b74b630f6f9c590ac45740e6c200e2432e46df8f919b864e92f1d0a024c02aad6f050d6c08e1fd7d279f
7
- data.tar.gz: e08e965469f35a93f4b30766a5452a5dd396627c263ec57fec44e576b4acb4ddb15ff23fcd128156a2611813f71e78f4b903a2d6bb8c7d36ce99913a7f1af65a
6
+ metadata.gz: b614765df55a42cfdababaf9c798970d868676fff8be8e7d4b8538d87081d9a0800721dd03231aeec982ff3dd2e187dee53951bca0350cc6ca32c4013cb7148e
7
+ data.tar.gz: bd0e5db0f6f37e89321c0436b734a59878db052c9ab7b39ef114a4de9ecabc18bf38d2b59737724ff0af651ff684cdef57f7ef9bf7f07fb6eee875a19d4f41a4
data/README.md CHANGED
@@ -29,7 +29,8 @@ AtpScraper::Get.singles_ranking
29
29
  # rannking: "5"
30
30
  # player_name: "Rafael Nadal",
31
31
  # player_url_name: "rafael-nadal",
32
- # player_id: "n409"
32
+ # player_id: "n409",
33
+ # points: "5000"
33
34
  # }
34
35
 
35
36
  # Get Singles Ranking 101-200
@@ -39,11 +40,11 @@ AtpScraper::Get.singles_ranking("101-200")
39
40
  AtpScraper::Get.player_activity("n409", 2016)
40
41
  # Response Json
41
42
  # {
42
- # year: 2016,
43
+ # year: "2016",
43
44
  # player_name: "Rafael Nadal",
44
- # player_rank: 5,
45
+ # player_rank: "5",
45
46
  # opponent_name: "Fernand Verdasco",
46
- # opponent_rank: 45,
47
+ # opponent_rank: "45",
47
48
  # round: "Round of 128",
48
49
  # score: "673 64 63 674 26",
49
50
  # win_loss: "L",
@@ -51,8 +52,12 @@ AtpScraper::Get.player_activity("n409", 2016)
51
52
  # tournament_location: "Melbourne, Australia",
52
53
  # tournament_start_date: "2016.01.18",
53
54
  # tournament_end_date: "2016.01.31",
54
- # tournament_surface: "OurdoorHard"
55
+ # tournament_surface: "Hard",
56
+ # tournament_surface_inout: "Ourdoor"
55
57
  # }
58
+
59
+ # Get Player All Activity. For Example Rafael Nadal's all activity
60
+ AtpScraper::Get.player_activity("n409", "all")
56
61
  ```
57
62
 
58
63
  ## Contributing
@@ -0,0 +1,24 @@
1
+ module Activities
2
+ # Activity Record Class
3
+ class Record
4
+ def self.pickup_record(record_doc)
5
+ result = {}
6
+ record_doc.css("td").each_with_index do |td, n|
7
+ record_content = td.content.strip
8
+ case n
9
+ when 0 then
10
+ result[:round] = record_content
11
+ when 1 then
12
+ result[:opponent_rank] = record_content
13
+ when 2 then
14
+ result[:opponent_name] = record_content
15
+ when 3 then
16
+ result[:win_loss] = record_content
17
+ when 4 then
18
+ result[:score] = record_content
19
+ end
20
+ end
21
+ result
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,5 @@
1
+ module Activities
2
+ # Activity Tournamnet Class
3
+ class Tournament
4
+ end
5
+ end
@@ -11,9 +11,11 @@
11
11
  # record_doc
12
12
  ###################
13
13
 
14
+ require 'atp_scraper/activities/record'
14
15
  module AtpScraper
15
16
  # Scrape activity data
16
17
  class Activity
18
+ include Activities
17
19
  def initialize(html, html_charset = 'utf-8')
18
20
  @activity_doc = AtpScraper::Html.parse(html, html_charset)
19
21
  @player_name = pickup_player_name(@activity_doc)
@@ -22,13 +24,12 @@ module AtpScraper
22
24
  def pickup_activity_data
23
25
  result = []
24
26
  player = {}
25
- player[:name] = @player_name
26
27
 
27
28
  search_tournaments_doc(@activity_doc).each do |tournament_doc|
28
29
  tournament = pickup_tournament_info(tournament_doc)
29
30
  player[:rank] = pickup_player_rank(tournament[:caption])
30
31
  search_records_doc(tournament_doc).each do |record_doc|
31
- record = pickup_record(record_doc)
32
+ record = Record.pickup_record(record_doc)
32
33
  record_hash = create_record(record, player, tournament)
33
34
  result.push(record_hash)
34
35
  end
@@ -49,7 +50,7 @@ module AtpScraper
49
50
  def create_record(record, player, tournament)
50
51
  {
51
52
  year: tournament[:year],
52
- player_name: player[:name],
53
+ player_name: @player_name,
53
54
  player_rank: player[:rank],
54
55
  opponent_name: record[:opponent_name],
55
56
  opponent_rank: record[:opponent_rank],
@@ -71,26 +72,6 @@ module AtpScraper
71
72
  .attr("content").value
72
73
  end
73
74
 
74
- def pickup_record(record_doc)
75
- result = {}
76
- record_doc.css("td").each_with_index do |td, n|
77
- record_content = td.content.strip
78
- case n
79
- when 0 then
80
- result[:round] = record_content
81
- when 1 then
82
- result[:opponent_rank] = record_content
83
- when 2 then
84
- result[:opponent_name] = record_content
85
- when 3 then
86
- result[:win_loss] = record_content
87
- when 4 then
88
- result[:score] = record_content
89
- end
90
- end
91
- result
92
- end
93
-
94
75
  def pickup_tournament_info(tournament_doc)
95
76
  tournament_date = pickup_text(tournament_doc, ".tourney-dates")
96
77
  surface = pickup_surface(tournament_doc)
@@ -123,18 +104,16 @@ module AtpScraper
123
104
 
124
105
  def pickup_surface(tournament_doc)
125
106
  surface = tournament_doc
126
- .css(".tourney-details")[1]
127
- .css(".item-details")
128
- .first.content.gsub(/\t|\s/, "")
107
+ .css(".tourney-details")[1]
108
+ .css(".item-details")
109
+ .first.content.gsub(/\t|\s/, "")
129
110
  divide_surface(surface)
130
111
  end
131
112
 
132
113
  def divide_surface(surface)
133
- if (surface.match(/^Outdoor/))
134
- return { surface: surface.gsub(/Outdoor/, ''), inout: "Outdoor" }
135
- else
136
- return { surface: surface.gsub(/Indoor/, ''), inout: "Indoor" }
137
- end
114
+ inout = surface.match(/^(Outdoor|Indoor)/)
115
+ return { surface: surface, inout: nil } if inout.nil?
116
+ { surface: surface.gsub(/#{inout[0]}/, ''), inout: inout[0] }
138
117
  end
139
118
  end
140
119
  end
@@ -1,3 +1,3 @@
1
1
  module AtpScraper
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atp_scraper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mosuke5
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-21 00:00:00.000000000 Z
11
+ date: 2016-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -141,6 +141,8 @@ files:
141
141
  - bin/console
142
142
  - bin/setup
143
143
  - lib/atp_scraper.rb
144
+ - lib/atp_scraper/activities/record.rb
145
+ - lib/atp_scraper/activities/tournament.rb
144
146
  - lib/atp_scraper/activity.rb
145
147
  - lib/atp_scraper/get.rb
146
148
  - lib/atp_scraper/html.rb