From 28cb3d8eb3772182661708eed2ba64636c92c3a8 Mon Sep 17 00:00:00 2001 From: Rossen Georgiev Date: Sun, 22 Nov 2015 17:36:26 +0200 Subject: [PATCH] added methods for resolving community urls --- README.rst | 10 +- requirements.txt | 1 + steam/steamid.py | 75 +++- tests/test_steamid.py | 81 ++-- vcr/steamid_community_urls.yaml | 678 ++++++++++++++++++++++++++++++++ 5 files changed, 790 insertions(+), 55 deletions(-) create mode 100644 vcr/steamid_community_urls.yaml diff --git a/README.rst b/README.rst index dc27b52..2564731 100644 --- a/README.rst +++ b/README.rst @@ -67,6 +67,7 @@ SteamID .. code:: python + >>> from steam >>> from steam import SteamID >>> SteamID() @@ -82,11 +83,12 @@ SteamID >>> SteamID('[g:1:4]') # steam3 SteamID(id=4, type='Clan', universe='Public', instance=0) - # vanity urls are resolved by fetching the community profile page (this is unstable) - # use the WebAPI to reliably resolve vanity urls - >>> SteamID('https://steamcommunity.com/id/drunkenf00l') - >>> SteamID('http://steamcommunity.com/profiles/76561197968459473') # no request is made + # A Steam community url can be resolved using steamid module + >>> steam.steamid.from_url('https://steamcommunity.com/id/drunkenf00l') + >>> steam.steamid.from_url('http://steamcommunity.com/profiles/76561197968459473') SteamID(id=8193745, type='Individual', universe='Public', instance=1) + >>> steam.steamid.steam64_from_url('http://steamcommunity.com/profiles/76561197968459473') + '76561197968459473' >>> group = SteamID('[g:1:4]') >>> group.id # accountid diff --git a/requirements.txt b/requirements.txt index 92acdd2..aa1b115 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,3 +4,4 @@ mock requests enum34 vcrpy +pyyaml diff --git a/steam/steamid.py b/steam/steamid.py index 5b9652a..087c98b 100644 --- a/steam/steamid.py +++ b/steam/steamid.py @@ -1,5 +1,4 @@ import re -import requests from steam.enums import EType, EUniverse @@ -56,19 +55,6 @@ class SteamID(object): value = str(args[0]) - # see if input is community url - match = re.match(r'^https?://steamcommunity.com/' - r'(?Pid|profiles)/(?P.*)/?$', value) - if match: - if match.group('type') == 'id': - page = requests.get(value).content - value = re.findall('steamid":"(\d+)",', page) - if not value: - raise ValueError("Unable to retrieve steamID") - value = value[0] - else: - value = match.group('value') - # numeric input if value.isdigit() or (value.startswith('-') and value[1:].isdigit()): value = int(value) @@ -129,8 +115,8 @@ class SteamID(object): self.instance = int(self.instance) return - raise ValueError("Expected a number or textual SteamID" - " (e.g. [g:1:4], STEAM_0:1:1234), got %s" % repr(value) + raise ValueError("Expected a steam32/64 or textual steam id" + ", got %s" % repr(value) ) elif len(kwargs): @@ -218,3 +204,60 @@ class SteamID(object): url = "https://steamcommunity.com/%s" % suffix[self.type] return url % self.as_64 return None + + +def steam64_from_url(url): + """ + Takes a Steam Community url and returns steam64 or None + + Example URLs: + ---- + https://steamcommunity.com/gid/[g:1:4] + https://steamcommunity.com/gid/103582791429521412 + https://steamcommunity.com/groups/Valve + https://steamcommunity.com/profiles/[U:1:12] + https://steamcommunity.com/profiles/76561197960265740 + https://steamcommunity.com/id/johnc + """ + + match = re.match(r'^https?://steamcommunity.com/' + r'(?Pprofiles|id|gid|groups)/(?P.*)/?$', url) + + if not match: + return None + + import requests + + if match.group('type') in ('id', 'profiles'): + xml = requests.get("%s/?xml=1" % url).text + match = re.findall('(\d+)', xml) + else: + xml = requests.get("%s/memberslistxml/?xml=1" % url).text + match = re.findall('(\d+)', xml) + + if not match: + return None + + return match[0] # return matched steam64 + + +def from_url(url): + """ + Takes Steam community url and returns a SteamID instance or None + + Example URLs: + ---- + https://steamcommunity.com/gid/[g:1:4] + https://steamcommunity.com/gid/103582791429521412 + https://steamcommunity.com/groups/Valve + https://steamcommunity.com/profiles/[U:1:12] + https://steamcommunity.com/profiles/76561197960265740 + https://steamcommunity.com/id/johnc + """ + + steam64 = steam64_from_url(url) + + if steam64: + return SteamID(steam64) + + return None diff --git a/tests/test_steamid.py b/tests/test_steamid.py index f3c6f74..04a3687 100644 --- a/tests/test_steamid.py +++ b/tests/test_steamid.py @@ -1,7 +1,9 @@ import unittest import mock +import vcr -from steam.steamid import SteamID, requests +from steam import steamid +from steam.steamid import SteamID from steam.enums import EType, EUniverse @@ -23,40 +25,6 @@ class SteamID_initialization(unittest.TestCase): ###################################################### # 1 ARG ###################################################### - @mock.patch.object(requests, "get") - def test_arg_community_url_id(self, mock_requests_get): - ResponseMock = mock.Mock() - ResponseMock.content = 'var asd = {"steamid":"76580280500085312","key":5123}' - mock_requests_get.return_value = ResponseMock - - # http - self.compare(SteamID("http://steamcommunity.com/id/testvanity"), - [123456, EType.Individual, EUniverse.Public, 4444] - ) - - mock_requests_get.assert_called_with("http://steamcommunity.com/id/testvanity") - # https - self.compare(SteamID("https://steamcommunity.com/id/testvanity"), - [123456, EType.Individual, EUniverse.Public, 4444] - ) - mock_requests_get.assert_called_with("https://steamcommunity.com/id/testvanity") - # raise - ResponseMock.content = "no steamid json :(" - with self.assertRaises(ValueError): - self.compare(SteamID("https://steamcommunity.com/id/testvanity"), - [123456, EType.Individual, EUniverse.Public, 4444] - ) - - def test_arg_community_url_profiles(self): - # http - self.compare(SteamID("http://steamcommunity.com/profiles/76580280500085312"), - [123456, EType.Individual, EUniverse.Public, 4444] - ) - # https - self.compare(SteamID("https://steamcommunity.com/profiles/76580280500085312"), - [123456, EType.Individual, EUniverse.Public, 4444] - ) - def test_arg_number_out_of_range(self): self.assertRaises(ValueError, SteamID, -1) self.assertRaises(ValueError, SteamID, '-1') @@ -243,3 +211,46 @@ class SteamID_properties(unittest.TestCase): self.assertEqual(SteamID('[A:1:4]').community_url, None ) + + +class steamid_functions(unittest.TestCase): + @mock.patch('steam.steamid.steam64_from_url') + def test_from_url(self, s64_from_url): + + s64_from_url.return_value = None + self.assertIsNone(steamid.from_url(None)) + + s64_from_url.return_value = '76580280500085312' + test_instance = steamid.from_url('76580280500085312') + self.assertIsInstance(test_instance, SteamID) + self.assertEqual(test_instance.as_64, 76580280500085312) + + + @vcr.use_cassette('vcr/steamid_community_urls.yaml', mode='once', serializer='yaml') + def test_steam64_from_url(self): + + # invalid urls return None + self.assertIsNone(steamid.steam64_from_url("asdasd")) + self.assertIsNone(steamid.steam64_from_url("https://steamcommunity.com/gid/0")) + + # try profile urls + sid = steamid.steam64_from_url('https://steamcommunity.com/profiles/[U:1:12]') + self.assertEqual(sid, '76561197960265740') + + sid = steamid.steam64_from_url('https://steamcommunity.com/profiles/76561197960265740') + self.assertEqual(sid, '76561197960265740') + + sid = steamid.steam64_from_url('https://steamcommunity.com/id/johnc') + self.assertEqual(sid, '76561197960265740') + + + # try group urls + sid = steamid.steam64_from_url('https://steamcommunity.com/gid/[g:1:4]') + self.assertEqual(sid, '103582791429521412') + + sid = steamid.steam64_from_url('https://steamcommunity.com/gid/103582791429521412') + self.assertEqual(sid, '103582791429521412') + + sid = steamid.steam64_from_url('https://steamcommunity.com/groups/Valve') + self.assertEqual(sid, '103582791429521412') + diff --git a/vcr/steamid_community_urls.yaml b/vcr/steamid_community_urls.yaml new file mode 100644 index 0000000..fad65e9 --- /dev/null +++ b/vcr/steamid_community_urls.yaml @@ -0,0 +1,678 @@ +interactions: +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/gid/0/memberslistxml/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:37 GMT'] + location: ['http://steamcommunity.com/gid/0/memberslistxml/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/gid/0/memberslistxml/?xml=1 + response: + body: + string: !!binary | + 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 + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=3600'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['4502'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/html; charset=UTF-8] + date: ['Sun, 22 Nov 2015 15:34:37 GMT'] + expires: ['Sun, 22 Nov 2015 16:21:25 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:00:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: ['4048587118'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/profiles/[U:1:12]/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + cache-control: [no-cache] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/html; charset=UTF-8] + date: ['Sun, 22 Nov 2015 15:34:38 GMT'] + expires: ['Mon, 26 Jul 1997 05:00:00 GMT'] + location: ['https://steamcommunity.com/id/johnc/?xml=1'] + server: [Apache] + set-cookie: [sessionid=2711a3238b3f90e9b2117c2e; path=/, steamCountry=BG%7Cff5b47376f3550e59a8f789cc57e2cbe; + path=/] + vary: [Accept-Encoding] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Cookie: [sessionid=2711a3238b3f90e9b2117c2e; steamCountry=BG%7Cff5b47376f3550e59a8f789cc57e2cbe] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/id/johnc/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:38 GMT'] + location: ['http://steamcommunity.com/id/johnc/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + Cookie: [sessionid=2711a3238b3f90e9b2117c2e; steamCountry=BG%7Cff5b47376f3550e59a8f789cc57e2cbe] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/id/johnc/?xml=1 + response: + body: + string: !!binary | + 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 + AAD//wMAwXRd/ecfAAA= + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=3600'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['1553'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml; charset=utf-8] + date: ['Sun, 22 Nov 2015 15:34:41 GMT'] + expires: ['Sun, 22 Nov 2015 16:24:20 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:00:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: ['543081859'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/profiles/76561197960265740/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:42 GMT'] + location: ['http://steamcommunity.com/profiles/76561197960265740/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + x-pad: [avoid browser bug] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/profiles/76561197960265740/?xml=1 + response: + body: + string: !!binary | + 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 + /wMAtuyW8ecfAAA= + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=3600'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['1550'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml; charset=utf-8] + date: ['Sun, 22 Nov 2015 15:34:42 GMT'] + expires: ['Sun, 22 Nov 2015 16:28:15 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:00:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: [547805724 544858151] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/id/johnc/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:43 GMT'] + location: ['http://steamcommunity.com/id/johnc/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/id/johnc/?xml=1 + response: + body: + string: !!binary | + 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 + AAD//wMAwXRd/ecfAAA= + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=3600'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['1553'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml; charset=utf-8] + date: ['Sun, 22 Nov 2015 15:34:43 GMT'] + expires: ['Sun, 22 Nov 2015 16:24:20 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:00:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: ['543081859'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/gid/[g:1:4]/memberslistxml/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:44 GMT'] + location: ['http://steamcommunity.com/gid/[g:1:4]/memberslistxml/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + x-pad: [avoid browser bug] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/gid/[g:1:4]/memberslistxml/?xml=1 + response: + body: + string: !!binary | + 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 + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=300'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['2029'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml] + date: ['Sun, 22 Nov 2015 15:34:44 GMT'] + expires: ['Sun, 22 Nov 2015 15:39:44 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:30:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: ['4054411748'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/gid/103582791429521412/memberslistxml/?xml=1 + response: + body: + string: !!binary | + H4sIAAAAAAAAAwMAAAAAAAAAAAA= + headers: + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['20'] + content-type: [text/html] + date: ['Sun, 22 Nov 2015 15:34:45 GMT'] + location: ['http://steamcommunity.com/gid/103582791429521412/memberslistxml/?xml=1'] + server: [Apache] + vary: [Accept-Encoding] + status: {code: 302, message: Moved Temporarily} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: http://steamcommunity.com/gid/103582791429521412/memberslistxml/?xml=1 + response: + body: + string: !!binary | + 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 + headers: + accept-ranges: [bytes] + cache-control: ['public,max-age=300'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['2029'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + http://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml] + date: ['Sun, 22 Nov 2015 15:34:45 GMT'] + expires: ['Sun, 22 Nov 2015 15:39:45 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:30:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + x-varnish: ['535754057'] + status: {code: 200, message: OK} +- request: + body: null + headers: + Accept: ['*/*'] + Accept-Encoding: ['gzip, deflate'] + Connection: [keep-alive] + User-Agent: [python-requests/2.7.0 CPython/2.7.10 CYGWIN_NT-10.0/2.2.0(0.289/5/3)] + method: GET + uri: https://steamcommunity.com/groups/Valve/memberslistxml/?xml=1 + response: + body: + string: !!binary | + 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 + JtGWsLPPPb86+9bT6jff6/w/MmWNux0qAAA= + headers: + cache-control: ['public,max-age=300'] + connection: [keep-alive] + content-encoding: [gzip] + content-length: ['2021'] + content-security-policy: ['script-src ''self'' ''unsafe-inline'' ''unsafe-eval'' + https://steamcommunity-a.akamaihd.net/ https://api.steampowered.com/ http://www.google-analytics.com + https://ssl.google-analytics.com https://www.google.com https://www.gstatic.com + https://apis.google.com; object-src ''none''; connect-src ''self'' http://steamcommunity.com + https://steamcommunity.com https://api.steampowered.com/; frame-src ''self'' + http://store.steampowered.com/ https://store.steampowered.com/ http://www.youtube.com + https://www.youtube.com https://www.google.com;'] + content-type: [text/xml] + date: ['Sun, 22 Nov 2015 15:34:46 GMT'] + expires: ['Sun, 22 Nov 2015 15:39:46 GMT'] + last-modified: ['Sun, 22 Nov 2015 15:30:00 GMT'] + server: [Apache] + vary: [Accept-Encoding] + status: {code: 200, message: OK} +version: 1