ruby-lol 0.9.19.1 → 0.10.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: d2e5810cdc643a3af5ec5d4f98cebfbf7b3323e0
4
- data.tar.gz: 5ba0dad4c6e0368306c3e6f0dde92c5542313866
3
+ metadata.gz: 80975c214c65f114acf7846992d778c29b6ccb79
4
+ data.tar.gz: 29d6e7696ad53cec98676cc5e7a40c56c964975f
5
5
  SHA512:
6
- metadata.gz: 106d3ecba2b42621de02a5618cb68a709f7f4d2c9d820eeca376c225ed7a90da173b5ee3d92100c8e02199d89c3de107416723c940c2e67af672e11d7fef1c4a
7
- data.tar.gz: 484d91b3d87a6e27fb043c8f66b8d92952d18b9809b9c4c6b7901427e7a42098a5f7cb096bfc96e9c83526f999fd054398c8b4ae9f32a6ad374955425d97fd81
6
+ metadata.gz: 040cb68693bc9d598925e81ecb08701f40e8af9b36bb669203310fad0447a8d843da2d9c9740697ca2c2d78a67e4a33d5192ae36fa922372be2e908cc806dd4a
7
+ data.tar.gz: 15d4c5af75898c02b8006399aae26dfb97cb9eb3830e9f6ded1fd0c72edc5da951f641c65ef0273124951956fcbf9bbe37e0e5a1584a7871571d36f46826a125
data/lib/lol/client.rb CHANGED
@@ -58,6 +58,16 @@ module Lol
58
58
  @lol_status ||= LolStatusRequest.new(region, cache_store)
59
59
  end
60
60
 
61
+ # @return [CurrentGameRequest]
62
+ def current_game
63
+ @current_game ||= CurrentGameRequest.new(api_key, region, cache_store)
64
+ end
65
+
66
+ # @return [FeaturedGamesRequest]
67
+ def featured_games
68
+ @featured_games ||= FeaturedGamesRequest.new(api_key, region, cache_store)
69
+ end
70
+
61
71
  # Initializes a Lol::Client
62
72
  # @param api_key [String]
63
73
  # @param options [Hash]
@@ -0,0 +1,16 @@
1
+ module Lol
2
+ class CurrentGameRequest < Request
3
+ def self.api_version
4
+ 'v1.0'
5
+ end
6
+
7
+ def api_url path, params = {}
8
+ "#{api_base_url}/observer-mode/rest/consumer/#{path}?#{api_query_string params}"
9
+ end
10
+
11
+ def spectator_game_info platform_id, summoner_id
12
+ url = api_url "getSpectatorGameInfo/#{region.upcase}#{platform_id}/#{summoner_id}"
13
+ DynamicModel.new perform_request(url)
14
+ end
15
+ end
16
+ end
@@ -1,57 +1,58 @@
1
1
  require 'ostruct'
2
2
  require 'active_support/core_ext/string/inflections'
3
3
 
4
- # DynamicModel extends OpenStruct adding the following features:
5
- # - nested generation ({a: {}}) results in DynamicModel(a: DynamicModel)
6
- # - parsing of date/time when property name ends with _at or _date and the value is a number
7
- class DynamicModel < OpenStruct
8
- def initialize(hash={})
9
- raise ArgumentError, 'An hash is required as parameter' unless hash.is_a? Hash
10
- @table = {}
11
- @hash_table = {}
12
-
13
- hash.each do |k,v|
14
- key = k.to_s.underscore
15
- set_property key, v
16
- new_ostruct_member(key)
4
+ module Lol
5
+ # DynamicModel extends OpenStruct adding the following features:
6
+ # - nested generation ({a: {}}) results in DynamicModel(a: DynamicModel)
7
+ # - parsing of date/time when property name ends with _at or _date and the value is a number
8
+ class DynamicModel < OpenStruct
9
+ def initialize(hash={})
10
+ raise ArgumentError, 'An hash is required as parameter' unless hash.is_a? Hash
11
+ @table = {}
12
+ @hash_table = {}
13
+
14
+ hash.each do |k,v|
15
+ key = k.to_s.underscore
16
+ set_property key, v
17
+ new_ostruct_member(key)
18
+ end
17
19
  end
18
- end
19
20
 
20
- def to_h
21
- @hash_table
22
- end
21
+ def to_h
22
+ @hash_table
23
+ end
23
24
 
