lita-espn-fantasy-football 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YjU1NTI0YTQwMDFiZDc5NmM2YmFhZTQwYTVhZjE0ZTExZjMwMWM1NA==
5
- data.tar.gz: !binary |-
6
- YWU1MGUxMGJlMWM2MzlkNjA1YzJhNzRiYjE0MWE0MGEwMjViMTFiNA==
2
+ SHA1:
3
+ metadata.gz: 208027bd29f18aec4e2cc850e141ea6c47b45b9a
4
+ data.tar.gz: b0a50b23217ea6a87cee925005af1da6ecaf67f4
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- Y2Q0OGUzY2QxOTA0MmQ2ZGQxNDFkNjU4ZThiYjMxNjNlZTFhOGFhMjc2MWIz
10
- MjI1NDFmZjBlZmQ4MTVkYmYzYTg4YzM0NGU4ZTYxOGNjNmQ3NWI5NzlmMWMy
11
- OWFlYTQyNGE2ODM1NGFiYzM3NDg1ZjNiY2ExMGRiNjliNGVhMWM=
12
- data.tar.gz: !binary |-
13
- NzFlNTIxZTQ2ZDI4YzA5MTJhMmZmN2M3YTM5ZWVkNGE4YzgzYjhmYjdlOTIw
14
- YTY2MjYwNDBiMWE1ODU2MTNjZDU3MDFhMThlNGNjZTk2NjRlYzlkZGUzMGM2
15
- MzIwZThlNTA5MGYwNDdjMTI2MjVhNjZiYjM5YTYxOTMwNTY4MTM=
6
+ metadata.gz: 9e7a3f7eeca2d1a916bc3cdb87e1b55d75379024853051415c2ce369e03645de3bf7a37d0a40dbb04781ae825e0f5c70c3adbf11b83f81d405f87abd77260d56
7
+ data.tar.gz: 96a7de0b3f836907ca853209f174a0f94a3e89dadcbe13e8fddc7ab0d0e8c52c6550ce7767cbef9083fb57fcc89576d7161c2f7b3526039aa3f72ef0bbfbecd0
@@ -13,6 +13,10 @@ module Lita
13
13
  "player PLAYER NAME" => "Replies information about this football player"
14
14
  })
15
15
 
16
+ route(/^scoreboard\s+\(\d*\)/, :command_scoreboard, command: true, help: {
17
+ "scoreboard WEEK" => "Replies with the scoreboard for the specified week. If WEEK is empty, the current scoreboard is returned"
18
+ })
19
+
16
20
  # chat controllers
17
21
  def command_player(response)
18
22
  player = response.matches.first.first
@@ -27,6 +31,20 @@ module Lita
27
31
  end
28
32
  end
29
33
 
34
+ def command_scoreboard(response)
35
+ week = response.matches.first.first
36
+ unless week.empty?
37
+ if week.to_i < 1 or week.to_i > 13
38
+ response.reply("Please specify a week from 1 - 13")
39
+ end
40
+ end
41
+
42
+ Lita.logger.debug("#{ response.user.name } requested scoreboard for week '#{ week }'")
43
+ matchups = espn_scoreboard_scrape(week)
44
+ table = Terminal::Table.new(:headings => matchups["headers"], :rows => matchups["rows"])
45
+ response.reply("```\n#{ table }\n```")
46
+ end
47
+
30
48
  # constants
31
49
  ESPN_POSITION_MAP = {
32
50
  "qb" => 0,
@@ -122,6 +140,43 @@ module Lita
122
140
  resp
123
141
  end
124
142
 
143
+ def espn_scoreboard_scrape(week)
144
+ resp = {
145
+ "headers" => [
146
+ "team",
147
+ "score"
148
+ ],
149
+ "rows" => []
150
+ }
151
+ params = {
152
+ "leagueId" => config.league_id,
153
+ "seasonId" => config.season_id
154
+ }
155
+ # If no period (aka, week) is specified, ESPN defaults to the
156
+ # most recent (aka, current) matchup period
157
+ unless week.empty?
158
+ params["matchupPeriodId"] = week
159
+ end
160
+
161
+ param_string = params.map { |key, val| "#{key}=#{val}" }
162
+ url = "http://games.espn.go.com/ffl/scoreboard?#{param_string}"
163
+ scoreboard = Nokogiri::HTML(open(url))
164
+
165
+ matchups = page.css("table.playerTableTable.tableBody tr.pncPlayerRow")
166
+ resp.rows = matchups.map do |m|
167
+ rows = m.css("tr")
168
+ team_top = rows[0].css("td.team div.name a").text
169
+ team_bottom = rows[1].css("td.team div.name a").text
170
+ score_top = rows[0].css("td.score").text
171
+ score_bottom = rows[1].css("td.score").text
172
+ {
173
+ "team" => "#{team_top}\n#{team_bottom}",
174
+ "score" => "#{score_top}\n#{score_bottom}"
175
+ }
176
+ end
177
+ resp
178
+ end
179
+
125
180
  def format_results(raw)
126
181
  rows = raw["rows"].map{|r| r.map{ |k,v| v}}
127
182
  table = Terminal::Table.new(:headings => raw["headers"], :rows => rows)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-espn-fantasy-football"
3
- spec.version = "0.1.0"
3
+ spec.version = "0.1.2"
4
4
  spec.authors = ["Kevin Reedy", "Miles Evenson"]
5
5
  spec.email = ["kevinreedy@gmail.com", "miles.evenson@gmail.com"]
6
6
  spec.description = "Lita handler for ESPN Fantasy Football"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-espn-fantasy-football
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Reedy
@@ -9,48 +9,48 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-09-11 00:00:00.000000000 Z
12
+ date: 2015-10-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: lita
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ! '>='
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '4.6'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ! '>='
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: '4.6'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: nokogiri
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ! '>='
32
+ - - '>='
33
33
  - !ruby/object:Gem::Version
34
34
  version: '1.6'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ! '>='
39
+ - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: '1.6'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: terminal-table
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ! '>='
46
+ - - '>='
47
47
  - !ruby/object:Gem::Version
48
48
  version: '1.5'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ! '>='
53
+ - - '>='
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.5'
56
56
  - !ruby/object:Gem::Dependency
@@ -71,84 +71,84 @@ dependencies:
71
71
  name: pry-byebug
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ! '>='
74
+ - - '>='
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ! '>='
81
+ - - '>='
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: rake
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ! '>='
88
+ - - '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ! '>='
95
+ - - '>='
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rack-test
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ! '>='
102
+ - - '>='
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ! '>='
109
+ - - '>='
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: rspec
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ! '>='
116
+ - - '>='
117
117
  - !ruby/object:Gem::Version
118
118
  version: 3.0.0
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ! '>='
123
+ - - '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: 3.0.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: simplecov
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ! '>='
130
+ - - '>='
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ! '>='
137
+ - - '>='
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: coveralls
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ! '>='
144
+ - - '>='
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ! '>='
151
+ - - '>='
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  description: Lita handler for ESPN Fantasy Football
@@ -183,17 +183,17 @@ require_paths:
183
183
  - lib
184
184
  required_ruby_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - ! '>='
186
+ - - '>='
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - ! '>='
191
+ - - '>='
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
195
  rubyforge_project:
196
- rubygems_version: 2.4.5
196
+ rubygems_version: 2.4.6
197
197
  signing_key:
198
198
  specification_version: 4
199
199
  summary: Lita handler for ESPN Fantasy Football