dota 0.0.8 → 0.0.9

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: 75461cf111d77eeb914651d773cd93d245302b3d
4
- data.tar.gz: 55187c81f399c51cad995c0dee7720ccf79bf394
3
+ metadata.gz: 2f1310ea5eaf894a60463c727abdb95d2df7c21f
4
+ data.tar.gz: c8b3c2c9606d1582a7ba206f14ddef50de3d8c23
5
5
  SHA512:
6
- metadata.gz: e3496ade2cde5f857dcd476cca08db4855fcc6b482faeb62e30c105141a2fb11bafc8c258283eaf87ac83667faccc3ece7096712da2448503c8339544ff7fc15
7
- data.tar.gz: a3d2fe97b094882165ff0136498bd0a5fc6a65faed9a2504daa9729a9a6c5effd136e55c9de22ac9a339304114c4bf4c47600304d5c5e44531507caae6a5f650
6
+ metadata.gz: 7ae72c29fdfce7f3db78dec8ae8ae5dfa0e97849fc8dfa9e74a0b787118f8b2423c6fd8cd6e8e5ad7e1906e4a19ca9dc4480eff39199917422ffc47b6dba828d
7
+ data.tar.gz: dcac157c067648a2074b3c0857354fe613b9e334566ab47ab74565bb4dc658ef11ba789ed6f116eb7de2d8b49283b47a4a1700ebd8b9d42906871ae6abc3bb75
data/README.md CHANGED
@@ -1,17 +1,29 @@
1
1
  # Dota [![Gem Version](https://badge.fury.io/rb/dota.svg)](http://badge.fury.io/rb/dota) [![Build Status](https://travis-ci.org/vinnicc/dota.svg?branch=master)](https://travis-ci.org/vinnicc/dota)
2
2
 