24
- def as_json opts={}
25
- @table.as_json
26
- end
25
+ def as_json opts={}
26
+ @table.as_json
27
+ end
27
28
 
28
- private
29
+ private
29
30
 
30
- def date_key? key
31
- key.match(/^(.+_)?(at|date)$/)
32
- end
31
+ def date_key? key
32
+ key.match(/^(.+_)?(at|date)$/)
33
+ end
33
34
 
34
- def set_property key, v
35
- if date_key?(key) && v.is_a?(Fixnum)
36
- @table[key.to_sym] = @hash_table[key.to_sym] = value_to_date v
37
- else
38
- @table[key.to_sym] = convert_object v
39
- @hash_table[key.to_sym] = v
35
+ def set_property key, v
36
+ if date_key?(key) && v.is_a?(Fixnum)
37
+ @table[key.to_sym] = @hash_table[key.to_sym] = value_to_date v
38
+ else
39
+ @table[key.to_sym] = convert_object v
40
+ @hash_table[key.to_sym] = v
41
+ end
40
42
  end
41
- end
42
43
 
43
- def value_to_date v
44
- Time.at(v / 1000)
45
- end
44
+ def value_to_date v
45
+ Time.at(v / 1000)
46
+ end
46
47
 
47
- def convert_object obj
48
- if obj.is_a? Hash
49
- self.class.new obj
50
- elsif obj.respond_to?(:map)
51
- obj.map { |o| convert_object o }
52
- else
53
- obj
48
+ def convert_object obj
49
+ if obj.is_a? Hash
50
+ self.class.new obj
51
+ elsif obj.respond_to?(:map)
52
+ obj.map { |o| convert_object o }
53
+ else
54
+ obj
55
+ end
54
56
  end
55
57
  end
56
-
57
58
  end
@@ -0,0 +1,15 @@
1
+ module Lol
2
+ class FeaturedGamesRequest < Request
3
+ def self.api_version
4
+ "v1.0"
5
+ end
6
+
7
+ def api_url path, params = {}
8
+ "#{api_base_url}/observer-mode/rest/#{path}?#{api_query_string params}"
9
+ end
10
+
11
+ def get
12
+ DynamicModel.new perform_request api_url "featured"
13
+ end
14
+ end
15
+ end
@@ -42,6 +42,10 @@ module Lol
42
42
  # @return [String] wins
43
43
  attr_reader :wins
44
44
 
45
+ # @!attribute [r] losses
46
+ # @return [String] losses
47
+ attr_reader :losses
48
+
45
49
  # @!attribute [r] last_played
46
50
  # @return [DateTime] date of last played game
47
51
  # at the time of writing this attributes is broken in the API
@@ -56,7 +60,7 @@ module Lol
56
60
 
57
61
  attr_writer :player_or_team_id, :player_or_team_name, :division, :league_points, :wins,
58
62
  :is_hot_streak, :is_veteran, :is_fresh_blood,
59
- :is_inactive, :time_until_decay, :last_played
63
+ :is_inactive, :time_until_decay, :last_played, :losses
60
64
 
61
65
  def mini_series= raw
62
66
  @mini_series = MiniSeries.new raw
data/lib/lol/request.rb CHANGED
@@ -33,8 +33,16 @@ module Lol
33
33
  # @param path [String] API path to call
34
34
  # @return [String] full fledged url
35
35
  def api_url path, params = {}
36
- query_string = URI.encode_www_form params.merge api_key: api_key
37
- File.join "https://#{region}.api.pvp.net/api/lol/#{region}/#{self.class.api_version}/", "#{path}?#{query_string}"
36
+ url = "#{api_base_url}/api/lol/#{region}/#{self.class.api_version}/#{path}"
37
+ "#{url}?#{api_query_string params}"
38
+ end
39
+
40
+ def api_base_url
41
+ "https://#{region}.api.pvp.net"
42
+ end
43
+
44
+ def api_query_string params = {}
45
+ URI.encode_www_form params.merge api_key: api_key
38
46
  end
39
47
 
40
48
  # Returns just a path from a full api url
data/lib/lol/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lol
2
- VERSION = "0.9.19.1"
2
+ VERSION = "0.10.0"
3
3
  end
