steam_web_api 0.0.1
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 +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.travis.yml +15 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.html +1134 -0
- data/README.md +356 -0
- data/Rakefile +11 -0
- data/lib/steam_web_api/base.rb +39 -0
- data/lib/steam_web_api/configuration.rb +9 -0
- data/lib/steam_web_api/game.rb +37 -0
- data/lib/steam_web_api/player.rb +108 -0
- data/lib/steam_web_api/version.rb +3 -0
- data/lib/steam_web_api.rb +29 -0
- data/spec/fixtures/vcr/game_achievement_percentages.yml +624 -0
- data/spec/fixtures/vcr/game_achievement_percentages_error.yml +37 -0
- data/spec/fixtures/vcr/game_news_error.yml +37 -0
- data/spec/fixtures/vcr/game_news_success.yml +96 -0
- data/spec/fixtures/vcr/game_schema.yml +3538 -0
- data/spec/fixtures/vcr/player_achievements.yml +91 -0
- data/spec/fixtures/vcr/player_achievements_empty.yml +35 -0
- data/spec/fixtures/vcr/player_bans.yml +38 -0
- data/spec/fixtures/vcr/player_bans_error.yml +37 -0
- data/spec/fixtures/vcr/player_friends.yml +51 -0
- data/spec/fixtures/vcr/player_friends_error.yml +44 -0
- data/spec/fixtures/vcr/player_owned_games.yml +82 -0
- data/spec/fixtures/vcr/player_owned_games_appinfo.yml +291 -0
- data/spec/fixtures/vcr/player_playing_shared_game.yml +36 -0
- data/spec/fixtures/vcr/player_playing_shared_game_error.yml +44 -0
- data/spec/fixtures/vcr/player_recently_played_games.yml +48 -0
- data/spec/fixtures/vcr/player_recently_played_games_error.yml +44 -0
- data/spec/fixtures/vcr/player_recently_played_games_with_count.yml +42 -0
- data/spec/fixtures/vcr/player_single_bans.yml +36 -0
- data/spec/fixtures/vcr/player_single_bans_error.yml +37 -0
- data/spec/fixtures/vcr/player_single_summary.yml +43 -0
- data/spec/fixtures/vcr/player_single_summary_error.yml +37 -0
- data/spec/fixtures/vcr/player_summary.yml +51 -0
- data/spec/fixtures/vcr/player_summary_error.yml +37 -0
- data/spec/fixtures/vcr/stats_for_game.yml +321 -0
- data/spec/fixtures/vcr/stats_for_game_empty.yml +37 -0
- data/spec/spec_helper.rb +45 -0
- data/spec/steam_web_api/base_spec.rb +94 -0
- data/spec/steam_web_api/configuration_spec.rb +16 -0
- data/spec/steam_web_api/game_spec.rb +137 -0
- data/spec/steam_web_api/player_spec.rb +362 -0
- data/spec/steam_web_api_spec.rb +18 -0
- data/steam_web_api.gemspec +30 -0
- metadata +235 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002?key=<API_KEY>&steamids=76561198046174695,76561197960435530
|
|
6
|
+
body:
|
|
7
|
+
encoding: US-ASCII
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
User-Agent:
|
|
11
|
+
- Faraday v0.9.0
|
|
12
|
+
Accept-Encoding:
|
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
14
|
+
Accept:
|
|
15
|
+
- "*/*"
|
|
16
|
+
response:
|
|
17
|
+
status:
|
|
18
|
+
code: 200
|
|
19
|
+
message: OK
|
|
20
|
+
headers:
|
|
21
|
+
Date:
|
|
22
|
+
- Wed, 14 Jan 2015 05:12:43 GMT
|
|
23
|
+
Expires:
|
|
24
|
+
- Wed, 14 Jan 2015 05:12:43 GMT
|
|
25
|
+
Content-Type:
|
|
26
|
+
- application/json; charset=UTF-8
|
|
27
|
+
Content-Length:
|
|
28
|
+
- '1859'
|
|
29
|
+
body:
|
|
30
|
+
encoding: UTF-8
|
|
31
|
+
string: "{\n\t\"response\": {\n\t\t\"players\": [\n\t\t\t{\n\t\t\t\t\"steamid\":
|
|
32
|
+
\"76561198046174695\",\n\t\t\t\t\"communityvisibilitystate\": 3,\n\t\t\t\t\"profilestate\":
|
|
33
|
+
1,\n\t\t\t\t\"personaname\": \"gravin79\",\n\t\t\t\t\"lastlogoff\": 1421192890,\n\t\t\t\t\"commentpermission\":
|
|
34
|
+
1,\n\t\t\t\t\"profileurl\": \"http://steamcommunity.com/profiles/76561198046174695/\",\n\t\t\t\t\"avatar\":
|
|
35
|
+
\"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7a/7aa6dcdb282e48f09a67b25f791493d779aa3311.jpg\",\n\t\t\t\t\"avatarmedium\":
|
|
36
|
+
\"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7a/7aa6dcdb282e48f09a67b25f791493d779aa3311_medium.jpg\",\n\t\t\t\t\"avatarfull\":
|
|
37
|
+
\"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/7a/7aa6dcdb282e48f09a67b25f791493d779aa3311_full.jpg\",\n\t\t\t\t\"personastate\":
|
|
38
|
+
0,\n\t\t\t\t\"realname\": \"GTomasz\",\n\t\t\t\t\"primaryclanid\": \"103582791433775490\",\n\t\t\t\t\"timecreated\":
|
|
39
|
+
1312107940,\n\t\t\t\t\"personastateflags\": 0,\n\t\t\t\t\"loccountrycode\":
|
|
40
|
+
\"PL\",\n\t\t\t\t\"locstatecode\": \"67\",\n\t\t\t\t\"loccityid\": 36018\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
|
|
41
|
+
\"76561197960435530\",\n\t\t\t\t\"communityvisibilitystate\": 3,\n\t\t\t\t\"profilestate\":
|
|
42
|
+
1,\n\t\t\t\t\"personaname\": \"Robin\",\n\t\t\t\t\"lastlogoff\": 1421176474,\n\t\t\t\t\"profileurl\":
|
|
43
|
+
\"http://steamcommunity.com/id/robinwalker/\",\n\t\t\t\t\"avatar\": \"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4.jpg\",\n\t\t\t\t\"avatarmedium\":
|
|
44
|
+
\"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_medium.jpg\",\n\t\t\t\t\"avatarfull\":
|
|
45
|
+
\"http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_full.jpg\",\n\t\t\t\t\"personastate\":
|
|
46
|
+
0,\n\t\t\t\t\"realname\": \"Robin Walker\",\n\t\t\t\t\"primaryclanid\": \"103582791429521412\",\n\t\t\t\t\"timecreated\":
|
|
47
|
+
1063407589,\n\t\t\t\t\"personastateflags\": 0,\n\t\t\t\t\"loccountrycode\":
|
|
48
|
+
\"US\",\n\t\t\t\t\"locstatecode\": \"WA\",\n\t\t\t\t\"loccityid\": 3961\n\t\t\t}\n\t\t]\n\t\t\n\t}\n}"
|
|
49
|
+
http_version:
|
|
50
|
+
recorded_at: Wed, 14 Jan 2015 05:12:43 GMT
|
|
51
|
+
recorded_with: VCR 2.9.3
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002?key=invalid&steamids=76561198046174695,76561197960435530
|
|
6
|
+
body:
|
|
7
|
+
encoding: US-ASCII
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
User-Agent:
|
|
11
|
+
- Faraday v0.9.0
|
|
12
|
+
Accept-Encoding:
|
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
14
|
+
Accept:
|
|
15
|
+
- "*/*"
|
|
16
|
+
response:
|
|
17
|
+
status:
|
|
18
|
+
code: 403
|
|
19
|
+
message: Forbidden
|
|
20
|
+
headers:
|
|
21
|
+
Content-Length:
|
|
22
|
+
- '168'
|
|
23
|
+
Content-Type:
|
|
24
|
+
- text/html; charset=UTF-8
|
|
25
|
+
Date:
|
|
26
|
+
- Wed, 14 Jan 2015 05:36:55 GMT
|
|
27
|
+
Expires:
|
|
28
|
+
- Mon, 26 Jul 1997 05:00:00 GMT
|
|
29
|
+
Cache-Control:
|
|
30
|
+
- no-cache,must-revalidate
|
|
31
|
+
body:
|
|
32
|
+
encoding: UTF-8
|
|
33
|
+
string: "<html><head><title>Forbidden</title></head><body><h1>Forbidden</h1>Access
|
|
34
|
+
is denied. Retrying will not help. Please verify your <pre>key=</pre> parameter.</body></html>"
|
|
35
|
+
http_version:
|
|
36
|
+
recorded_at: Wed, 14 Jan 2015 05:36:55 GMT
|
|
37
|
+
recorded_with: VCR 2.9.3
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002?appid=8930&format=json&key=<API_KEY>&steamid=76561198046174695
|
|
6
|
+
body:
|
|
7
|
+
encoding: US-ASCII
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
User-Agent:
|
|
11
|
+
- Faraday v0.9.0
|
|
12
|
+
Accept-Encoding:
|
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
14
|
+
Accept:
|
|
15
|
+
- "*/*"
|
|
16
|
+
response:
|
|
17
|
+
status:
|
|
18
|
+
code: 200
|
|
19
|
+
message: OK
|
|
20
|
+
headers:
|
|
21
|
+
Date:
|
|
22
|
+
- Tue, 06 Jan 2015 08:28:02 GMT
|
|
23
|
+
Expires:
|
|
24
|
+
- Tue, 06 Jan 2015 08:33:02 GMT
|
|
25
|
+
Content-Type:
|
|
26
|
+
- application/json; charset=UTF-8
|
|
27
|
+
Content-Length:
|
|
28
|
+
- '19075'
|
|
29
|
+
body:
|
|
30
|
+
encoding: UTF-8
|
|
31
|
+
string: "{\n\t\"playerstats\": {\n\t\t\"steamID\": \"76561198046174695\",\n\t\t\"gameName\":
|
|
32
|
+
\"ValveTestApp8930\",\n\t\t\"achievements\": [\n\t\t\t{\n\t\t\t\t\"name\":
|
|
33
|
+
\"ACHIEVEMENT_WIN_WASHINGTON\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
34
|
+
\"ACHIEVEMENT_WIN_ELIZABETH\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
35
|
+
\"ACHIEVEMENT_WIN_NAPOLEON\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
36
|
+
\"ACHIEVEMENT_WIN_BISMARCK\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
37
|
+
\"ACHIEVEMENT_WIN_CATHERINE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
38
|
+
\"ACHIEVEMENT_WIN_CAESAR\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
39
|
+
\"ACHIEVEMENT_WIN_ALEXANDER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
40
|
+
\"ACHIEVEMENT_WIN_RAMESSES\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
41
|
+
\"ACHIEVEMENT_WIN_ASKIA\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
42
|
+
\"ACHIEVEMENT_WIN_HARUN\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
43
|
+
\"ACHIEVEMENT_WIN_DARIUS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
44
|
+
\"ACHIEVEMENT_WIN_GANDHI\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
45
|
+
\"ACHIEVEMENT_WIN_ODA\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
46
|
+
\"ACHIEVEMENT_WIN_SULEIMAN\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
47
|
+
\"ACHIEVEMENT_DIFLEVEL_SETTLER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
48
|
+
\"ACHIEVEMENT_DIFLEVEL_CHIEFTAIN\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
49
|
+
\"ACHIEVEMENT_DIFLEVEL_WARLORD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
50
|
+
\"ACHIEVEMENT_DIFLEVEL_PRINCE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
51
|
+
\"ACHIEVEMENT_DIFLEVEL_KING\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
52
|
+
\"ACHIEVEMENT_DIFLEVEL_EMPEROR\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
53
|
+
\"ACHIEVEMENT_DIFLEVEL_IMMORTAL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
54
|
+
\"ACHIEVEMENT_DIFLEVEL_DEITY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
55
|
+
\"ACHIEVEMENT_MAPSIZE_DUEL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
56
|
+
\"ACHIEVEMENT_MAPSIZE_TINY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
57
|
+
\"ACHIEVEMENT_MAPSIZE_SMALL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
58
|
+
\"ACHIEVEMENT_MAPSIZE_STANDARD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
59
|
+
\"ACHIEVEMENT_MAPSIZE_LARGE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
60
|
+
\"ACHIEVEMENT_MAPSIZE_HUGE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
61
|
+
\"ACHIEVEMENT_MAPTYPE_CONTINENTS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
62
|
+
\"ACHIEVEMENT_MAPTYPE_PANGAEA\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
63
|
+
\"ACHIEVEMENT_MAPTYPE_ARCHIPELAGO\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
64
|
+
\"ACHIEVEMENT_MAPTYPE_EARTH\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
65
|
+
\"ACHIEVEMENT_MAPS_ALL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
66
|
+
\"ACHIEVEMENT_CITYSTATE_ALLY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
67
|
+
\"ACHIEVEMENT_CITYSTATE_ANNEX\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
68
|
+
\"ACHIEVEMENT_BUILD_WONDER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
69
|
+
\"ACHIEVEMENT_UNIT_UPGRADE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
70
|
+
\"ACHIEVEMENT_UNIT_PROMOTE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
71
|
+
\"ACHIEVEMENT_DESTROY_CIV\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
72
|
+
\"ACHIEVEMENT_SECOND_CITY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
73
|
+
\"ACHIEVEMENT_ANCIENT_RUIN\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
74
|
+
\"ACHIEVEMENT_ALL_TECHS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
75
|
+
\"ACHIEVEMENT_ALL_WONDERS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
76
|
+
\"ACHIEVEMENT_ALL_SOCIAL_POLICIES\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
77
|
+
\"ACHIEVEMENT_ALL_UNITS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
78
|
+
\"ACHIEVEMENT_GOLDEN_AGE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
79
|
+
\"ACHIEVEMENT_CITY_100CULTURE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
80
|
+
\"ACHIEVEMENT_CITY_100SCIENCE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
81
|
+
\"ACHIEVEMENT_CITY_100GOLD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
82
|
+
\"ACHIEVEMENT_ONEHITKILL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
83
|
+
\"ACHIEVEMENT_UNIT_EMBARK\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
84
|
+
\"ACHIEVEMENT_100CAMPS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
85
|
+
\"ACHIEVEMENT_SUCK_AT_WONDERS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
86
|
+
\"ACHIEVEMENT_ONECITY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
87
|
+
\"ACHIEVEMENT_VICTORY_SPACE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
88
|
+
\"ACHIEVEMENT_VICTORY_CULTURE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
89
|
+
\"ACHIEVEMENT_VICTORY_DIPLO\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
90
|
+
\"ACHIEVEMENT_VICTORY_DOMINATION\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
91
|
+
\"ACHIEVEMENT_VICTORY_ALL\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
92
|
+
\"ACHIEVEMENT_DROP_NUKE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
93
|
+
\"ACHIEVEMENT_EXPANSIONIST\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
94
|
+
\"ACHIEVEMENT_POLICY_LIBERTY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
95
|
+
\"ACHIEVEMENT_POLICY_PIETY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
96
|
+
\"ACHIEVEMENT_POLICY_AUTOCRACY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
97
|
+
\"ACHIEVEMENT_POLICY_ORDER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
98
|
+
\"ACHIEVEMENT_POLICY_TRADITION\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
99
|
+
\"ACHIEVEMENT_POLICY_HONOR\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
100
|
+
\"ACHIEVEMENT_POLICY_PATRONAGE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
101
|
+
\"ACHIEVEMENT_POLICY_COMMERCE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
102
|
+
\"ACHIEVEMENT_POLICY_RATIONALISM\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
103
|
+
\"ACHIEVEMENT_POLICY_FREEDOM\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
104
|
+
\"ACHIEVEMENT_ALL_NATURALWONDER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
105
|
+
\"ACHIEVEMENT_1000ROADS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
106
|
+
\"ACHIEVEMENT_1000MINES\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
107
|
+
\"ACHIEVEMENT_100RESOURCES\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
108
|
+
\"ACHIEVEMENT_1000TILES\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
109
|
+
\"ACHIEVEMENT_ROUND_WORLD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
110
|
+
\"ACHIEVEMENT_SPECIAL_B17\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
111
|
+
\"ACHIEVEMENT_SPECIAL_TRADER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
112
|
+
\"ACHIEVEMENT_SPECIAL_GARDENS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
113
|
+
\"ACHIEVEMENT_SPECIAL_SPHINX\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
114
|
+
\"ACHIEVEMENT_SPECIAL_MUSKETEERS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
115
|
+
\"ACHIEVEMENT_SPECIAL_LONGHOUSE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
116
|
+
\"ACHIEVEMENT_SPECIAL_BOLLYWOOD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
117
|
+
\"ACHIEVEMENT_SPECIAL_KAMIKAZE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
118
|
+
\"ACHIEVEMENT_SPECIAL_ARCHAEMENNID\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
119
|
+
\"ACHIEVEMENT_SPECIAL_ROMANROADS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
120
|
+
\"ACHIEVEMENT_SPECIAL_SUNTZU\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
121
|
+
\"ACHIEVEMENT_SPECIAL_BARBARIANWARLORD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
122
|
+
\"ACHIEVEMENT_SPECIAL_TOMBRAIDER\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
123
|
+
\"ACHIEVEMENT_SPECIAL_WARCANOE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
124
|
+
\"ACHIEVEMENT_SPECIAL_PONY\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
125
|
+
\"ACHIEVEMENT_SPECIAL_CONQUEST_WORLD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
126
|
+
\"ACHIEVEMENT_REALLY_SUCK\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
127
|
+
\"ACHIEVEMENT_SCENARIO_02_DISCOVER_FOUNTAIN\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
128
|
+
\"ACHIEVEMENT_SCENARIO_02_DISCOVER_EL_DORADO\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
129
|
+
\"ACHIEVEMENT_SCENARIO_04_PILLAGE\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
130
|
+
\"ACHIEVEMENT_WIN_SEJONG\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
131
|
+
\"ACHIEVEMENT_SPECIAL_ROME_GETS_ZEUS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
132
|
+
\"ACHIEVEMENT_SPECIAL_ZEUS_AND_ARTEMIS\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
133
|
+
\"ACHIEVEMENT_SPECIAL_HALICARNASSUS_GOLD\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
134
|
+
\"ACHIEVEMENT_XP1_02\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
135
|
+
\"ACHIEVEMENT_XP1_04\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
136
|
+
\"ACHIEVEMENT_XP1_10\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
137
|
+
\"ACHIEVEMENT_XP1_11\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
138
|
+
\"ACHIEVEMENT_XP1_12\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
139
|
+
\"ACHIEVEMENT_XP1_13\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
140
|
+
\"ACHIEVEMENT_XP1_14\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
141
|
+
\"ACHIEVEMENT_XP1_15\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
142
|
+
\"ACHIEVEMENT_XP1_16\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
143
|
+
\"ACHIEVEMENT_XP1_17\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
144
|
+
\"ACHIEVEMENT_XP1_18\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
145
|
+
\"ACHIEVEMENT_XP1_20\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
146
|
+
\"ACHIEVEMENT_XP1_25\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
147
|
+
\"ACHIEVEMENT_XP1_26\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
148
|
+
\"ACHIEVEMENT_XP1_27\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
149
|
+
\"ACHIEVEMENT_XP1_33\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
150
|
+
\"ACHIEVEMENT_XP1_37\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
151
|
+
\"ACHIEVEMENT_XP2_05\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
152
|
+
\"ACHIEVEMENT_XP2_10\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
153
|
+
\"ACHIEVEMENT_XP2_11\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
154
|
+
\"ACHIEVEMENT_XP2_12\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
155
|
+
\"ACHIEVEMENT_XP2_13\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
156
|
+
\"ACHIEVEMENT_XP2_14\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
157
|
+
\"ACHIEVEMENT_XP2_15\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
158
|
+
\"ACHIEVEMENT_XP2_16\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
159
|
+
\"ACHIEVEMENT_XP2_17\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
160
|
+
\"ACHIEVEMENT_XP2_18\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
161
|
+
\"ACHIEVEMENT_XP2_19\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
162
|
+
\"ACHIEVEMENT_XP2_23\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
163
|
+
\"ACHIEVEMENT_XP2_24\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
164
|
+
\"ACHIEVEMENT_XP2_27\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
165
|
+
\"ACHIEVEMENT_XP2_28\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
166
|
+
\"ACHIEVEMENT_XP2_30\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
167
|
+
\"ACHIEVEMENT_XP2_31\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
168
|
+
\"ACHIEVEMENT_XP2_32\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
169
|
+
\"ACHIEVEMENT_XP2_36\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
170
|
+
\"ACHIEVEMENT_XP2_37\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
171
|
+
\"ACHIEVEMENT_XP2_38\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
172
|
+
\"ACHIEVEMENT_XP2_40\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
173
|
+
\"ACHIEVEMENT_XP2_41\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
174
|
+
\"ACHIEVEMENT_XP2_42\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
175
|
+
\"ACHIEVEMENT_XP2_43\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
176
|
+
\"ACHIEVEMENT_XP2_44\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
177
|
+
\"ACHIEVEMENT_XP2_45\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
178
|
+
\"ACHIEVEMENT_XP2_46\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
179
|
+
\"ACHIEVEMENT_XP2_47\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
180
|
+
\"ACHIEVEMENT_XP2_48\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
181
|
+
\"ACHIEVEMENT_XP2_56\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
182
|
+
\"ACHIEVEMENT_XP2_57\",\n\t\t\t\t\"achieved\": 1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\":
|
|
183
|
+
\"ACHIEVEMENT_XP2_58\",\n\t\t\t\t\"achieved\": 1\n\t\t\t}\n\t\t]\n\t\t,\n\t\t\"stats\":
|
|
184
|
+
[\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TOTAL_WINS\",\n\t\t\t\t\"value\":
|
|
185
|
+
24\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ARCHER\",\n\t\t\t\t\"value\":
|
|
186
|
+
140\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CHARIOTARCHER\",\n\t\t\t\t\"value\":
|
|
187
|
+
19\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HOPLITE\",\n\t\t\t\t\"value\":
|
|
188
|
+
9\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_IMMORTAL\",\n\t\t\t\t\"value\":
|
|
189
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_JAGUAR\",\n\t\t\t\t\"value\":
|
|
190
|
+
11\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SCOUT\",\n\t\t\t\t\"value\":
|
|
191
|
+
155\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SETTLER\",\n\t\t\t\t\"value\":
|
|
192
|
+
369\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SPEARMAN\",\n\t\t\t\t\"value\":
|
|
193
|
+
52\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TRIREME\",\n\t\t\t\t\"value\":
|
|
194
|
+
94\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_WARCHARIOT\",\n\t\t\t\t\"value\":
|
|
195
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_WARELEPHANT\",\n\t\t\t\t\"value\":
|
|
196
|
+
10\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_WARRIOR\",\n\t\t\t\t\"value\":
|
|
197
|
+
50\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_WORKBOAT\",\n\t\t\t\t\"value\":
|
|
198
|
+
536\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_WORKER\",\n\t\t\t\t\"value\":
|
|
199
|
+
283\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BALLISTA\",\n\t\t\t\t\"value\":
|
|
200
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CATAPULT\",\n\t\t\t\t\"value\":
|
|
201
|
+
42\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_COMPANIONCAVALRY\",\n\t\t\t\t\"value\":
|
|
202
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HORSEMAN\",\n\t\t\t\t\"value\":
|
|
203
|
+
35\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LEGION\",\n\t\t\t\t\"value\":
|
|
204
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MOHAWKWARRIOR\",\n\t\t\t\t\"value\":
|
|
205
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SWORDSMAN\",\n\t\t\t\t\"value\":
|
|
206
|
+
36\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CAMELARCHER\",\n\t\t\t\t\"value\":
|
|
207
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CHUKONU\",\n\t\t\t\t\"value\":
|
|
208
|
+
5\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CROSSBOWMAN\",\n\t\t\t\t\"value\":
|
|
209
|
+
43\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_KNIGHT\",\n\t\t\t\t\"value\":
|
|
210
|
+
64\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LANDSKNECHT\",\n\t\t\t\t\"value\":
|
|
211
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LONGBOWMAN\",\n\t\t\t\t\"value\":
|
|
212
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LONGSWORDSMAN\",\n\t\t\t\t\"value\":
|
|
213
|
+
15\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MANDEKALUCAVALRY\",\n\t\t\t\t\"value\":
|
|
214
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PIKEMAN\",\n\t\t\t\t\"value\":
|
|
215
|
+
34\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NARESUANSELEPHANT\",\n\t\t\t\t\"value\":
|
|
216
|
+
1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SAMURAI\",\n\t\t\t\t\"value\":
|
|
217
|
+
5\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TREBUCHET\",\n\t\t\t\t\"value\":
|
|
218
|
+
39\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CANNON\",\n\t\t\t\t\"value\":
|
|
219
|
+
97\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CARAVEL\",\n\t\t\t\t\"value\":
|
|
220
|
+
22\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_COSSACK\",\n\t\t\t\t\"value\":
|
|
221
|
+
9\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_FRIGATE\",\n\t\t\t\t\"value\":
|
|
222
|
+
99\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_JANISSARY\",\n\t\t\t\t\"value\":
|
|
223
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LANCER\",\n\t\t\t\t\"value\":
|
|
224
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MINUTEMAN\",\n\t\t\t\t\"value\":
|
|
225
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MUSKETEER\",\n\t\t\t\t\"value\":
|
|
226
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MUSKETMAN\",\n\t\t\t\t\"value\":
|
|
227
|
+
47\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_RIFLEMAN\",\n\t\t\t\t\"value\":
|
|
228
|
+
39\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SHIPOFTHELINE\",\n\t\t\t\t\"value\":
|
|
229
|
+
37\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SIPAHI\",\n\t\t\t\t\"value\":
|
|
230
|
+
1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ANTIAIRCRAFTGUN\",\n\t\t\t\t\"value\":
|
|
231
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ANTITANKGUN\",\n\t\t\t\t\"value\":
|
|
232
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ARTILLERY\",\n\t\t\t\t\"value\":
|
|
233
|
+
165\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BATTLESHIP\",\n\t\t\t\t\"value\":
|
|
234
|
+
43\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CARRIER\",\n\t\t\t\t\"value\":
|
|
235
|
+
15\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_DESTROYER\",\n\t\t\t\t\"value\":
|
|
236
|
+
34\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_FIGHTER\",\n\t\t\t\t\"value\":
|
|
237
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_FOREIGNLEGION\",\n\t\t\t\t\"value\":
|
|
238
|
+
1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_INFANTRY\",\n\t\t\t\t\"value\":
|
|
239
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_IRONCLAD\",\n\t\t\t\t\"value\":
|
|
240
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PANZER\",\n\t\t\t\t\"value\":
|
|
241
|
+
8\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SUBMARINE\",\n\t\t\t\t\"value\":
|
|
242
|
+
88\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TANK\",\n\t\t\t\t\"value\":
|
|
243
|
+
15\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ZERO\",\n\t\t\t\t\"value\":
|
|
244
|
+
1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ATOMICBOMB\",\n\t\t\t\t\"value\":
|
|
245
|
+
25\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_B17\",\n\t\t\t\t\"value\":
|
|
246
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BOMBER\",\n\t\t\t\t\"value\":
|
|
247
|
+
63\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GUIDEDMISSILE\",\n\t\t\t\t\"value\":
|
|
248
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HELICOPTERGUNSHIP\",\n\t\t\t\t\"value\":
|
|
249
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_JETFIGHTER\",\n\t\t\t\t\"value\":
|
|
250
|
+
5\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MECHANIZEDINFANTRY\",\n\t\t\t\t\"value\":
|
|
251
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MISSILECRUISER\",\n\t\t\t\t\"value\":
|
|
252
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MOBILESAM\",\n\t\t\t\t\"value\":
|
|
253
|
+
9\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MODERNARMOR\",\n\t\t\t\t\"value\":
|
|
254
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NUCLEARMISSILE\",\n\t\t\t\t\"value\":
|
|
255
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NUCLEARSUBMARINE\",\n\t\t\t\t\"value\":
|
|
256
|
+
19\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PARATROOPER\",\n\t\t\t\t\"value\":
|
|
257
|
+
15\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ROCKETARTILLERY\",\n\t\t\t\t\"value\":
|
|
258
|
+
27\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SSBOOSTER\",\n\t\t\t\t\"value\":
|
|
259
|
+
11\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SSCOCKPIT\",\n\t\t\t\t\"value\":
|
|
260
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_STEALTHBOMBER\",\n\t\t\t\t\"value\":
|
|
261
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GIANTDEATHROBOT\",\n\t\t\t\t\"value\":
|
|
262
|
+
2\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SSENGINE\",\n\t\t\t\t\"value\":
|
|
263
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SSSTASISCHAMBER\",\n\t\t\t\t\"value\":
|
|
264
|
+
4\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ANGKORWAT\",\n\t\t\t\t\"value\":
|
|
265
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BIGBEN\",\n\t\t\t\t\"value\":
|
|
266
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BRANDENBURGGATE\",\n\t\t\t\t\"value\":
|
|
267
|
+
20\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CHICHENITZA\",\n\t\t\t\t\"value\":
|
|
268
|
+
11\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CRISTOREDENTOR\",\n\t\t\t\t\"value\":
|
|
269
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_EIFFELTOWER\",\n\t\t\t\t\"value\":
|
|
270
|
+
20\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HIMEJICASTLE\",\n\t\t\t\t\"value\":
|
|
271
|
+
10\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MACHUPICCHU\",\n\t\t\t\t\"value\":
|
|
272
|
+
8\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NOTREDAME\",\n\t\t\t\t\"value\":
|
|
273
|
+
8\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PENTAGON\",\n\t\t\t\t\"value\":
|
|
274
|
+
9\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SISTINECHAPEL\",\n\t\t\t\t\"value\":
|
|
275
|
+
24\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_STATUEOFLIBERTY\",\n\t\t\t\t\"value\":
|
|
276
|
+
8\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_STONEHENGE\",\n\t\t\t\t\"value\":
|
|
277
|
+
36\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_SYDNEYOPERAHOUSE\",\n\t\t\t\t\"value\":
|
|
278
|
+
10\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TAJMAHAL\",\n\t\t\t\t\"value\":
|
|
279
|
+
10\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_COLOSSUS\",\n\t\t\t\t\"value\":
|
|
280
|
+
19\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_FORBIDDENPALACE\",\n\t\t\t\t\"value\":
|
|
281
|
+
3\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GREATLIBRARY\",\n\t\t\t\t\"value\":
|
|
282
|
+
29\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GREATLIGHTHOUSE\",\n\t\t\t\t\"value\":
|
|
283
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GREATWALL\",\n\t\t\t\t\"value\":
|
|
284
|
+
7\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HAGIASOPHIA\",\n\t\t\t\t\"value\":
|
|
285
|
+
18\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HANGINGGARDENS\",\n\t\t\t\t\"value\":
|
|
286
|
+
35\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_KREMLIN\",\n\t\t\t\t\"value\":
|
|
287
|
+
6\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_LOUVRE\",\n\t\t\t\t\"value\":
|
|
288
|
+
17\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ORACLE\",\n\t\t\t\t\"value\":
|
|
289
|
+
37\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PORCELAINTOWER\",\n\t\t\t\t\"value\":
|
|
290
|
+
12\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_PYRAMIDS\",\n\t\t\t\t\"value\":
|
|
291
|
+
40\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_UNITEDNATION\",\n\t\t\t\t\"value\":
|
|
292
|
+
1\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HERMITAGE\",\n\t\t\t\t\"value\":
|
|
293
|
+
16\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HEROICEPIC\",\n\t\t\t\t\"value\":
|
|
294
|
+
27\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_IRONWORKS\",\n\t\t\t\t\"value\":
|
|
295
|
+
49\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NATIONALCOLLEGE\",\n\t\t\t\t\"value\":
|
|
296
|
+
59\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NATIONALEPIC\",\n\t\t\t\t\"value\":
|
|
297
|
+
69\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_OXFORDUNIVERSITY\",\n\t\t\t\t\"value\":
|
|
298
|
+
36\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BARBARIANCAMPS\",\n\t\t\t\t\"value\":
|
|
299
|
+
791\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BEATWONDERS\",\n\t\t\t\t\"value\":
|
|
300
|
+
1633\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_NATURALWONDERS\",\n\t\t\t\t\"value\":
|
|
301
|
+
351\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_ROADS\",\n\t\t\t\t\"value\":
|
|
302
|
+
1511\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MINES\",\n\t\t\t\t\"value\":
|
|
303
|
+
1576\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_RESOURCESTRADED\",\n\t\t\t\t\"value\":
|
|
304
|
+
1289\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_FORESTS\",\n\t\t\t\t\"value\":
|
|
305
|
+
966\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TEMPLES\",\n\t\t\t\t\"value\":
|
|
306
|
+
463\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_GREATGENERALS\",\n\t\t\t\t\"value\":
|
|
307
|
+
192\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_STANDINGARMY\",\n\t\t\t\t\"value\":
|
|
308
|
+
122\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_CAVALRY\",\n\t\t\t\t\"value\":
|
|
309
|
+
25\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TILESPURCHASED\",\n\t\t\t\t\"value\":
|
|
310
|
+
626\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TILESDISCOVERED\",\n\t\t\t\t\"value\":
|
|
311
|
+
255200\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BARBSCONVERTED\",\n\t\t\t\t\"value\":
|
|
312
|
+
70\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BRITISHNAVY\",\n\t\t\t\t\"value\":
|
|
313
|
+
283\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_STATUEOFZEUS\",\n\t\t\t\t\"value\":
|
|
314
|
+
24\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_TEMPLEOFARTEMIS\",\n\t\t\t\t\"value\":
|
|
315
|
+
18\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_MAUSOLEUMOFHALICARNASSUS\",\n\t\t\t\t\"value\":
|
|
316
|
+
46\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_HALICARNASSUSGOLDEARNED\",\n\t\t\t\t\"value\":
|
|
317
|
+
67600\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"name\": \"ESTEAMSTAT_BULLIEDGOLD\",\n\t\t\t\t\"value\":
|
|
318
|
+
2590\n\t\t\t}\n\t\t]\n\t\t\n\t}\n}"
|
|
319
|
+
http_version:
|
|
320
|
+
recorded_at: Tue, 06 Jan 2015 08:28:03 GMT
|
|
321
|
+
recorded_with: VCR 2.9.3
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
http_interactions:
|
|
3
|
+
- request:
|
|
4
|
+
method: get
|
|
5
|
+
uri: http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002?appid=4760&format=json&key=<API_KEY>&steamid=76561198046174695
|
|
6
|
+
body:
|
|
7
|
+
encoding: US-ASCII
|
|
8
|
+
string: ''
|
|
9
|
+
headers:
|
|
10
|
+
User-Agent:
|
|
11
|
+
- Faraday v0.9.0
|
|
12
|
+
Accept-Encoding:
|
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
|
14
|
+
Accept:
|
|
15
|
+
- "*/*"
|
|
16
|
+
response:
|
|
17
|
+
status:
|
|
18
|
+
code: 400
|
|
19
|
+
message: Bad Request
|
|
20
|
+
headers:
|
|
21
|
+
Date:
|
|
22
|
+
- Tue, 06 Jan 2015 08:30:29 GMT
|
|
23
|
+
Expires:
|
|
24
|
+
- Tue, 06 Jan 2015 08:30:29 GMT
|
|
25
|
+
Content-Type:
|
|
26
|
+
- application/json; charset=UTF-8
|
|
27
|
+
Content-Length:
|
|
28
|
+
- '4'
|
|
29
|
+
body:
|
|
30
|
+
encoding: UTF-8
|
|
31
|
+
string: |-
|
|
32
|
+
{
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
http_version:
|
|
36
|
+
recorded_at: Tue, 06 Jan 2015 08:30:29 GMT
|
|
37
|
+
recorded_with: VCR 2.9.3
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require "codeclimate-test-reporter"
|
|
2
|
+
CodeClimate::TestReporter.start
|
|
3
|
+
require "dotenv"
|
|
4
|
+
Dotenv.load
|
|
5
|
+
require "steam_web_api"
|
|
6
|
+
require "webmock/rspec"
|
|
7
|
+
require "vcr"
|
|
8
|
+
|
|
9
|
+
WebMock.disable_net_connect!(allow_localhost: true, allow: 'codeclimate.com')
|
|
10
|
+
|
|
11
|
+
RSpec.configure do |config|
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
VCR.configure do |c|
|
|
15
|
+
c.ignore_hosts 'codeclimate.com'
|
|
16
|
+
c.cassette_library_dir = 'spec/fixtures/vcr'
|
|
17
|
+
c.filter_sensitive_data("<API_KEY>") { ENV["STEAM_WEB_API_KEY"] }
|
|
18
|
+
c.hook_into :webmock
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
config.expect_with :rspec do |expectations|
|
|
22
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
config.mock_with :rspec do |mocks|
|
|
26
|
+
mocks.verify_partial_doubles = true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
config.filter_run :focus
|
|
30
|
+
config.run_all_when_everything_filtered = true
|
|
31
|
+
|
|
32
|
+
config.disable_monkey_patching!
|
|
33
|
+
config.warnings = true
|
|
34
|
+
|
|
35
|
+
if config.files_to_run.one?
|
|
36
|
+
config.default_formatter = 'doc'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
config.profile_examples = 10
|
|
40
|
+
|
|
41
|
+
config.order = :random
|
|
42
|
+
|
|
43
|
+
Kernel.srand config.seed
|
|
44
|
+
|
|
45
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
RSpec.describe SteamWebApi do
|
|
4
|
+
|
|
5
|
+
let(:base) { SteamWebApi::Base.new }
|
|
6
|
+
let(:raw_body) { '{"response":{"someData":"hello","numbers":["1", "2", "3"],"objects":[{"a":1},{"b":2}]}}' }
|
|
7
|
+
let(:response) { OpenStruct.new(status: 200, body: raw_body) }
|
|
8
|
+
let(:response_not_successful) { OpenStruct.new(status: 403, body: '{}') }
|
|
9
|
+
|
|
10
|
+
describe '#get' do
|
|
11
|
+
|
|
12
|
+
before do
|
|
13
|
+
stub_request(:get, "http://api.steampowered.comiplayerservice/GetOwnedGames/v0001?format=json&key1=somevalue&key2=2")
|
|
14
|
+
.to_return(status: 200)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'returns proper url' do
|
|
18
|
+
response = base.get 'IPlayerService/GetOwnedGames/v0001', key1: 'somevalue', key2: 2
|
|
19
|
+
expect(response).to an_instance_of Faraday::Response
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe '#parse_response' do
|
|
25
|
+
|
|
26
|
+
it 'returns parsed json' do
|
|
27
|
+
base.response = OpenStruct.new(status: 200, body: '{"response":{"someData":"hello","numbers":["1", "2", "3"]}}')
|
|
28
|
+
data = base.parse_response['response']
|
|
29
|
+
expect(data['someData']).to eq 'hello'
|
|
30
|
+
expect(data['numbers']).to eq(["1", "2", "3"])
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '.build_response' do
|
|
36
|
+
|
|
37
|
+
context 'when response is successful' do
|
|
38
|
+
|
|
39
|
+
it 'returns correct object' do
|
|
40
|
+
data = SteamWebApi::Base.build_response(response, 'response') { |data| { some_data: data['someData'], my_numbers: data['numbers'], objects: data['objects'] } }
|
|
41
|
+
expect(data.success).to be true
|
|
42
|
+
expect(data.some_data).to eq 'hello'
|
|
43
|
+
expect(data.my_numbers).to match_array ['1','2','3']
|
|
44
|
+
expect(data.objects).to eq([{"a" => 1}, {"b" => 2}])
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
context 'when response is not successful' do
|
|
50
|
+
|
|
51
|
+
it 'returns correct object' do
|
|
52
|
+
data = SteamWebApi::Base.build_response(response_not_successful, 'response') { |data| { some_data: data['someData'], my_numbers: data['numbers'], objects: data['objects'] } }
|
|
53
|
+
expect(data.success).to be false
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
describe '#build_response' do
|
|
61
|
+
|
|
62
|
+
context 'when response is successful' do
|
|
63
|
+
|
|
64
|
+
before do
|
|
65
|
+
base.response = response
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'returns correct object' do
|
|
69
|
+
response = base.build_response('response') { |data| { some_data: data['someData'], my_numbers: data['numbers'], objects: data['objects'] } }
|
|
70
|
+
expect(response.success).to be true
|
|
71
|
+
expect(response.some_data).to eq 'hello'
|
|
72
|
+
expect(response.my_numbers).to match_array(['1','2','3'])
|
|
73
|
+
expect(response.objects.first).to eq({"a" => 1})
|
|
74
|
+
expect(response.objects.last).to eq({"b" => 2})
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
context 'when response is not successful' do
|
|
80
|
+
|
|
81
|
+
before do
|
|
82
|
+
base.response = response_not_successful
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it 'returns correct object' do
|
|
86
|
+
response = base.build_response('response') { |data| { same_data: data['someData'], my_numbers: data['numbers'], objects: data['objects'] } }
|
|
87
|
+
expect(response.success).to be false
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
RSpec.describe SteamWebApi::Configuration do
|
|
4
|
+
|
|
5
|
+
describe '#api_key' do
|
|
6
|
+
|
|
7
|
+
let(:config) { SteamWebApi::Configuration.new }
|
|
8
|
+
|
|
9
|
+
it 'sets Steam Web API key' do
|
|
10
|
+
config.api_key = 'Some key'
|
|
11
|
+
expect(config.api_key).to eq 'Some key'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|