3
- `dota` is a Ruby client for the [Dota 2 WebAPI](https://wiki.teamfortress.com/wiki/WebAPI#Dota_2). It provides an easy way to access matches, players, heroes, items, and other public Dota 2 objects in an opinionated manner. Check out their [documentation](https://wiki.teamfortress.com/wiki/WebAPI#Dota_2) or [this post](http://dev.dota2.com/showthread.php?t=58317) to learn more.
3
+ `dota` is a Ruby client for the [Dota 2 WebAPI](https://wiki.teamfortress.com/wiki/WebAPI#Dota_2). It provides an easy way to access matches, players, heroes, items, and other public Dota 2 objects in an opinionated manner.
4
4
 
5
5
  Currently supported endpoints:
6
6
 
7
+ - [GetLeagueListing](https://wiki.teamfortress.com/wiki/WebAPI/GetLeagueListing)
7
8
  - [GetMatchDetails](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchDetails)
8
9
  - [GetMatchHistory](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchHistory)
10
+ - [GetFriendList](https://wiki.teamfortress.com/wiki/WebAPI/GetFriendList)
11
+ - [GetHeroes](https://wiki.teamfortress.com/wiki/WebAPI/GetHeroes)
12
+ - GetGameItems
13
+ - [GetRarities](https://wiki.teamfortress.com/wiki/WebAPI/GetRarities)
9
14
 
10
15
  This gem is in alpha, keep that in mind when upgrading.
11
16
 
12
17
  ## TODO
13
18
 
14
19
  - Support for more endpoints
20
+ - [GetLiveLeagueGames](https://wiki.teamfortress.com/wiki/WebAPI/GetLiveLeagueGames)
21
+ - [GetMatchHistoryBySequenceNum](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchHistoryBySequenceNum)
22
+ - [GetPlayerSummaries](https://wiki.teamfortress.com/wiki/WebAPI/GetPlayerSummaries)
23
+ - [GetScheduledLeagueGames](https://wiki.teamfortress.com/wiki/WebAPI/GetScheduledLeagueGames)
24
+ - [GetTeamInfoByTeamID](https://wiki.teamfortress.com/wiki/WebAPI/GetTeamInfoByTeamID)
25
+ - [GetTournamentPlayerStats](https://wiki.teamfortress.com/wiki/WebAPI/GetTournamentPlayerStats)
26
+ - [GetTournamentPrizePool](https://wiki.teamfortress.com/wiki/WebAPI/GetTournamentPrizePool)
15
27
  - Validations and error classes
16
28
  - More configuration options
17
29
  - Move API documentation to [readthedocs.org](https://readthedocs.org/) or somewhere else
@@ -72,38 +84,50 @@ api.matches(hero_id: 43) # Allowed options:
72
84
  # :min_players - Integer, With at least this number of players
73
85
  # :league_only - Boolean, Only league matches
74
86
  # :limit - Integer, Amount of matches to return (default is 100)
87
+
88
+ api.friends(76561198052976237) # All friends of user
89
+ ```
90
+
91
+ #### Custom Requests
92
+
93
+ For the unsupported endpoints, you can use `api.get`. The following code is similar to `api.matches(789645621)` except that it only returns the response body.
94
+
95
+ ```ruby
96
+ api.get("IDOTA2Match_570", "GetMatchDetails", match_id: 789645621)
75
97
  ```
76
98
 
99
+ ### API Objects
100
+
77
101
  #### Heroes
78
102
 
79
103
  ```ruby
80
- hero.id # => 43
81
- hero.name # => "Death Prophet"
82
- hero.image_url # => "http://cdn.dota2.com/apps/dota2/images/heroes/death_prophet_full.png"
104
+ hero.id # Integer, ID of the hero
105
+ hero.name # String, Name of the hero
106
+ hero.image_url # String, URL of the hero portrait
83
107
  ```
84
108
 
85
109
  #### Items
86
110
 
87
111
  ```ruby
88
- item.id # => 114
89
- item.name # => "Heart of Tarrasque"
90
- item.image_url # => "http://cdn.dota2.com/apps/dota2/images/items/heart_lg.png"
112
+ item.id # Integer, ID of the item
113
+ item.name # String, Name of the item
114
+ item.image_url # String, URL of the item image
91
115
  ```
92
116
 
93
117
  #### Leagues
94
118
 
95
119
  ```ruby
96
- league.id # => 600
97
- league.name # => "The International 2014"
98
- league.description # => "The Aegis of Champions hangs in the balance. See the world's top teams battle in the International."
99
- league.url # => "http://www.dota2.com/international/overview/"
120
+ league.id # Integer, ID of the league
121
+ league.name # String, Name of the league
122
+ league.description # String, A description of the league
123
+ league.url # String, URL of the league's website
100
124
  ```
101
125
 
102
126
  #### Matches
103
127
 
104
128
  Caveat: Getting a list of matches via `api.matches` will call [GetMatchHistory](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchHistory) which has very few attributes for the matches returned (obviously for performance reasons), as opposed to getting info about a particular match via `api.matches(id)` which will instead call [GetMatchDetails](https://wiki.teamfortress.com/wiki/WebAPI/GetMatchDetails). In both cases, the matches returned will be instances of `Dota::API::Match`. In the future, there will be subclasses to distinguish the two.
105
129
 
106
- When an instance method in a `Dota::API::Match` class returns `nil`, it most likely means the endpoint called doesn't support the value required yet.
130
+ When an instance method in a `Dota::API::Match` class returns `nil`, it most likely means the endpoint called doesn't provide it yet.
107
131
 
108
132
  ```ruby
109
133
  match.id # => 789645621
@@ -156,19 +180,27 @@ player.hero_healing # => 526
156
180
  #### Drafts
157
181
 
158
182
  ```ruby
159
- draft.order # => 1
160
- draft.pick? # => true
161
- draft.team # => :radiant
162
- draft.hero # => Dota::API::Hero
183
+ draft.order # Integer, 1-20
184
+ draft.pick? # Boolean, true if the draft is a pick, and not a ban
185
+ draft.team # Symbol, :radiant or :dire
186
+ draft.hero # Dota::API::Hero
163
187
  ```
164
188
 
165
189
  #### Cosmetic Rarities
166
190
 
167
191
  ```ruby
168
- rarity.id # => 1
169
- rarity.order # => 0
170
- rarity.color # => "#e4ae39"
171
- rarity.name # => "Immortal"
192
+ rarity.id # Integer, ID of rarity, used for indexing
193
+ rarity.order # Integer, Sorting and logical order, from most distributed to least
194
+ rarity.name # String, Localized display name
195
+ rarity.color # String, The hexadecimal RGB tuple
196
+ ```
197
+
198
+ #### Friends
199
+
200
+ ```ruby
201
+ friend.id # String, 64-bit Steam ID
202
+ friend.relationship # String, Relation to the user
203
+ friend.made_at # Time, When the friend was added to the list
172
204
  ```
173
205
 
174
206
  ## Contributing
data/lib/dota.rb CHANGED
@@ -5,6 +5,7 @@ require 'dota/utils/inspect'
5
5
 
6
6
  require 'dota/api/client'
7
7
  require 'dota/api/cosmetic/rarity'
8
+ require 'dota/api/friend'
8
9
  require 'dota/api/hero'
9
10
  require 'dota/api/item'
10
11
  require 'dota/api/league'
@@ -23,7 +23,7 @@ module Dota
23
23
  def matches(options = {})
24
24
  if options.is_a?(Integer)
25
25
  id = options
26
- response = do_request("GetMatchDetails", match_id: id)["result"]
26
+ response = get("IDOTA2Match_570", "GetMatchDetails", match_id: id)["result"]
27
27
  Match.new(response) if response
28
28
  else
29
29
  options[:game_mode] = options.delete(:mode_id) if options[:mode_id]
@@ -35,7 +35,7 @@ module Dota
35
35
  options[:matches_requested] = options.delete(:limit) if options[:limit]
36
36
  options[:tournament_games_only] = options.delete(:league_only) if options[:league_only]
37
37
 
38
- response = do_request("GetMatchHistory", options)["result"]
38
+ response = get("IDOTA2Match_570", "GetMatchHistory", options)["result"]
39
39
  if response && (matches = response["matches"])
40
40
  matches.map { |match| Match.new(match) }
41
41
  end
@@ -43,22 +43,33 @@ module Dota
43
43
  end
44
44
 
45
45
  def leagues
46
- response = do_request("GetLeagueListing", language: "en")["result"]
46
+ response = get("IDOTA2Match_570", "GetLeagueListing", language: "en")["result"]
47
47
  if response && (leagues = response["leagues"])
48
48
  leagues.map { |league| League.new(league) }
49
49
  end
50
50
  end
51
51
 
52
52
  def cosmetic_rarities
53
- response = do_request("GetRarities", { language: "en" }, "IEconDOTA2_570")["result"]
53
+ response = get("IEconDOTA2_570", "GetRarities", language: "en")["result"]
54
54
  if response && (rarities = response["rarities"])
55
55
  rarities.map { |rarity| Cosmetic::Rarity.new(rarity) }
56
56
  end
57
57
  end
58
58
 
59
+ def friends(user_id)
60
+ response = get("ISteamUser", "GetFriendList", steamid: user_id)["friendslist"]
61
+ if response && (friends = response["friends"])
62
+ friends.map { |friend| Friend.new(friend) }
63
+ end
64
+ end
65
+
66
+ def get(interface, method, params = {}, *args)
67
+ do_request(method, params, interface, *args)
68
+ end
69
+
59
70
  private
60
71
 
61
- def do_request(method, params = {}, interface = "IDOTA2Match_570", method_version = "V001")
72
+ def do_request(method, params, interface = "IDOTA2Match_570", method_version = "V001")
62
73
  url = "https://api.steampowered.com/#{interface}/#{method}/#{method_version}/"
63
74
 
64
75
  @faraday = Faraday.new(url) do |faraday|
@@ -2,6 +2,10 @@ module Dota
2
2
  module API
3
3
  class Cosmetic
4
4
  class Rarity
5
+ include Utilities::Inspectable
6
+
7
+ attr_reader :raw
8
+
5
9
  def initialize(raw)
6
10
  @raw = raw
7
11
  end
@@ -21,10 +25,6 @@ module Dota
21
25
  def name
22
26
  raw["localized_name"]
23
27
  end
24
-
25
- private
26
-
27
- attr_reader :raw
28
28
  end
29
29
  end
30
30
  end
@@ -0,0 +1,25 @@
1
+ module Dota
2
+ module API
3
+ class Friend
4
+ include Utilities::Inspectable
5
+
6
+ attr_reader :raw
7
+
8
+ def initialize(raw)
9
+ @raw = raw
10
+ end
11
+
12
+ def id
13
+ raw["steamid"]
14
+ end
15
+
16
+ def relationship
17
+ raw["relationship"]
18
+ end
19
+
20
+ def friended_at
21
+ Time.at(raw["friend_since"])
22
+ end
23
+ end
24
+ end
25
+ end
@@ -3,6 +3,8 @@ module Dota
3
3
  class League
4
4
  include Utilities::Inspectable
5
5
 
6
+ attr_reader :raw
7
+
6
8
  def initialize(raw)
7
9
  @raw = raw
8
10
  end
@@ -22,10 +24,6 @@ module Dota
22
24
  def url
23
25
  raw["tournament_url"]
24
26
  end
25
-
26
- private
27
-
28
- attr_reader :raw
29
27
  end
30
28
  end
31
29
  end
@@ -11,7 +11,8 @@ module Dota
11
11
  3 => "Tutorial",
12
12
  4 => "Co-op with Bots",
13
13
  5 => "Team Match",
14
- 6 => "Solo Queue"
14
+ 6 => "Solo Queue",
15
+ 7 => "Ranked"
15
16
  }.freeze
16
17
 
17
18
  MODES = {
@@ -30,7 +31,10 @@ module Dota
30
31
  12 => "Least Played",
31
32
  13 => "New Player Pool",
32
33
  14 => "Compendium Matchmaking",
33
- 16 => "Captain's Draft"
34
+ 15 => "Custom",
35
+ 16 => "Captain's Draft",
36
+ 17 => "Balanced Draft",
37
+ 18 => "Ability Draft"
34
38
  }.freeze
35
39
 
36
40
  SKILL_LEVELS = {
@@ -40,6 +44,8 @@ module Dota
40
44
  3 => "Very High"
41
45
  }.freeze
42
46
 
47
+ attr_reader :raw
48
+
43
49
  def initialize(raw)
44
50
  @raw = raw
45
51
  end
@@ -135,10 +141,6 @@ module Dota
135
141
  def dire_barracks_status
136
142
  raw["barracks_status_dire"]
137
143
  end
138
-
139
- private
140
-
141
- attr_reader :raw
142
144
  end
143
145
  end
144
146
  end
@@ -2,6 +2,10 @@ module Dota
2
2
  module API
3
3
  class Match
4
4
  class Draft
5
+ include Utilities::Inspectable
6
+
7
+ attr_reader :raw
8
+
5
9
  def initialize(raw)
6
10
  @raw = raw
7
11
  end
@@ -21,10 +25,6 @@ module Dota
21
25
  def hero
22
26
  Hero.new(raw["hero_id"])
23
27
  end
24
-
25
- private
26
-
27
- attr_reader :raw
28
28
  end
29
29
  end
30
30
  end
@@ -2,6 +2,10 @@ module Dota
2
2
  module API
3
3
  class Match
4
4
  class Player
5
+ include Utilities::Inspectable
6
+
7
+ attr_reader :raw
8
+
5
9
  def initialize(raw)
6
10
  @raw = raw
7
11
  end
@@ -86,10 +90,6 @@ module Dota
86
90
  def items
87
91
  (0..5).map { |i| Item.new(raw["item_#{i}"]) }
88
92
  end
89
-
90
- private
91
-
92
- attr_reader :raw
93
93
  end
94
94
  end
95
95
  end
data/lib/dota/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dota
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -0,0 +1,19 @@
1
+ describe Dota::API::Friend do
2
+ let(:friend) do
3
+ VCR.use_cassette("GetFriendList") do
4
+ test_client.friends(sample_user_id).first
5
+ end
6
+ end
7
+
8
+ specify "#id" do
9
+ expect(friend.id).to eq "76561197992246166"
10
+ end
11
+
12
+ specify "#relationship" do
13
+ expect(friend.relationship).to eq "friend"
14
+ end
15
+
16
+ specify "#friended_at" do
17
+ expect(friend.friended_at).to eq Time.at(1416242540)
18
+ end
19
+ end
data/spec/dota_spec.rb CHANGED
@@ -79,7 +79,7 @@ describe Dota do
79
79
  specify ":#{local} should translate to :#{remote}" do
80
80
  random_value = SecureRandom.hex
81
81
  VCR.use_cassette("GetMatchHistory") do
82
- expect(api).to receive(:do_request).with("GetMatchHistory", remote => random_value) { double.as_null_object }
82
+ expect(api).to receive(:get).with("IDOTA2Match_570", "GetMatchHistory", remote => random_value) { double.as_null_object }
83
83
  matches = api.matches(local => random_value)
84
84
  end
85
85
  end
@@ -97,7 +97,25 @@ describe Dota do
97
97
  specify "#cosmetic_rarities" do
98
98
  VCR.use_cassette("GetRarities") do
99
99
  rarities = api.cosmetic_rarities
100
- expect(rarities.first).to be_a Dota::API::Cosmetic::Rarity
100
+ expect(rarities.first).to be_a Dota::API::Cosmetic::Rarity
101
+ end
102
+ end
103
+
104
+ describe "#friends" do
105
+ it "given a user id returns its friend list" do
106
+ VCR.use_cassette("GetFriendList") do
107
+ friends = api.friends(sample_user_id)
108
+ expect(friends.first).to be_a Dota::API::Friend
109
+ end
110
+ end
111
+ end
112
+
113
+ describe "#get" do
114
+ it "allows custom API requests" do
115
+ VCR.use_cassette("GetRarities") do
116
+ response = api.get("IEconDOTA2_570", "GetRarities", language: "en")
117
+ expect(response["result"]["count"]).to eq 8
118
+ end
101
119
  end
102
120
  end
103
121
  end
@@ -0,0 +1,285 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.steampowered.com/ISteamUser/GetFriendList/V001/?key=2FBBA83745F494FAE688AFB8463CD4FC&steamid=76561198052976237
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
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
+ - Fri, 21 Nov 2014 10:29:53 GMT
23
+ Expires:
24
+ - Fri, 21 Nov 2014 10:29:53 GMT
25
+ Content-Type:
26
+ - application/json; charset=UTF-8
27
+ Content-Length:
28
+ - '18081'
29
+ body:
30
+ encoding: UTF-8
31
+ string: "{\n\t\"friendslist\": {\n\t\t\"friends\": [\n\t\t\t{\n\t\t\t\t\"steamid\":
32
+ \"76561197992246166\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
33
+ 1416242540\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198003089603\",\n\t\t\t\t\"relationship\":
34
+ \"friend\",\n\t\t\t\t\"friend_since\": 1370010617\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
35
+ \"76561198003305161\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
36
+ 1335948260\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198005419412\",\n\t\t\t\t\"relationship\":
37
+ \"friend\",\n\t\t\t\t\"friend_since\": 1328776307\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
38
+ \"76561198006530806\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
39
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198008637790\",\n\t\t\t\t\"relationship\":
40
+ \"friend\",\n\t\t\t\t\"friend_since\": 1370131245\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
41
+ \"76561198013496054\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
42
+ 1340816280\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198028180520\",\n\t\t\t\t\"relationship\":
43
+ \"friend\",\n\t\t\t\t\"friend_since\": 1347954664\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
44
+ \"76561198030538438\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
45
+ 1326037793\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198031319803\",\n\t\t\t\t\"relationship\":
46
+ \"friend\",\n\t\t\t\t\"friend_since\": 1393258101\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
47
+ \"76561198046750934\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
48
+ 1340733849\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198046909154\",\n\t\t\t\t\"relationship\":
49
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325767838\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
50
+ \"76561198046988121\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
51
+ 1325872055\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047000217\",\n\t\t\t\t\"relationship\":
52
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
53
+ \"76561198047015463\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
54
+ 1323954415\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047034971\",\n\t\t\t\t\"relationship\":
55
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254863\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
56
+ \"76561198047035482\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
57
+ 1324446625\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047038662\",\n\t\t\t\t\"relationship\":
58
+ \"friend\",\n\t\t\t\t\"friend_since\": 1324653322\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
59
+ \"76561198047042143\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
60
+ 1328776306\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047046822\",\n\t\t\t\t\"relationship\":
61
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254869\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
62
+ \"76561198047063766\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
63
+ 1362619679\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047072241\",\n\t\t\t\t\"relationship\":
64
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325872061\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
65
+ \"76561198047074669\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
66
+ 1341309043\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047075825\",\n\t\t\t\t\"relationship\":
67
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254868\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
68
+ \"76561198047091856\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
69
+ 1325969388\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047125049\",\n\t\t\t\t\"relationship\":
70
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325872050\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
71
+ \"76561198047150139\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
72
+ 1326032568\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047190548\",\n\t\t\t\t\"relationship\":
73
+ \"friend\",\n\t\t\t\t\"friend_since\": 1348331429\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
74
+ \"76561198047404251\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
75
+ 1328776294\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198047419797\",\n\t\t\t\t\"relationship\":
76
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325243932\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
77
+ \"76561198048097414\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
78
+ 1416094457\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198048372632\",\n\t\t\t\t\"relationship\":
79
+ \"friend\",\n\t\t\t\t\"friend_since\": 1335983773\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
80
+ \"76561198048755484\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
81
+ 1325969386\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198049381124\",\n\t\t\t\t\"relationship\":
82
+ \"friend\",\n\t\t\t\t\"friend_since\": 1340642161\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
83
+ \"76561198049965467\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
84
+ 1337110717\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198050343295\",\n\t\t\t\t\"relationship\":
85
+ \"friend\",\n\t\t\t\t\"friend_since\": 1409685061\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
86
+ \"76561198050620184\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
87
+ 1330986492\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051428024\",\n\t\t\t\t\"relationship\":
88
+ \"friend\",\n\t\t\t\t\"friend_since\": 1324020633\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
89
+ \"76561198051572927\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
90
+ 1334254911\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051603652\",\n\t\t\t\t\"relationship\":
91
+ \"friend\",\n\t\t\t\t\"friend_since\": 1411450337\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
92
+ \"76561198051698145\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
93
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051709146\",\n\t\t\t\t\"relationship\":
94
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325502472\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
95
+ \"76561198051719092\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
96
+ 1326032570\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051732616\",\n\t\t\t\t\"relationship\":
97
+ \"friend\",\n\t\t\t\t\"friend_since\": 1325872057\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
98
+ \"76561198051790333\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
99
+ 1326900465\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051841524\",\n\t\t\t\t\"relationship\":
100
+ \"friend\",\n\t\t\t\t\"friend_since\": 1326032569\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
101
+ \"76561198051920312\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
102
+ 1347292200\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051924020\",\n\t\t\t\t\"relationship\":
103
+ \"friend\",\n\t\t\t\t\"friend_since\": 1412059073\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
104
+ \"76561198051969979\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
105
+ 1412778784\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051970045\",\n\t\t\t\t\"relationship\":
106
+ \"friend\",\n\t\t\t\t\"friend_since\": 1335897385\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
107
+ \"76561198051976978\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
108
+ 1336654567\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198051982018\",\n\t\t\t\t\"relationship\":
109
+ \"friend\",\n\t\t\t\t\"friend_since\": 1330986496\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
110
+ \"76561198051992933\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
111
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052043082\",\n\t\t\t\t\"relationship\":
112
+ \"friend\",\n\t\t\t\t\"friend_since\": 1329237617\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
113
+ \"76561198052057281\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
114
+ 1323954417\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052063102\",\n\t\t\t\t\"relationship\":
115
+ \"friend\",\n\t\t\t\t\"friend_since\": 1407571846\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
116
+ \"76561198052068593\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
117
+ 1336938083\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052182379\",\n\t\t\t\t\"relationship\":
118
+ \"friend\",\n\t\t\t\t\"friend_since\": 1341444232\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
119
+ \"76561198052400849\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
120
+ 1370766974\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052410449\",\n\t\t\t\t\"relationship\":
121
+ \"friend\",\n\t\t\t\t\"friend_since\": 1339053872\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
122
+ \"76561198052434950\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
123
+ 1325872066\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052449624\",\n\t\t\t\t\"relationship\":
124
+ \"friend\",\n\t\t\t\t\"friend_since\": 1393064360\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
125
+ \"76561198052523107\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
126
+ 1324622227\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052596641\",\n\t\t\t\t\"relationship\":
127
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254907\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
128
+ \"76561198052691444\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
129
+ 1334254867\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052756822\",\n\t\t\t\t\"relationship\":
130
+ \"friend\",\n\t\t\t\t\"friend_since\": 1374015559\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
131
+ \"76561198052780471\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
132
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052789879\",\n\t\t\t\t\"relationship\":
133
+ \"friend\",\n\t\t\t\t\"friend_since\": 1328776304\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
134
+ \"76561198052970058\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
135
+ 1325411249\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198052990442\",\n\t\t\t\t\"relationship\":
136
+ \"friend\",\n\t\t\t\t\"friend_since\": 1323954419\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
137
+ \"76561198053082092\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
138
+ 1325143957\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198053093362\",\n\t\t\t\t\"relationship\":
139
+ \"friend\",\n\t\t\t\t\"friend_since\": 1324622226\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
140
+ \"76561198053296566\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
141
+ 1391890336\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198053374747\",\n\t\t\t\t\"relationship\":
142
+ \"friend\",\n\t\t\t\t\"friend_since\": 1327137758\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
143
+ \"76561198053463115\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
144
+ 1376805696\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198053533724\",\n\t\t\t\t\"relationship\":
145
+ \"friend\",\n\t\t\t\t\"friend_since\": 1339698399\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
146
+ \"76561198053905018\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
147
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198053907767\",\n\t\t\t\t\"relationship\":
148
+ \"friend\",\n\t\t\t\t\"friend_since\": 1326121816\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
149
+ \"76561198053939066\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
150
+ 1328776309\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198054119130\",\n\t\t\t\t\"relationship\":
151
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
152
+ \"76561198054278328\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
153
+ 1326905363\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198054443509\",\n\t\t\t\t\"relationship\":
154
+ \"friend\",\n\t\t\t\t\"friend_since\": 1395061397\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
155
+ \"76561198054585495\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
156
+ 1414007538\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198054970453\",\n\t\t\t\t\"relationship\":
157
+ \"friend\",\n\t\t\t\t\"friend_since\": 1379076933\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
158
+ \"76561198055543883\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
159
+ 1334254852\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198056377468\",\n\t\t\t\t\"relationship\":
160
+ \"friend\",\n\t\t\t\t\"friend_since\": 1398544678\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
161
+ \"76561198057276547\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
162
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198057340978\",\n\t\t\t\t\"relationship\":
163
+ \"friend\",\n\t\t\t\t\"friend_since\": 1335183793\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
164
+ \"76561198057587108\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
165
+ 1334254917\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198058097660\",\n\t\t\t\t\"relationship\":
166
+ \"friend\",\n\t\t\t\t\"friend_since\": 1329237608\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
167
+ \"76561198058455251\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
168
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198059834487\",\n\t\t\t\t\"relationship\":
169
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
170
+ \"76561198060694009\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
171
+ 1335948253\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198060775873\",\n\t\t\t\t\"relationship\":
172
+ \"friend\",\n\t\t\t\t\"friend_since\": 1339856565\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
173
+ \"76561198060800948\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
174
+ 1334254865\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198060874344\",\n\t\t\t\t\"relationship\":
175
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
176
+ \"76561198060924253\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
177
+ 1334254880\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198060932103\",\n\t\t\t\t\"relationship\":
178
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254861\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
179
+ \"76561198061106148\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
180
+ 1397570460\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061131052\",\n\t\t\t\t\"relationship\":
181
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254914\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
182
+ \"76561198061284179\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
183
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061297177\",\n\t\t\t\t\"relationship\":
184
+ \"friend\",\n\t\t\t\t\"friend_since\": 1334254872\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
185
+ \"76561198061316550\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
186
+ 1376169956\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061413400\",\n\t\t\t\t\"relationship\":
187
+ \"friend\",\n\t\t\t\t\"friend_since\": 1340695063\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
188
+ \"76561198061440759\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
189
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061535226\",\n\t\t\t\t\"relationship\":
190
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
191
+ \"76561198061728062\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
192
+ 1341069773\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061785161\",\n\t\t\t\t\"relationship\":
193
+ \"friend\",\n\t\t\t\t\"friend_since\": 1335948259\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
194
+ \"76561198061790817\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
195
+ 1393518499\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061866951\",\n\t\t\t\t\"relationship\":
196
+ \"friend\",\n\t\t\t\t\"friend_since\": 1340711624\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
197
+ \"76561198061867396\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
198
+ 1343883251\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198061939384\",\n\t\t\t\t\"relationship\":
199
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
200
+ \"76561198062059695\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
201
+ 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062080443\",\n\t\t\t\t\"relationship\":
202
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
203
+ \"76561198062137587\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
204
+ 1410175415\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062195495\",\n\t\t\t\t\"relationship\":
205
+ \"friend\",\n\t\t\t\t\"friend_since\": 1337349021\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
206
+ \"76561198062216832\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
207
+ 1335948250\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062233221\",\n\t\t\t\t\"relationship\":
208
+ \"friend\",\n\t\t\t\t\"friend_since\": 1335183980\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
209
+ \"76561198062407734\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
210
+ 1336540336\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062423063\",\n\t\t\t\t\"relationship\":
211
+ \"friend\",\n\t\t\t\t\"friend_since\": 1336938114\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
212
+ \"76561198062427244\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
213
+ 1377856019\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062439666\",\n\t\t\t\t\"relationship\":
214
+ \"friend\",\n\t\t\t\t\"friend_since\": 1359141086\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
215
+ \"76561198062655105\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
216
+ 1370269151\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062717012\",\n\t\t\t\t\"relationship\":
217
+ \"friend\",\n\t\t\t\t\"friend_since\": 1336938100\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
218
+ \"76561198062727467\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
219
+ 1412782074\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198062780563\",\n\t\t\t\t\"relationship\":
220
+ \"friend\",\n\t\t\t\t\"friend_since\": 1376805695\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
221
+ \"76561198062928745\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
222
+ 1336654296\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198063310857\",\n\t\t\t\t\"relationship\":
223
+ \"friend\",\n\t\t\t\t\"friend_since\": 1398347414\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
224
+ \"76561198063368671\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
225
+ 1371748793\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198064047737\",\n\t\t\t\t\"relationship\":
226
+ \"friend\",\n\t\t\t\t\"friend_since\": 1405524746\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
227
+ \"76561198064666453\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
228
+ 1339512572\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198064861700\",\n\t\t\t\t\"relationship\":
229
+ \"friend\",\n\t\t\t\t\"friend_since\": 1395676098\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
230
+ \"76561198064863745\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
231
+ 1379076930\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198065238873\",\n\t\t\t\t\"relationship\":
232
+ \"friend\",\n\t\t\t\t\"friend_since\": 1369852621\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
233
+ \"76561198065392681\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
234
+ 1376169869\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198070007721\",\n\t\t\t\t\"relationship\":
235
+ \"friend\",\n\t\t\t\t\"friend_since\": 1371748857\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
236
+ \"76561198071416545\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
237
+ 1392896400\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198072410945\",\n\t\t\t\t\"relationship\":
238
+ \"friend\",\n\t\t\t\t\"friend_since\": 1394380400\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
239
+ \"76561198072797145\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
240
+ 1396718347\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198074162781\",\n\t\t\t\t\"relationship\":
241
+ \"friend\",\n\t\t\t\t\"friend_since\": 1413130337\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
242
+ \"76561198074190955\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
243
+ 1392212955\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198075047273\",\n\t\t\t\t\"relationship\":
244
+ \"friend\",\n\t\t\t\t\"friend_since\": 1398347418\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
245
+ \"76561198076614204\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
246
+ 1394453263\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198077130029\",\n\t\t\t\t\"relationship\":
247
+ \"friend\",\n\t\t\t\t\"friend_since\": 1360421292\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
248
+ \"76561198077721956\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
249
+ 1391890299\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198078036550\",\n\t\t\t\t\"relationship\":
250
+ \"friend\",\n\t\t\t\t\"friend_since\": 1369933780\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
251
+ \"76561198081047770\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
252
+ 1370269147\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198082809189\",\n\t\t\t\t\"relationship\":
253
+ \"friend\",\n\t\t\t\t\"friend_since\": 1369852626\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
254
+ \"76561198083448767\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
255
+ 1370006422\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198085463312\",\n\t\t\t\t\"relationship\":
256
+ \"friend\",\n\t\t\t\t\"friend_since\": 1369933922\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
257
+ \"76561198085902226\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
258
+ 1376161637\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198091238286\",\n\t\t\t\t\"relationship\":
259
+ \"friend\",\n\t\t\t\t\"friend_since\": 1405007386\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
260
+ \"76561198091829896\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
261
+ 1402377263\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198102542281\",\n\t\t\t\t\"relationship\":
262
+ \"friend\",\n\t\t\t\t\"friend_since\": 1376803758\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
263
+ \"76561198105135793\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
264
+ 1410185099\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198113536015\",\n\t\t\t\t\"relationship\":
265
+ \"friend\",\n\t\t\t\t\"friend_since\": 1390903983\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
266
+ \"76561198118529734\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
267
+ 1392369256\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198121665514\",\n\t\t\t\t\"relationship\":
268
+ \"friend\",\n\t\t\t\t\"friend_since\": 1405942508\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
269
+ \"76561198123768717\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
270
+ 1410532602\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198124951541\",\n\t\t\t\t\"relationship\":
271
+ \"friend\",\n\t\t\t\t\"friend_since\": 1392896754\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
272
+ \"76561198139677964\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
273
+ 1402379621\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198147428910\",\n\t\t\t\t\"relationship\":
274
+ \"friend\",\n\t\t\t\t\"friend_since\": 1411626241\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
275
+ \"76561198149805946\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
276
+ 1416179522\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198150447842\",\n\t\t\t\t\"relationship\":
277
+ \"friend\",\n\t\t\t\t\"friend_since\": 1410975765\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
278
+ \"76561198152155537\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
279
+ 1411458918\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\": \"76561198152528780\",\n\t\t\t\t\"relationship\":
280
+ \"friend\",\n\t\t\t\t\"friend_since\": 1410975759\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"steamid\":
281
+ \"76561198156817246\",\n\t\t\t\t\"relationship\": \"friend\",\n\t\t\t\t\"friend_since\":
282
+ 1412927073\n\t\t\t}\n\t\t]\n\t\t\n\t}\n}"
283
+ http_version:
284
+ recorded_at: Fri, 21 Nov 2014 10:29:53 GMT
285
+ recorded_with: VCR 2.9.3
data/spec/spec_helper.rb CHANGED
@@ -16,6 +16,10 @@ module SpecHelper
16
16
  def sample_match_id
17
17
  789645621
18
18
  end
19
+
20
+ def sample_user_id
21
+ 76561198052976237
22
+ end
19
23
  end
20
24
 
21
25
  RSpec.configure do |config|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dota
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vinni Carlo Caños
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-20 00:00:00.000000000 Z
11
+ date: 2014-11-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -141,6 +141,7 @@ files:
141
141
  - lib/dota.rb
142
142
  - lib/dota/api/client.rb
143
143
  - lib/dota/api/cosmetic/rarity.rb
144
+ - lib/dota/api/friend.rb
144
145
  - lib/dota/api/hero.rb
145
146
  - lib/dota/api/item.rb
146
147
  - lib/dota/api/league.rb
@@ -151,6 +152,7 @@ files:
151
152
  - lib/dota/utils/inspect.rb
152
153
  - lib/dota/version.rb
153
154
  - spec/dota/api/cosmetic/rarity_spec.rb
155
+ - spec/dota/api/friend_spec.rb
154
156
  - spec/dota/api/hero_spec.rb
155
157
  - spec/dota/api/item_spec.rb
156
158
  - spec/dota/api/league_spec.rb
@@ -158,6 +160,7 @@ files:
158
160
  - spec/dota/api/match/player_spec.rb
159
161
  - spec/dota/api/match_spec.rb
160
162
  - spec/dota_spec.rb
163
+ - spec/fixtures/vcr_cassettes/GetFriendList.yml
161
164
  - spec/fixtures/vcr_cassettes/GetLeagueListing.yml
162
165
  - spec/fixtures/vcr_cassettes/GetMatchDetails.yml
163
166
  - spec/fixtures/vcr_cassettes/GetMatchHistory.yml
@@ -190,6 +193,7 @@ specification_version: 4
190
193
  summary: Ruby client for the Dota 2 WebAPI
191
194
  test_files:
192
195
  - spec/dota/api/cosmetic/rarity_spec.rb
196
+ - spec/dota/api/friend_spec.rb
193
197
  - spec/dota/api/hero_spec.rb
194
198
  - spec/dota/api/item_spec.rb
195
199
  - spec/dota/api/league_spec.rb
@@ -197,6 +201,7 @@ test_files:
197
201
  - spec/dota/api/match/player_spec.rb
198
202
  - spec/dota/api/match_spec.rb
199
203
  - spec/dota_spec.rb
204
+ - spec/fixtures/vcr_cassettes/GetFriendList.yml
200
205
  - spec/fixtures/vcr_cassettes/GetLeagueListing.yml
201
206
  - spec/fixtures/vcr_cassettes/GetMatchDetails.yml
202
207
  - spec/fixtures/vcr_cassettes/GetMatchHistory.yml