ruby-lol 0.9.19.1 → 0.10.0

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: 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
+ }