Send custom User-Agent with all http requests. See #86
This commit is contained in:
parent
65c85a9b15
commit
60c3ec2a5e
|
@ -18,6 +18,7 @@
|
||||||
__version__ = '0.3.1'
|
__version__ = '0.3.1'
|
||||||
|
|
||||||
# Some global variables we use
|
# Some global variables we use
|
||||||
|
user_agent = 'speedtest-cli/%s' % __version__
|
||||||
source = None
|
source = None
|
||||||
shutdown_event = None
|
shutdown_event = None
|
||||||
|
|
||||||
|
@ -165,6 +166,17 @@ def distance(origin, destination):
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
|
||||||
|
def build_request(url, data=None, headers={}):
|
||||||
|
"""Build a urllib2 request object
|
||||||
|
|
||||||
|
This function automatically adds a User-Agent header to all requests
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
headers['User-Agent'] = user_agent
|
||||||
|
return Request(url, data=data, headers=headers)
|
||||||
|
|
||||||
|
|
||||||
class FileGetter(threading.Thread):
|
class FileGetter(threading.Thread):
|
||||||
"""Thread class for retrieving a URL"""
|
"""Thread class for retrieving a URL"""
|
||||||
|
|
||||||
|
@ -178,7 +190,8 @@ class FileGetter(threading.Thread):
|
||||||
self.result = [0]
|
self.result = [0]
|
||||||
try:
|
try:
|
||||||
if (timeit.default_timer() - self.starttime) <= 10:
|
if (timeit.default_timer() - self.starttime) <= 10:
|
||||||
f = urlopen(self.url)
|
request = build_request(self.url)
|
||||||
|
f = urlopen(request)
|
||||||
while 1 and not shutdown_event.isSet():
|
while 1 and not shutdown_event.isSet():
|
||||||
self.result.append(len(f.read(10240)))
|
self.result.append(len(f.read(10240)))
|
||||||
if self.result[-1] == 0:
|
if self.result[-1] == 0:
|
||||||
|
@ -242,7 +255,8 @@ class FilePutter(threading.Thread):
|
||||||
try:
|
try:
|
||||||
if ((timeit.default_timer() - self.starttime) <= 10 and
|
if ((timeit.default_timer() - self.starttime) <= 10 and
|
||||||
not shutdown_event.isSet()):
|
not shutdown_event.isSet()):
|
||||||
f = urlopen(self.url, self.data)
|
request = build_request(self.url, data=self.data)
|
||||||
|
f = urlopen(request)
|
||||||
f.read(11)
|
f.read(11)
|
||||||
f.close()
|
f.close()
|
||||||
self.result = len(self.data)
|
self.result = len(self.data)
|
||||||
|
@ -305,7 +319,8 @@ def getConfig():
|
||||||
we are interested in
|
we are interested in
|
||||||
"""
|
"""
|
||||||
|
|
||||||
uh = urlopen('http://www.speedtest.net/speedtest-config.php')
|
request = build_request('http://www.speedtest.net/speedtest-config.php')
|
||||||
|
uh = urlopen(request)
|
||||||
configxml = []
|
configxml = []
|
||||||
while 1:
|
while 1:
|
||||||
configxml.append(uh.read(10240))
|
configxml.append(uh.read(10240))
|
||||||
|
@ -342,7 +357,9 @@ def closestServers(client, all=False):
|
||||||
distance
|
distance
|
||||||
"""
|
"""
|
||||||
|
|
||||||
uh = urlopen('http://www.speedtest.net/speedtest-servers-static.php')
|
url = 'http://www.speedtest.net/speedtest-servers-static.php'
|
||||||
|
request = build_request(url)
|
||||||
|
uh = urlopen(request)
|
||||||
serversxml = []
|
serversxml = []
|
||||||
while 1:
|
while 1:
|
||||||
serversxml.append(uh.read(10240))
|
serversxml.append(uh.read(10240))
|
||||||
|
@ -408,8 +425,9 @@ def getBestServer(servers):
|
||||||
h = HTTPSConnection(urlparts[1])
|
h = HTTPSConnection(urlparts[1])
|
||||||
else:
|
else:
|
||||||
h = HTTPConnection(urlparts[1])
|
h = HTTPConnection(urlparts[1])
|
||||||
|
headers = {'User-Agent': user_agent}
|
||||||
start = timeit.default_timer()
|
start = timeit.default_timer()
|
||||||
h.request("GET", urlparts[2])
|
h.request("GET", urlparts[2], headers=headers)
|
||||||
r = h.getresponse()
|
r = h.getresponse()
|
||||||
total = (timeit.default_timer() - start)
|
total = (timeit.default_timer() - start)
|
||||||
except (HTTPError, URLError, socket.error):
|
except (HTTPError, URLError, socket.error):
|
||||||
|
@ -557,7 +575,8 @@ def speedtest():
|
||||||
url = args.mini
|
url = args.mini
|
||||||
urlparts = urlparse(url)
|
urlparts = urlparse(url)
|
||||||
try:
|
try:
|
||||||
f = urlopen(args.mini)
|
request = build_request(args.mini)
|
||||||
|
f = urlopen(request)
|
||||||
except:
|
except:
|
||||||
print_('Invalid Speedtest Mini URL')
|
print_('Invalid Speedtest Mini URL')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
@ -568,7 +587,9 @@ def speedtest():
|
||||||
if not extension:
|
if not extension:
|
||||||
for ext in ['php', 'asp', 'aspx', 'jsp']:
|
for ext in ['php', 'asp', 'aspx', 'jsp']:
|
||||||
try:
|
try:
|
||||||
f = urlopen('%s/speedtest/upload.%s' % (args.mini, ext))
|
request = build_request('%s/speedtest/upload.%s' %
|
||||||
|
(args.mini, ext))
|
||||||
|
f = urlopen(request)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@ -663,10 +684,11 @@ def speedtest():
|
||||||
(ping, ulspeedk, dlspeedk, '297aae72'))
|
(ping, ulspeedk, dlspeedk, '297aae72'))
|
||||||
.encode()).hexdigest()]
|
.encode()).hexdigest()]
|
||||||
|
|
||||||
req = Request('http://www.speedtest.net/api/api.php',
|
headers = {'Referer': 'http://c.speedtest.net/flash/speedtest.swf'}
|
||||||
data='&'.join(apiData).encode())
|
request = build_request('http://www.speedtest.net/api/api.php',
|
||||||
req.add_header('Referer', 'http://c.speedtest.net/flash/speedtest.swf')
|
data='&'.join(apiData).encode(),
|
||||||
f = urlopen(req)
|
headers=headers)
|
||||||
|
f = urlopen(request)
|
||||||
response = f.read()
|
response = f.read()
|
||||||
code = f.code
|
code = f.code
|
||||||
f.close()
|
f.close()
|
||||||
|
|
Loading…
Reference in New Issue