@@ -0,0 +1,1065 @@
1
+ {
2
+ "gameLength": 110,
3
+ "gameMode": "CLASSIC",
4
+ "mapId": 11,
5
+ "bannedChampions": [
6
+ {
7
+ "pickTurn": 1,
8
+ "championId": 38,
9
+ "teamId": 100
10
+ },
11
+ {
12
+ "pickTurn": 2,
13
+ "championId": 76,
14
+ "teamId": 200
15
+ },
16
+ {
17
+ "pickTurn": 3,
18
+ "championId": 103,
19
+ "teamId": 100
20
+ },
21
+ {
22
+ "pickTurn": 4,
23
+ "championId": 59,
24
+ "teamId": 200
25
+ },
26
+ {
27
+ "pickTurn": 5,
28
+ "championId": 429,
29
+ "teamId": 100
30
+ },
31
+ {
32
+ "pickTurn": 6,
33
+ "championId": 268,
34
+ "teamId": 200
35
+ }
36
+ ],
37
+ "gameType": "MATCHED_GAME",
38
+ "gameId": 1725069408,
39
+ "observers": {"encryptionKey": "5qe63DEtiL8/gUKix8nkg38N8Ptnqhp9"},
40
+ "gameQueueConfigId": 4,
41
+ "gameStartTime": 1423479827272,
42
+ "participants": [
43
+ {
44
+ "masteries": [
45
+ {
46
+ "rank": 2,
47
+ "masteryId": 4211
48
+ },
49
+ {
50
+ "rank": 2,
51
+ "masteryId": 4212
52
+ },
53
+ {
54
+ "rank": 2,
55
+ "masteryId": 4213
56
+ },
57
+ {
58
+ "rank": 1,
59
+ "masteryId": 4221
60
+ },
61
+ {
62
+ "rank": 3,
63
+ "masteryId": 4222
64
+ },
65
+ {
66
+ "rank": 1,
67
+ "masteryId": 4231
68
+ },
69
+ {
70
+ "rank": 1,
71
+ "masteryId": 4232
72
+ },
73
+ {
74
+ "rank": 3,
75
+ "masteryId": 4233
76
+ },
77
+ {
78
+ "rank": 3,
79
+ "masteryId": 4234
80
+ },
81
+ {
82
+ "rank": 3,
83
+ "masteryId": 4241
84
+ },
85
+ {
86
+ "rank": 1,
87
+ "masteryId": 4242
88
+ },
89
+ {
90
+ "rank": 1,
91
+ "masteryId": 4243
92
+ },
93
+ {
94
+ "rank": 1,
95
+ "masteryId": 4244
96
+ },
97
+ {
98
+ "rank": 1,
99
+ "masteryId": 4251
100
+ },
101
+ {
102
+ "rank": 4,
103
+ "masteryId": 4252
104
+ },
105
+ {
106
+ "rank": 1,
107
+ "masteryId": 4262
108
+ }
109
+ ],
110
+ "bot": false,
111
+ "runes": [
112
+ {
113
+ "count": 9,
114
+ "runeId": 5245
115
+ },
116
+ {
117
+ "count": 9,
118
+ "runeId": 5290
119
+ },
120
+ {
121
+ "count": 9,
122
+ "runeId": 5316
123
+ },
124
+ {
125
+ "count": 1,
126
+ "runeId": 5335
127
+ },
128
+ {
129
+ "count": 2,
130
+ "runeId": 5347
131
+ }
132
+ ],
133
+ "spell2Id": 4,
134
+ "profileIconId": 508,
135
+ "summonerName": "Crown Mee",
136
+ "championId": 14,
137
+ "teamId": 100,
138
+ "summonerId": 21034920,
139
+ "spell1Id": 12
140
+ },
141
+ {
142
+ "masteries": [
143
+ {
144
+ "rank": 2,
145
+ "masteryId": 4211
146
+ },
147
+ {
148
+ "rank": 2,
149
+ "masteryId": 4212
150
+ },
151
+ {
152
+ "rank": 1,
153
+ "masteryId": 4221
154
+ },
155
+ {
156
+ "rank": 3,
157
+ "masteryId": 4222
158
+ },
159
+ {
160
+ "rank": 1,
161
+ "masteryId": 4232
162
+ },
163
+ {
164
+ "rank": 1,
165
+ "masteryId": 4311
166
+ },
167
+ {
168
+ "rank": 3,
169
+ "masteryId": 4313
170
+ },
171
+ {
172
+ "rank": 1,
173
+ "masteryId": 4314
174
+ },
175
+ {
176
+ "rank": 3,
177
+ "masteryId": 4322
178
+ },
179
+ {
180
+ "rank": 1,
181
+ "masteryId": 4323
182
+ },
183
+ {
184
+ "rank": 1,
185
+ "masteryId": 4324
186
+ },
187
+ {
188
+ "rank": 3,
189
+ "masteryId": 4331
190
+ },
191
+ {
192
+ "rank": 1,
193
+ "masteryId": 4334
194
+ },
195
+ {
196
+ "rank": 1,
197
+ "masteryId": 4341
198
+ },
199
+ {
200
+ "rank": 1,
201
+ "masteryId": 4342
202
+ },
203
+ {
204
+ "rank": 1,
205
+ "masteryId": 4352
206
+ },
207
+ {
208
+ "rank": 3,
209
+ "masteryId": 4353
210
+ },
211
+ {
212
+ "rank": 1,
213
+ "masteryId": 4362
214
+ }
215
+ ],
216
+ "bot": false,
217
+ "runes": [
218
+ {
219
+ "count": 3,
220
+ "runeId": 5289
221
+ },
222
+ {
223
+ "count": 6,
224
+ "runeId": 5301
225
+ },
226
+ {
227
+ "count": 9,
228
+ "runeId": 5315
229
+ },
230
+ {
231
+ "count": 3,
232
+ "runeId": 5347
233
+ },
234
+ {
235
+ "count": 9,
236
+ "runeId": 5402
237
+ }
238
+ ],
239
+ "spell2Id": 3,
240
+ "profileIconId": 757,
241
+ "summonerName": "FSN Trance",
242
+ "championId": 12,
243
+ "teamId": 100,
244
+ "summonerId": 24777351,
245
+ "spell1Id": 4
246
+ },
247
+ {
248
+ "masteries": [
249
+ {
250
+ "rank": 1,
251
+ "masteryId": 4111
252
+ },
253
+ {
254
+ "rank": 3,
255
+ "masteryId": 4112
256
+ },
257
+ {
258
+ "rank": 4,
259
+ "masteryId": 4113
260
+ },
261
+ {
262
+ "rank": 3,
263
+ "masteryId": 4122
264
+ },
265
+ {
266
+ "rank": 1,
267
+ "masteryId": 4131
268
+ },
269
+ {
270
+ "rank": 1,
271
+ "masteryId": 4132
272
+ },
273
+ {
274
+ "rank": 3,
275
+ "masteryId": 4134
276
+ },
277
+ {
278
+ "rank": 1,
279
+ "masteryId": 4144
280
+ },
281
+ {
282
+ "rank": 3,
283
+ "masteryId": 4152
284
+ },
285
+ {
286
+ "rank": 1,
287
+ "masteryId": 4162
288
+ },
289
+ {
290
+ "rank": 2,
291
+ "masteryId": 4211
292
+ },
293
+ {
294
+ "rank": 2,
295
+ "masteryId": 4214
296
+ },
297
+ {
298
+ "rank": 1,
299
+ "masteryId": 4221
300
+ },
301
+ {
302
+ "rank": 3,
303
+ "masteryId": 4222
304
+ },
305
+ {
306
+ "rank": 1,
307
+ "masteryId": 4232
308
+ }
309
+ ],
310
+ "bot": false,
311
+ "runes": [
312
+ {
313
+ "count": 8,
314
+ "runeId": 5245
315
+ },
316
+ {
317
+ "count": 1,
318
+ "runeId": 5251
319
+ },
320
+ {
321
+ "count": 9,
322
+ "runeId": 5289
323
+ },
324
+ {
325
+ "count": 9,
326
+ "runeId": 5317
327
+ },
328
+ {
329
+ "count": 3,
330
+ "runeId": 5335
331
+ }
332
+ ],
333
+ "spell2Id": 4,
334
+ "profileIconId": 757,
335
+ "summonerName": "C9 Hard",
336
+ "championId": 421,
337
+ "teamId": 100,
338
+ "summonerId": 47836799,
339
+ "spell1Id": 11
340
+ },
341
+ {
342
+ "masteries": [
343
+ {
344
+ "rank": 4,
345
+ "masteryId": 4112
346
+ },
347
+ {
348
+ "rank": 1,
349
+ "masteryId": 4114
350
+ },
351
+ {
352
+ "rank": 3,
353
+ "masteryId": 4122
354
+ },
355
+ {
356
+ "rank": 1,
357
+ "masteryId": 4124
358
+ },
359
+ {
360
+ "rank": 1,
361
+ "masteryId": 4131
362
+ },
363
+ {
364
+ "rank": 1,
365
+ "masteryId": 4132
366
+ },
367
+ {
368
+ "rank": 3,
369
+ "masteryId": 4134
370
+ },
371
+ {
372
+ "rank": 1,
373
+ "masteryId": 4141
374
+ },
375
+ {
376
+ "rank": 1,
377
+ "masteryId": 4144
378
+ },
379
+ {
380
+ "rank": 1,
381
+ "masteryId": 4151
382
+ },
383
+ {
384
+ "rank": 3,
385
+ "masteryId": 4152
386
+ },
387
+ {
388
+ "rank": 1,
389
+ "masteryId": 4162
390
+ },
391
+ {
392
+ "rank": 2,
393
+ "masteryId": 4211
394
+ },
395
+ {
396
+ "rank": 2,
397
+ "masteryId": 4214
398
+ },
399
+ {
400
+ "rank": 1,
401
+ "masteryId": 4221
402
+ },
403
+ {
404
+ "rank": 3,
405
+ "masteryId": 4222
406
+ },
407
+ {
408
+ "rank": 1,
409
+ "masteryId": 4232
410
+ }
411
+ ],
412
+ "bot": false,
413
+ "runes": [
414
+ {
415
+ "count": 6,
416
+ "runeId": 5245
417
+ },
418
+ {
419
+ "count": 3,
420
+ "runeId": 5247
421
+ },
422
+ {
423
+ "count": 9,
424
+ "runeId": 5289
425
+ },
426
+ {
427
+ "count": 9,
428
+ "runeId": 5317
429
+ },
430
+ {
431
+ "count": 3,
432
+ "runeId": 5335
433
+ }
434
+ ],
435
+ "spell2Id": 4,
436
+ "profileIconId": 555,
437
+ "summonerName": "Dear Maria",
438
+ "championId": 222,
439
+ "teamId": 100,
440
+ "summonerId": 43839117,
441
+ "spell1Id": 7
442
+ },
443
+ {
444
+ "masteries": [
445
+ {
446
+ "rank": 4,
447
+ "masteryId": 4113
448
+ },
449
+ {
450
+ "rank": 1,
451
+ "masteryId": 4114
452
+ },
453
+ {
454
+ "rank": 3,
455
+ "masteryId": 4122
456
+ },
457
+ {
458
+ "rank": 1,
459
+ "masteryId": 4124
460
+ },
461
+ {
462
+ "rank": 1,
463
+ "masteryId": 4132
464
+ },
465
+ {
466
+ "rank": 3,
467
+ "masteryId": 4134
468
+ },
469
+ {
470
+ "rank": 2,
471
+ "masteryId": 4142
472
+ },
473
+ {
474
+ "rank": 1,
475
+ "masteryId": 4144
476
+ },
477
+ {
478
+ "rank": 1,
479
+ "masteryId": 4151
480
+ },
481
+ {
482
+ "rank": 3,
483
+ "masteryId": 4152
484
+ },
485
+ {
486
+ "rank": 1,
487
+ "masteryId": 4162
488
+ },
489
+ {
490
+ "rank": 2,
491
+ "masteryId": 4211
492
+ },
493
+ {
494
+ "rank": 2,
495
+ "masteryId": 4212
496
+ },
497
+ {
498
+ "rank": 1,
499
+ "masteryId": 4221
500
+ },
501
+ {
502
+ "rank": 3,
503
+ "masteryId": 4222
504
+ },
505
+ {
506
+ "rank": 1,
507
+ "masteryId": 4232
508
+ }
509
+ ],
510
+ "bot": false,
511
+ "runes": [
512
+ {
513
+ "count": 9,
514
+ "runeId": 5245
515
+ },
516
+ {
517
+ "count": 2,
518
+ "runeId": 5277
519
+ },
520
+ {
521
+ "count": 3,
522
+ "runeId": 5289
523
+ },
524
+ {
525
+ "count": 4,
526
+ "runeId": 5301
527
+ },
528
+ {
529
+ "count": 9,
530
+ "runeId": 5317
531
+ },
532
+ {
533
+ "count": 3,
534
+ "runeId": 5337
535
+ }
536
+ ],
537
+ "spell2Id": 14,
538
+ "profileIconId": 753,
539
+ "summonerName": "Liquid Piglet",
540
+ "championId": 81,
541
+ "teamId": 100,
542
+ "summonerId": 62374009,
543
+ "spell1Id": 4
544
+ },
545
+ {
546
+ "masteries": [
547
+ {
548
+ "rank": 1,
549
+ "masteryId": 4111
550
+ },
551
+ {
552
+ "rank": 4,
553
+ "masteryId": 4113
554
+ },
555
+ {
556
+ "rank": 1,
557
+ "masteryId": 4114
558
+ },
559
+ {
560
+ "rank": 3,
561
+ "masteryId": 4122
562
+ },
563
+ {
564
+ "rank": 1,
565
+ "masteryId": 4124
566
+ },
567
+ {
568
+ "rank": 1,
569
+ "masteryId": 4131
570
+ },
571
+ {
572
+ "rank": 1,
573
+ "masteryId": 4132
574
+ },
575
+ {
576
+ "rank": 3,
577
+ "masteryId": 4134
578
+ },
579
+ {
580
+ "rank": 1,
581
+ "masteryId": 4141
582
+ },
583
+ {
584
+ "rank": 1,
585
+ "masteryId": 4144
586
+ },
587
+ {
588
+ "rank": 3,
589
+ "masteryId": 4152
590
+ },
591
+ {
592
+ "rank": 1,
593
+ "masteryId": 4162
594
+ },
595
+ {
596
+ "rank": 2,
597
+ "masteryId": 4211
598
+ },
599
+ {
600
+ "rank": 2,
601
+ "masteryId": 4212
602
+ },
603
+ {
604
+ "rank": 1,
605
+ "masteryId": 4221
606
+ },
607
+ {
608
+ "rank": 3,
609
+ "masteryId": 4222
610
+ },
611
+ {
612
+ "rank": 1,
613
+ "masteryId": 4232
614
+ }
615
+ ],
616
+ "bot": false,
617
+ "runes": [
618
+ {
619
+ "count": 9,
620
+ "runeId": 5253
621
+ },
622
+ {
623
+ "count": 9,
624
+ "runeId": 5296
625
+ },
626
+ {
627
+ "count": 9,
628
+ "runeId": 5317
629
+ },
630
+ {
631
+ "count": 3,
632
+ "runeId": 5335
633
+ }
634
+ ],
635
+ "spell2Id": 14,
636
+ "profileIconId": 4,
637
+ "summonerName": "Dosk",
638
+ "championId": 238,
639
+ "teamId": 200,
640
+ "summonerId": 65389105,
641
+ "spell1Id": 4
642
+ },
643
+ {
644
+ "masteries": [
645
+ {
646
+ "rank": 1,
647
+ "masteryId": 4111
648
+ },
649
+ {
650
+ "rank": 4,
651
+ "masteryId": 4113
652
+ },
653
+ {
654
+ "rank": 1,
655
+ "masteryId": 4114
656
+ },
657
+ {
658
+ "rank": 3,
659
+ "masteryId": 4123
660
+ },
661
+ {
662
+ "rank": 1,
663
+ "masteryId": 4124
664
+ },
665
+ {
666
+ "rank": 1,
667
+ "masteryId": 4133
668
+ },
669
+ {
670
+ "rank": 3,
671
+ "masteryId": 4134
672
+ },
673
+ {
674
+ "rank": 3,
675
+ "masteryId": 4143
676
+ },
677
+ {
678
+ "rank": 1,
679
+ "masteryId": 4144
680
+ },
681
+ {
682
+ "rank": 1,
683
+ "masteryId": 4152
684
+ },
685
+ {
686
+ "rank": 1,
687
+ "masteryId": 4154
688
+ },
689
+ {
690
+ "rank": 1,
691
+ "masteryId": 4162
692
+ },
693
+ {
694
+ "rank": 2,
695
+ "masteryId": 4211
696
+ },
697
+ {
698
+ "rank": 2,
699
+ "masteryId": 4212
700
+ },
701
+ {
702
+ "rank": 1,
703
+ "masteryId": 4221
704
+ },
705
+ {
706
+ "rank": 3,
707
+ "masteryId": 4222
708
+ },
709
+ {
710
+ "rank": 1,
711
+ "masteryId": 4232
712
+ }
713
+ ],
714
+ "bot": false,
715
+ "runes": [
716
+ {
717
+ "count": 9,
718
+ "runeId": 5273
719
+ },
720
+ {
721
+ "count": 9,
722
+ "runeId": 5298
723
+ },
724
+ {
725
+ "count": 3,
726
+ "runeId": 5316
727
+ },
728
+ {
729
+ "count": 6,
730
+ "runeId": 5318
731
+ },
732
+ {
733
+ "count": 3,
734
+ "runeId": 5357
735
+ }
736
+ ],
737
+ "spell2Id": 12,
738
+ "profileIconId": 757,
739
+ "summonerName": "CaliTrlolz8",
740
+ "championId": 82,
741
+ "teamId": 200,
742
+ "summonerId": 21059607,
743
+ "spell1Id": 4
744
+ },
745
+ {
746
+ "masteries": [
747
+ {
748
+ "rank": 1,
749
+ "masteryId": 4111
750
+ },
751
+ {
752
+ "rank": 2,
753
+ "masteryId": 4112
754
+ },
755
+ {
756
+ "rank": 1,
757
+ "masteryId": 4114
758
+ },
759
+ {
760
+ "rank": 1,
761
+ "masteryId": 4121
762
+ },
763
+ {
764
+ "rank": 3,
765
+ "masteryId": 4122
766
+ },
767
+ {
768
+ "rank": 1,
769
+ "masteryId": 4124
770
+ },
771
+ {
772
+ "rank": 1,
773
+ "masteryId": 4131
774
+ },
775
+ {
776
+ "rank": 1,
777
+ "masteryId": 4132
778
+ },
779
+ {
780
+ "rank": 3,
781
+ "masteryId": 4134
782
+ },
783
+ {
784
+ "rank": 1,
785
+ "masteryId": 4141
786
+ },
787
+ {
788
+ "rank": 1,
789
+ "masteryId": 4142
790
+ },
791
+ {
792
+ "rank": 1,
793
+ "masteryId": 4144
794
+ },
795
+ {
796
+ "rank": 3,
797
+ "masteryId": 4152
798
+ },
799
+ {
800
+ "rank": 1,
801
+ "masteryId": 4162
802
+ },
803
+ {
804
+ "rank": 2,
805
+ "masteryId": 4211
806
+ },
807
+ {
808
+ "rank": 2,
809
+ "masteryId": 4214
810
+ },
811
+ {
812
+ "rank": 3,
813
+ "masteryId": 4222
814
+ },
815
+ {
816
+ "rank": 1,
817
+ "masteryId": 4224
818
+ },
819
+ {
820
+ "rank": 1,
821
+ "masteryId": 4232
822
+ }
823
+ ],
824
+ "bot": false,
825
+ "runes": [
826
+ {
827
+ "count": 9,
828
+ "runeId": 5245
829
+ },
830
+ {
831
+ "count": 3,
832
+ "runeId": 5289
833
+ },
834
+ {
835
+ "count": 6,
836
+ "runeId": 5296
837
+ },
838
+ {
839
+ "count": 9,
840
+ "runeId": 5317
841
+ },
842
+ {
843
+ "count": 3,
844
+ "runeId": 5335
845
+ }
846
+ ],
847
+ "spell2Id": 11,
848
+ "profileIconId": 744,
849
+ "summonerName": "Voyboyy",
850
+ "championId": 121,
851
+ "teamId": 200,
852
+ "summonerId": 19134540,
853
+ "spell1Id": 4
854
+ },
855
+ {
856
+ "masteries": [
857
+ {
858
+ "rank": 4,
859
+ "masteryId": 4112
860
+ },
861
+ {
862
+ "rank": 1,
863
+ "masteryId": 4114
864
+ },
865
+ {
866
+ "rank": 3,
867
+ "masteryId": 4122
868
+ },
869
+ {
870
+ "rank": 1,
871
+ "masteryId": 4124
872
+ },
873
+ {
874
+ "rank": 1,
875
+ "masteryId": 4131
876
+ },
877
+ {
878
+ "rank": 1,
879
+ "masteryId": 4132
880
+ },
881
+ {
882
+ "rank": 3,
883
+ "masteryId": 4134
884
+ },
885
+ {
886
+ "rank": 1,
887
+ "masteryId": 4142
888
+ },
889
+ {
890
+ "rank": 1,
891
+ "masteryId": 4144
892
+ },
893
+ {
894
+ "rank": 1,
895
+ "masteryId": 4151
896
+ },
897
+ {
898
+ "rank": 3,
899
+ "masteryId": 4152
900
+ },
901
+ {
902
+ "rank": 1,
903
+ "masteryId": 4162
904
+ },
905
+ {
906
+ "rank": 2,
907
+ "masteryId": 4211
908
+ },
909
+ {
910
+ "rank": 2,
911
+ "masteryId": 4212
912
+ },
913
+ {
914
+ "rank": 1,
915
+ "masteryId": 4221
916
+ },
917
+ {
918
+ "rank": 3,
919
+ "masteryId": 4222
920
+ },
921
+ {
922
+ "rank": 1,
923
+ "masteryId": 4232
924
+ }
925
+ ],
926
+ "bot": false,
927
+ "runes": [
928
+ {
929
+ "count": 9,
930
+ "runeId": 5245
931
+ },
932
+ {
933
+ "count": 9,
934
+ "runeId": 5289
935
+ },
936
+ {
937
+ "count": 9,
938
+ "runeId": 5317
939
+ },
940
+ {
941
+ "count": 3,
942
+ "runeId": 5337
943
+ }
944
+ ],
945
+ "spell2Id": 7,
946
+ "profileIconId": 4,
947
+ "summonerName": "DuBuKiD",
948
+ "championId": 236,
949
+ "teamId": 200,
950
+ "summonerId": 62599179,
951
+ "spell1Id": 4
952
+ },
953
+ {
954
+ "masteries": [
955
+ {
956
+ "rank": 2,
957
+ "masteryId": 4211
958
+ },
959
+ {
960
+ "rank": 2,
961
+ "masteryId": 4212
962
+ },
963
+ {
964
+ "rank": 1,
965
+ "masteryId": 4221
966
+ },
967
+ {
968
+ "rank": 3,
969
+ "masteryId": 4222
970
+ },
971
+ {
972
+ "rank": 1,
973
+ "masteryId": 4232
974
+ },
975
+ {
976
+ "rank": 1,
977
+ "masteryId": 4311
978
+ },
979
+ {
980
+ "rank": 3,
981
+ "masteryId": 4313
982
+ },
983
+ {
984
+ "rank": 1,
985
+ "masteryId": 4314
986
+ },
987
+ {
988
+ "rank": 3,
989
+ "masteryId": 4322
990
+ },
991
+ {
992
+ "rank": 1,
993
+ "masteryId": 4323
994
+ },
995
+ {
996
+ "rank": 1,
997
+ "masteryId": 4324
998
+ },
999
+ {
1000
+ "rank": 3,
1001
+ "masteryId": 4331
1002
+ },
1003
+ {
1004
+ "rank": 1,
1005
+ "masteryId": 4334
1006
+ },
1007
+ {
1008
+ "rank": 1,
1009
+ "masteryId": 4341
1010
+ },
1011
+ {
1012
+ "rank": 1,
1013
+ "masteryId": 4342
1014
+ },
1015
+ {
1016
+ "rank": 1,
1017
+ "masteryId": 4352
1018
+ },
1019
+ {
1020
+ "rank": 3,
1021
+ "masteryId": 4353
1022
+ },
1023
+ {
1024
+ "rank": 1,
1025
+ "masteryId": 4362
1026
+ }
1027
+ ],
1028
+ "bot": false,
1029
+ "runes": [
1030
+ {
1031
+ "count": 9,
1032
+ "runeId": 5273
1033
+ },
1034
+ {
1035
+ "count": 9,
1036
+ "runeId": 5289
1037
+ },
1038
+ {
1039
+ "count": 5,
1040
+ "runeId": 5315
1041
+ },
1042
+ {
1043
+ "count": 4,
1044
+ "runeId": 5317
1045
+ },
1046
+ {
1047
+ "count": 1,
1048
+ "runeId": 5347
1049
+ },
1050
+ {
1051
+ "count": 2,
1052
+ "runeId": 5357
1053
+ }
1054
+ ],
1055
+ "spell2Id": 4,
1056
+ "profileIconId": 759,
1057
+ "summonerName": "C9 Intense",
1058
+ "championId": 25,
1059
+ "teamId": 200,
1060
+ "summonerId": 19637662,
1061
+ "spell1Id": 3
1062
+ }
1063
+ ],
1064
+ "platformId": "NA1"
1065
+ }