wot-api 1.0.2 → 1.1.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 +4 -4
- data/README.md +1 -1
- data/lib/wot/api.rb +86 -3
- data/lib/wot/api/clusters.rb +32 -0
- data/lib/wot/api/error.rb +14 -0
- data/lib/wot/api/version.rb +6 -2
- data/lib/{wot-api → wot}/player.rb +5 -7
- data/lib/{wot-api → wot}/player/achievement.rb +0 -0
- data/lib/{wot-api → wot}/player/extended_statistics.rb +0 -0
- data/lib/{wot-api → wot}/player/info.rb +0 -0
- data/lib/{wot-api → wot}/player/statistics.rb +0 -0
- data/lib/{wot-api → wot}/player/tank.rb +0 -0
- data/wot-api.gemspec +4 -4
- metadata +15 -19
- data/lib/wot-api.rb +0 -97
- data/lib/wot-api/clusters.rb +0 -33
- data/lib/wot-api/error.rb +0 -13
- data/lib/wot-api/version.rb +0 -10
- data/test/wot_api_test.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fdcb4b1021a09d973d2e4136b3ac15212a5aab90
|
4
|
+
data.tar.gz: 79ba8782152e833f008c226124a86057847deb11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4b80ba12430e3c56822cd8df6d0dd7261e97e6c981c6c87f2ed5765316cf9aef6b42c12184380ef67db0ef0229ab1efa82b37baca88192f41d20ee548f74492
|
7
|
+
data.tar.gz: 33f1bcea97ade195505afc29bd1c662a99e03fabf65bbfb726051d224c38231550cacd80827e9ebdc475ee9a77bd33f41537896d5cc7122b2a5c5884d4f46697
|
data/README.md
CHANGED
data/lib/wot/api.rb
CHANGED
@@ -1,7 +1,90 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'rest-client'
|
3
|
+
require 'active_support/core_ext/hash/indifferent_access'
|
1
4
|
require "wot/api/version"
|
5
|
+
require 'wot/api/clusters'
|
6
|
+
require 'wot/api/error'
|
7
|
+
require 'wot/player'
|
2
8
|
|
3
9
|
module Wot
|
4
|
-
|
5
|
-
|
10
|
+
class Api
|
11
|
+
|
12
|
+
def initialize(region, language = 'en')
|
13
|
+
cluster = Wot::Api.cluster(region)
|
14
|
+
@app_id = cluster[:application_id]
|
15
|
+
@base_url = cluster[:base_url]
|
16
|
+
@language = language
|
17
|
+
end
|
18
|
+
|
19
|
+
def search(username, options = {})
|
20
|
+
return Wot::Player.search self, username, options
|
21
|
+
end
|
22
|
+
|
23
|
+
def find(account_ids, options = {})
|
24
|
+
return Wot::Player.find self, account_ids, options
|
25
|
+
end
|
26
|
+
|
27
|
+
def players_info(account_ids)
|
28
|
+
ids = (account_ids.class == Array ? account_ids : [account_ids])
|
29
|
+
return make_request "account/info/", {:account_id => ids.join(",")}
|
30
|
+
end
|
31
|
+
|
32
|
+
def player_tanks(account_id)
|
33
|
+
return make_request "account/tanks/", {:account_id => account_id}
|
34
|
+
end
|
35
|
+
|
36
|
+
def player_achievements(account_id)
|
37
|
+
return make_request "account/achievements/", {:account_id => account_id}
|
38
|
+
end
|
39
|
+
|
40
|
+
def player_stats(account_id,hours_ago)
|
41
|
+
return make_request "stats/accountbytime/", {:account_id => account_id, :hours_ago => hours_ago}
|
42
|
+
end
|
43
|
+
|
44
|
+
def player_raitings(account_id)
|
45
|
+
return make_request "account/raitings/", {:account_id => account_id}
|
46
|
+
end
|
47
|
+
|
48
|
+
def tanks_list()
|
49
|
+
return make_request "encyclopedia/tanks/", {}
|
50
|
+
end
|
51
|
+
|
52
|
+
def tank_info(tank_id)
|
53
|
+
return make_request "encyclopedia/tankinfo/", {:tank_id => tank_id}
|
54
|
+
end
|
55
|
+
|
56
|
+
def achievements_list()
|
57
|
+
raise NotImplementedError
|
58
|
+
end
|
59
|
+
|
60
|
+
def engines_list()
|
61
|
+
raise NotImplementedError
|
62
|
+
end
|
63
|
+
|
64
|
+
def guns_list()
|
65
|
+
raise NotImplementedError
|
66
|
+
end
|
67
|
+
|
68
|
+
def radios_list()
|
69
|
+
raise NotImplementedError
|
70
|
+
end
|
71
|
+
|
72
|
+
def suspensions_list()
|
73
|
+
raise NotImplementedError
|
74
|
+
end
|
75
|
+
|
76
|
+
def turrets_list
|
77
|
+
raise NotImplementedError
|
78
|
+
end
|
79
|
+
|
80
|
+
def make_request(suffix,parameters)
|
81
|
+
params = {:params => parameters.dup}
|
82
|
+
params[:params][:application_id] = @app_id
|
83
|
+
params[:params][:language] = @language
|
84
|
+
response = JSON.parse(RestClient.get("#{@base_url}/2.0/#{suffix}", params))
|
85
|
+
response = response.nested_under_indifferent_access
|
86
|
+
raise Wot::Api::Error.new(response[:error]) if response[:status].downcase == "error"
|
87
|
+
return response
|
88
|
+
end
|
6
89
|
end
|
7
|
-
end
|
90
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Wot
|
2
|
+
class Api
|
3
|
+
CLUSTERS = {
|
4
|
+
"RU" => {
|
5
|
+
:base_url => "http://api.worldoftanks.ru",
|
6
|
+
:application_id => "171745d21f7f98fd8878771da1000a31"
|
7
|
+
},
|
8
|
+
"EU" => {
|
9
|
+
:base_url => "api.worldoftanks.eu",
|
10
|
+
:application_id => "d0a293dc77667c9328783d489c8cef73"
|
11
|
+
},
|
12
|
+
"NA" => {
|
13
|
+
:base_url => "http://api.worldoftanks.com",
|
14
|
+
:application_id => "16924c431c705523aae25b6f638c54dd"
|
15
|
+
},
|
16
|
+
"ASIA" => {
|
17
|
+
:base_url => "http://api.worldoftanks.asia",
|
18
|
+
:application_id => "39b4939f5f2460b3285bfa708e4b252c"
|
19
|
+
},
|
20
|
+
"KR" => {
|
21
|
+
:base_url => "http://api.worldoftanks.kr",
|
22
|
+
:application_id => "ffea0f1c3c5f770db09357d94fe6abfb"
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
def self.cluster(region)
|
27
|
+
cluster = CLUSTERS[region.to_s]
|
28
|
+
fail "Region '#{region}' not found!" if cluster.nil?
|
29
|
+
return cluster
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Wot
|
2
|
+
class Api
|
3
|
+
class Error < StandardError
|
4
|
+
attr_accessor :field, :message, :code, :value
|
5
|
+
def initialize(options)
|
6
|
+
super options[:message]
|
7
|
+
@field = options[:field]
|
8
|
+
@message = options[:message]
|
9
|
+
@code = options[:code]
|
10
|
+
@value = options[:value]
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/wot/api/version.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
|
-
|
1
|
+
require 'wot/player/info'
|
2
|
+
require 'wot/player/tank'
|
3
|
+
require 'wot/player/achievement'
|
4
|
+
require 'wot/player/statistics'
|
5
|
+
require 'wot/player/extended_statistics'
|
2
6
|
module Wot
|
3
7
|
class Player
|
4
|
-
autoload :Info, 'wot-api/player/info'
|
5
|
-
autoload :Tank, 'wot-api/player/tank'
|
6
|
-
autoload :Achievement, 'wot-api/player/achievement'
|
7
|
-
autoload :Statistics, 'wot-api/player/statistics'
|
8
|
-
autoload :ExtendedStatistics, 'wot-api/player/extended_statistics'
|
9
|
-
|
10
8
|
attr_accessor :id, :account_id, :nickname, :api
|
11
9
|
|
12
10
|
def self.search(api, nickname, options = {})
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/wot-api.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'wot
|
4
|
+
require 'wot/api/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "wot-api"
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["info@code-panic.com"]
|
11
11
|
spec.summary = %q{Ruby World of Tanks API v2.0}
|
12
12
|
spec.description = %q{A simple ruby library that allows to interface with World of Tanks API v2.0!}
|
13
|
-
spec.homepage = "
|
13
|
+
spec.homepage = "https://github.com/serioja90/wot-api"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.add_development_dependency "rake", "~> 10
|
23
|
-
spec.add_development_dependency "rspec", "~> 3
|
22
|
+
spec.add_development_dependency "rake", "~> 10"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3"
|
24
24
|
spec.add_development_dependency "json","~> 1.8"
|
25
25
|
spec.add_development_dependency "rest-client","~> 1.7"
|
26
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wot-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Groza Sergiu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '10
|
33
|
+
version: '10'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '10
|
40
|
+
version: '10'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3
|
47
|
+
version: '3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3
|
54
|
+
version: '3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,23 +95,20 @@ files:
|
|
95
95
|
- LICENSE.txt
|
96
96
|
- README.md
|
97
97
|
- Rakefile
|
98
|
-
- lib/wot-api.rb
|
99
|
-
- lib/wot-api/clusters.rb
|
100
|
-
- lib/wot-api/error.rb
|
101
|
-
- lib/wot-api/player.rb
|
102
|
-
- lib/wot-api/player/achievement.rb
|
103
|
-
- lib/wot-api/player/extended_statistics.rb
|
104
|
-
- lib/wot-api/player/info.rb
|
105
|
-
- lib/wot-api/player/statistics.rb
|
106
|
-
- lib/wot-api/player/tank.rb
|
107
|
-
- lib/wot-api/version.rb
|
108
98
|
- lib/wot/api.rb
|
99
|
+
- lib/wot/api/clusters.rb
|
100
|
+
- lib/wot/api/error.rb
|
109
101
|
- lib/wot/api/version.rb
|
102
|
+
- lib/wot/player.rb
|
103
|
+
- lib/wot/player/achievement.rb
|
104
|
+
- lib/wot/player/extended_statistics.rb
|
105
|
+
- lib/wot/player/info.rb
|
106
|
+
- lib/wot/player/statistics.rb
|
107
|
+
- lib/wot/player/tank.rb
|
110
108
|
- spec/spec_helper.rb
|
111
109
|
- spec/wot/api_spec.rb
|
112
|
-
- test/wot_api_test.rb
|
113
110
|
- wot-api.gemspec
|
114
|
-
homepage:
|
111
|
+
homepage: https://github.com/serioja90/wot-api
|
115
112
|
licenses:
|
116
113
|
- MIT
|
117
114
|
metadata: {}
|
@@ -138,4 +135,3 @@ summary: Ruby World of Tanks API v2.0
|
|
138
135
|
test_files:
|
139
136
|
- spec/spec_helper.rb
|
140
137
|
- spec/wot/api_spec.rb
|
141
|
-
- test/wot_api_test.rb
|
data/lib/wot-api.rb
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'json'
|
3
|
-
require 'rest-client'
|
4
|
-
require 'active_support/core_ext/hash/indifferent_access'
|
5
|
-
|
6
|
-
module Wot
|
7
|
-
autoload :Player, 'wot-api/player'
|
8
|
-
|
9
|
-
class Api
|
10
|
-
|
11
|
-
def initialize(region, language = 'en')
|
12
|
-
cluster = Wot::cluster(region)
|
13
|
-
@app_id = cluster[:application_id]
|
14
|
-
@base_url = cluster[:base_url]
|
15
|
-
@language = language
|
16
|
-
end
|
17
|
-
|
18
|
-
def search(username, options = {})
|
19
|
-
return Wot::Player.search self, username, options
|
20
|
-
end
|
21
|
-
|
22
|
-
def find(account_ids, options = {})
|
23
|
-
return Wot::Player.find self, account_ids, options
|
24
|
-
end
|
25
|
-
|
26
|
-
def players_info(account_ids)
|
27
|
-
ids = (account_ids.class == Array ? account_ids : [account_ids])
|
28
|
-
return make_request "account/info/", {:account_id => ids.join(",")}
|
29
|
-
end
|
30
|
-
|
31
|
-
def player_tanks(account_id)
|
32
|
-
return make_request "account/tanks/", {:account_id => account_id}
|
33
|
-
end
|
34
|
-
|
35
|
-
def player_achievements(account_id)
|
36
|
-
return make_request "account/achievements/", {:account_id => account_id}
|
37
|
-
end
|
38
|
-
|
39
|
-
def player_stats(account_id,hours_ago)
|
40
|
-
return make_request "stats/accountbytime/", {:account_id => account_id, :hours_ago => hours_ago}
|
41
|
-
end
|
42
|
-
|
43
|
-
def player_raitings(account_id)
|
44
|
-
return make_request "account/raitings/", {:account_id => account_id}
|
45
|
-
end
|
46
|
-
|
47
|
-
def tanks_list()
|
48
|
-
return make_request "encyclopedia/tanks/", {}
|
49
|
-
end
|
50
|
-
|
51
|
-
def tank_info(tank_id)
|
52
|
-
return make_request "encyclopedia/tankinfo/", {:tank_id => tank_id}
|
53
|
-
end
|
54
|
-
|
55
|
-
def achievements_list()
|
56
|
-
unless @achievements
|
57
|
-
response = make_request "encyclopedia/achievements/", {}
|
58
|
-
@achievements = Wot::Parser.get_achievements_list(response[:data])
|
59
|
-
end
|
60
|
-
return @achievements
|
61
|
-
end
|
62
|
-
|
63
|
-
def engines_list()
|
64
|
-
raise NotImplementedError
|
65
|
-
end
|
66
|
-
|
67
|
-
def guns_list()
|
68
|
-
raise NotImplementedError
|
69
|
-
end
|
70
|
-
|
71
|
-
def radios_list()
|
72
|
-
raise NotImplementedError
|
73
|
-
end
|
74
|
-
|
75
|
-
def suspensions_list()
|
76
|
-
raise NotImplementedError
|
77
|
-
end
|
78
|
-
|
79
|
-
def turrets_list
|
80
|
-
raise NotImplementedError
|
81
|
-
end
|
82
|
-
|
83
|
-
def make_request(suffix,parameters)
|
84
|
-
params = {:params => parameters.dup}
|
85
|
-
params[:params][:application_id] = @app_id
|
86
|
-
params[:params][:language] = @language
|
87
|
-
response = JSON.parse(RestClient.get("#{@base_url}/2.0/#{suffix}", params))
|
88
|
-
response = response.nested_under_indifferent_access
|
89
|
-
raise Wot::Error.new(response[:error]) if response[:status].downcase == "error"
|
90
|
-
return response
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
require 'wot-api/clusters'
|
96
|
-
require 'wot-api/error'
|
97
|
-
require 'wot-api/version'
|
data/lib/wot-api/clusters.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
module Wot
|
3
|
-
CLUSTERS = {
|
4
|
-
"RU" => {
|
5
|
-
:base_url => "http://api.worldoftanks.ru",
|
6
|
-
:application_id => "171745d21f7f98fd8878771da1000a31"
|
7
|
-
},
|
8
|
-
"EU" => {
|
9
|
-
:base_url => "api.worldoftanks.eu",
|
10
|
-
:application_id => "d0a293dc77667c9328783d489c8cef73"
|
11
|
-
},
|
12
|
-
"NA" => {
|
13
|
-
:base_url => "http://api.worldoftanks.com",
|
14
|
-
:application_id => "16924c431c705523aae25b6f638c54dd"
|
15
|
-
},
|
16
|
-
"ASIA" => {
|
17
|
-
:base_url => "http://api.worldoftanks.asia",
|
18
|
-
:application_id => "39b4939f5f2460b3285bfa708e4b252c"
|
19
|
-
},
|
20
|
-
"KR" => {
|
21
|
-
:base_url => "http://api.worldoftanks.kr",
|
22
|
-
:application_id => "ffea0f1c3c5f770db09357d94fe6abfb"
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
module_function
|
27
|
-
|
28
|
-
def cluster(region)
|
29
|
-
cluster = Wot::CLUSTERS[region.to_s]
|
30
|
-
raise "Region '#{region}' not found!" if cluster.nil?
|
31
|
-
return cluster
|
32
|
-
end
|
33
|
-
end
|
data/lib/wot-api/error.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
module Wot
|
3
|
-
class Error < StandardError
|
4
|
-
attr_accessor :field, :message, :code, :value
|
5
|
-
def initialize(options)
|
6
|
-
super options[:message]
|
7
|
-
@field = options[:field]
|
8
|
-
@message = options[:message]
|
9
|
-
@code = options[:code]
|
10
|
-
@value = options[:value]
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
data/lib/wot-api/version.rb
DELETED
data/test/wot_api_test.rb
DELETED