ruby-lol 0.9.16 → 0.9.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|