ruby-lol 0.9.16 → 0.9.17
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 +4 -4
- data/demo/demo.rb +7 -131
- data/lib/lol/invalid_api_response.rb +10 -0
- data/lib/lol/request.rb +2 -2
- data/lib/lol/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33cb584a624fdb82f0d0d7edee38c991cb893777
|
4
|
+
data.tar.gz: e0aa54577b540ddd373a5bf47cfede9270d1e7f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4fb2ce89932f967adb44fdbf085c22f432e079a61e64eaeb0102c1c8cf461571777edb8b37ef28d9aa33cd4df274d475a254550c946bd69537803f704cc0afc
|
7
|
+
data.tar.gz: 1ce589a26bb8c1477f22300b9019661a19b8b1a446c8917c6086f2683b4deab8143831a1c66fc7542ab905c480accd144b144cfee36e3d7d22b475501c4aec13
|
data/demo/demo.rb
CHANGED
@@ -4,137 +4,13 @@ require "rubygems"
|
|
4
4
|
require "ap"
|
5
5
|
require "lol"
|
6
6
|
|
7
|
-
|
8
|
-
class Scraper
|
9
|
-
attr_accessor :req, :client, :redis, :seed_id
|
7
|
+
include Lol
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
client = Client.new "18b7c486-0d5a-459f-9d60-cf8776b154c6"
|
10
|
+
intinig = client.summoner.by_name "intinig"
|
11
|
+
leagues = client.league.get intinig.id
|
12
|
+
my_league = leagues.first
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
client.league.get summoner_id
|
19
|
-
end
|
20
|
-
|
21
|
-
def get_league_players summoner_id
|
22
|
-
get_leagues(summoner_id).map do |l|
|
23
|
-
l.entries.map do |entry|
|
24
|
-
if entry.player_or_team_id.to_i == 0
|
25
|
-
nil
|
26
|
-
else
|
27
|
-
entry.player_or_team_id
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end.flatten.compact
|
31
|
-
end
|
32
|
-
|
33
|
-
def scrape_solo_league_for_teams summoner_id
|
34
|
-
get_league_players(summoner_id).map do |player|
|
35
|
-
if req >= 500
|
36
|
-
puts "Dormo per un minuto..."
|
37
|
-
sleep(60)
|
38
|
-
self.req = 0
|
39
|
-
end
|
40
|
-
|
41
|
-
begin
|
42
|
-
puts "#{req}. #{player}"
|
43
|
-
if redis.sismember "losers", player
|
44
|
-
nil
|
45
|
-
else
|
46
|
-
redis.sadd "winners", player
|
47
|
-
self.req += 1
|
48
|
-
client.team.get player
|
49
|
-
end
|
50
|
-
rescue Lol::NotFound
|
51
|
-
puts "Hitting the API on 404 - No cache"
|
52
|
-
redis.sadd "losers", player
|
53
|
-
nil
|
54
|
-
rescue Lol::InvalidAPIResponse
|
55
|
-
puts "Hit Rate Limit on #{player}"
|
56
|
-
sleep(5)
|
57
|
-
nil
|
58
|
-
end
|
59
|
-
end.compact.flatten
|
60
|
-
end
|
61
|
-
|
62
|
-
def get_players_from_leagues summoner_id
|
63
|
-
begin
|
64
|
-
scrape_solo_league_for_teams(summoner_id).map do |t|
|
65
|
-
t.roster.member_list.map do |s|
|
66
|
-
s.player_id
|
67
|
-
end
|
68
|
-
end.flatten.uniq
|
69
|
-
rescue NoMethodError
|
70
|
-
[]
|
71
|
-
rescue Lol::NotFound
|
72
|
-
[]
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
def filter_captains
|
77
|
-
redis.smembers("winners").each do |winner|
|
78
|
-
ap winner
|
79
|
-
begin
|
80
|
-
team = client.team.get(winner)
|
81
|
-
rescue Lol::NotFound
|
82
|
-
next
|
83
|
-
rescue Lol::InvalidAPIResponse
|
84
|
-
puts "wait..."
|
85
|
-
sleep(5)
|
86
|
-
next
|
87
|
-
end
|
88
|
-
team.each do |t|
|
89
|
-
if t.roster.owner_id == winner.to_i
|
90
|
-
redis.sadd "captains", winner
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def get_captains
|
97
|
-
puts redis.smembers("captains").sort
|
98
|
-
end
|
99
|
-
|
100
|
-
def initialize seed
|
101
|
-
@req = 0
|
102
|
-
@client = Client.new ENV["RIOT_GAMES_API_KEY"], region: "euw", redis: "redis://localhost:6379", ttl: 36000
|
103
|
-
@redis = Redis.new
|
104
|
-
|
105
|
-
@seed_id = get_summoner_id seed
|
106
|
-
end
|
107
|
-
end
|
14
|
+
my_league.entries.select {|entry| entry.player_or_team_name == "intinig"}.each do |entry|
|
15
|
+
ap entry
|
108
16
|
end
|
109
|
-
|
110
|
-
|
111
|
-
# lotsa = scrape_league(get_summoner("intinig")).map do |player|
|
112
|
-
# player.map do |team|
|
113
|
-
# team.roster.member_list.map(&:player_id)
|
114
|
-
# end.flatten
|
115
|
-
# end.flatten.uniq
|
116
|
-
|
117
|
-
# so_many = []
|
118
|
-
|
119
|
-
# lotsa.each do |summoner|
|
120
|
-
# next if @redis.sismember("winners", summoner)
|
121
|
-
# ap get_players(summoner)
|
122
|
-
# so_many << scrape_league(summoner).map do |player|
|
123
|
-
# player.map do |team|
|
124
|
-
# team.roster.member_list.map(&:player_id)
|
125
|
-
# end.flatten
|
126
|
-
# end.flatten
|
127
|
-
# end
|
128
|
-
|
129
|
-
# ap so_many
|
130
|
-
|
131
|
-
scraper = Lol::Scraper.new "intinig"
|
132
|
-
scraper.get_captains
|
133
|
-
# scraper.get_players_from_leagues(scraper.seed_id).map do |player|
|
134
|
-
# begin
|
135
|
-
# player = scraper.client.summoner.get(player).first.id
|
136
|
-
# scraper.get_players_from_leagues(player)
|
137
|
-
# rescue Lol::InvalidAPIResponse
|
138
|
-
# sleep(2)
|
139
|
-
# end
|
140
|
-
# end
|
data/lib/lol/request.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "uri"
|
2
|
+
require "lol/invalid_api_response"
|
2
3
|
|
3
4
|
module Lol
|
4
|
-
class InvalidAPIResponse < StandardError; end
|
5
5
|
class NotFound < StandardError; end
|
6
6
|
class InvalidCacheStore < StandardError; end
|
7
7
|
|
@@ -53,7 +53,7 @@ module Lol
|
|
53
53
|
|
54
54
|
response = self.class.get(url)
|
55
55
|
raise NotFound.new("404 Not Found") if response.respond_to?(:code) && response.not_found?
|
56
|
-
raise InvalidAPIResponse.new(response
|
56
|
+
raise InvalidAPIResponse.new(url, response) if response.is_a?(Hash) && response["status"]
|
57
57
|
|
58
58
|
store.setex clean_url(url), ttl, response.to_json if cached?
|
59
59
|
|
data/lib/lol/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-lol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Giovanni Intini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -280,6 +280,7 @@ files:
|
|
280
280
|
- lib/lol/client.rb
|
281
281
|
- lib/lol/game.rb
|
282
282
|
- lib/lol/game_request.rb
|
283
|
+
- lib/lol/invalid_api_response.rb
|
283
284
|
- lib/lol/league.rb
|
284
285
|
- lib/lol/league_entry.rb
|
285
286
|
- lib/lol/league_request.rb
|