diff options
-rw-r--r-- | mirrors/utils.py | 9 | ||||
-rw-r--r-- | templates/mirrors/status.html | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/mirrors/utils.py b/mirrors/utils.py index e6d6c1dd..c64d53c5 100644 --- a/mirrors/utils.py +++ b/mirrors/utils.py @@ -57,11 +57,16 @@ def get_mirror_statuses(cutoff=default_cutoff): d = sum(url_delays, datetime.timedelta()) / len(url_delays) url.delay = d hours = d.days * 24.0 + d.seconds / 3600.0 - url.score = hours + url.duration_avg + url.duration_stddev + + if url.completion_pct > 0: + divisor = url.completion_pct + else: + # arbitrary small value + divisor = 0.005 + url.score = (hours + url.duration_avg + url.duration_stddev) / divisor else: url.delay = None url.score = None - url.completion = 0.0 return { 'cutoff': cutoff, diff --git a/templates/mirrors/status.html b/templates/mirrors/status.html index d2e45375..47ba9b7c 100644 --- a/templates/mirrors/status.html +++ b/templates/mirrors/status.html @@ -36,8 +36,9 @@ retrieval time. A high standard deviation can indicate an unstable or overloaded mirror.</li> <li><em>Mirror Score:</em> A very rough calculation for ranking - mirrors. It is currently calculated as <tt>hours delay + average - duration + standard deviation</tt>. Lower is better.</li> + mirrors. It is currently calculated as <tt>(hours delay + average + duration + standard deviation) / completion percentage</tt>. Lower + is better.</li> </ul> <p>The final table on this page is an error log, which shows any errors that occurred while contacting mirrors. This only shows errors that |