dota 0.0.8 → 0.0.9

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 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