def getClosestServersView(request):
config = speedtest.getConfig()
closestServers = speedtest.closestServers(config['client'])
# store to db
models = []
localIp = getLocalIp("speedtest.net")
for server in closestServers:
server["serverId"] = server.pop("id")
model = SpeedtestServer().fromDict(**server)
model.interfaceIp = localIp
models.append(model)
SpeedtestServer.objects.bulk_create(models)
# filter/reorder/translate values for view
title = "Speedtest.net - Closest Server"
columnToName = OrderedDict ([
("serverId", "ID"),
("name", "City"),
("url", "URL"),
("country", "Country"),
("d", "Distance [km]"),
#("cc", "country code"),
#("host", "host name"),
("sponsor", ""),
#("url2", "url"),
("lat", "Latitude"),
("lon", "Longitude"),
])
columns = columnToName.keys()
servers = []
for c in closestServers:
server = OrderedDict([(columnToName[filteredColumn], c[filteredColumn]) for filteredColumn in columns])
distanceColumn = columnToName["d"]
server[distanceColumn] = round(server[distanceColumn],1)
servers.append(server)
data = {
"title": title,
"tableHeader" : servers[0].keys(),
"servers": servers,
}
return render_to_response('bootstrap/serverlist.html', data, context_instance=RequestContext(request))
评论列表
文章目录