diff options
author | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2015-08-26 03:41:50 -0300 |
---|---|---|
committer | coadde [Márcio Alexandre Silva Delgado] <coadde@parabola.nu> | 2015-08-26 03:41:50 -0300 |
commit | bf43cbddbccc51a1147eb37cd7a64762bde4f506 (patch) | |
tree | 3bfc609c9385b00ec9a3fdbfb79de1620c3f99db /extra/lukeshu-xbs/db-pick-mirror | |
parent | 50d2db5c271537d78ea0037fe285d081df38fa02 (diff) |
add copy from the lukeshu/xbs repo
Diffstat (limited to 'extra/lukeshu-xbs/db-pick-mirror')
-rwxr-xr-x | extra/lukeshu-xbs/db-pick-mirror | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/extra/lukeshu-xbs/db-pick-mirror b/extra/lukeshu-xbs/db-pick-mirror new file mode 100755 index 0000000..9474ed7 --- /dev/null +++ b/extra/lukeshu-xbs/db-pick-mirror @@ -0,0 +1,24 @@ +#!/usr/bin/env ruby + +require 'json' +require 'rest_client' + +protocol = ARGV[0] +jsonurl = ARGV[1] + +data = JSON::parse(RestClient.get(jsonurl)) + +if data["version"] != 3 + print "Data format version != 3" + exit 1 +end + +urls = data["urls"] +rsync_urls = urls.select{|a| a["protocol"]==protocol} + +# By score ( (delay+speed)/completion ) +#best = rsync_urls.sort{|a,b| (a["score"] || Float::INFINITY) <=> (b["score"] || Float::INFINITY) }.first +# By delay/completion +best = rsync_urls.sort{|a,b| a["delay"]/a["completion_pct"] <=> b["delay"]/b["completion_pct"] }.first + +puts best["url"] |