Josip Rodin wrote: > That would be much better, indeed! > > Or maybe just keep the checked sites normal, and the rest in > <small><small>... (could not be verified, beware!)</small></small>.
Only problem with <small> is text mode browsers, which can generally at least display bold. Hmm, doing both doesn't look too bad though. Here is a patch. This will support cdimage-http-status lines in the status file if someone ever writes a checker, as well. -- see shy jo
? english/mirror/Mirrors.masterlist.status
? english/mirror/check_cd_mirrors.pl
Index: english/CD/http-ftp/index.wml
===================================================================
RCS file: /cvs/webwml/webwml/english/CD/http-ftp/index.wml,v
retrieving revision 1.15
diff -u -r1.15 index.wml
--- english/CD/http-ftp/index.wml 16 Oct 2002 20:30:45 -0000 1.15
+++ english/CD/http-ftp/index.wml 5 Dec 2002 19:39:24 -0000
@@ -42,9 +42,9 @@
<h2><a name="stable">Official CD images of the "stable" releases</a></h2>
-<p>Note that <strong>some mirrors are not up to date</strong> -
-before downloading, check the version number of the images is the
-same as the one listed <a href="../#latest">on this site</a>!</p>
+<p>Mirrors listed below in <b>bold</b> have recently been verified to
+contain at least the first CD image for the i386 architecture.
+Mirrors not listed in bold may be out of date or down.</p>
#use wml::debian::countries
#include "$(ENGLISHDIR)/CD/http-ftp/cdimage_mirrors.list"
Index: english/distrib/netinst.wml
===================================================================
RCS file: /cvs/webwml/webwml/english/distrib/netinst.wml,v
retrieving revision 1.6
Index: english/mirror/mirror_list.pl
===================================================================
RCS file: /cvs/webwml/webwml/english/mirror/mirror_list.pl,v
retrieving revision 1.44
diff -u -r1.44 mirror_list.pl
@@ -477,18 +477,50 @@
foreach $site (sort @{ $countries{$country} }) {
(my $countrycode = $country) =~ s/^(..) .*/$1/;
if ($which eq "httpftp") {
- if (defined $mirror{$site}{method}{'cdimage-ftp'} ||
- defined $mirror{$site}{method}{'cdimage-http'}) {
- print "<li><${countrycode}c>: $site: ";
+ if (defined $mirror{$site}{method}{'cdimage-ftp'}) {
+ print "<li>";
+ my $closetag="";
+ if ((defined $mirror{$site}{status}{'cdimage-ftp-status'} &&
+ $mirror{$site}{status}{'cdimage-ftp-status'} eq 'good') ||
+ (defined $mirror{$site}{status}{'cdimage-http-status'} &&
+ $mirror{$site}{status}{'cdimage-http-status'} eq 'good')) {
+ # Put known-good mirrors in bold.
+ print "<b>";
+ $closetag="</b>";
+ }
+ else {
+ print "<small>";
+ $closetag="</small>";
+ }
+ print "<${countrycode}c>: $site: ";
+ print $closetag;
+
if (defined $mirror{$site}{method}{'cdimage-ftp'}) {
- print <<END;
- <a href="ftp://$site$mirror{$site}{method}{'cdimage-ftp'}">FTP</a>
-END
+ if (defined $mirror{$site}{status}{'cdimage-ftp-status'} &&
+ $mirror{$site}{status}{'cdimage-ftp-status'} eq 'good') {
+ print "<b>";
+ $closetag="</b>";
+ }
+ else {
+ print "<small>";
+ $closetag="</small>";
+ }
+ print qq{<a
href="ftp://$site$mirror{$site}{method}{'cdimage-ftp'}">FTP</a> };
+ print $closetag;
}
- if (defined $mirror{$site}{method}{'cdimage-http'}) {
- print <<END;
- <a href="http://$site$mirror{$site}{method}{'cdimage-http'}">HTTP</a>
-END
+
+ if (defined $mirror{$site}{method}{'cdimage-http'}) {
+ if (defined $mirror{$site}{status}{'cdimage-http-status'} &&
+ $mirror{$site}{status}{'cdimage-http-status'} eq 'good') {
+ print "<b>";
+ $closetag="</b>";
+ }
+ else {
+ print "<small>";
+ $closetag="</small>";
+ }
+ print qq{<a
href="http://$site$mirror{$site}{method}{'cdimage-http'}">HTTP</a> };
+ print $closetag;
}
print "</li>\n";
}
@@ -913,7 +945,7 @@
exit;
}
-open SRC, "<$mirror_source" ||
+open SRC, "<$mirror_source" or
die "Error: problem opening mirror source file, $mirror_source\n"
."Use the -m option?\n";
@@ -944,6 +976,23 @@
}
if ($current ne "") {
process_line($current);
+}
+
+open(STATUS, "<$mirror_source.status") ||
+ die "Error: problem opening mirror status file, $mirror_source.status\n"
+ ."Use the -m option?\n";
+{
+ local $/="\n\n";
+ while (<STATUS>) {
+ if (/Site:\s+(.*)/i) {
+ my $site=$1;
+ foreach my $line (split("\n", $_)) {
+ my ($key, $value) = $line =~ /^(.*): (.*)/;
+ $key=lc($key);
+ $mirror{$site}{status}{$key}=$value;
+ }
+ }
+ }
}
# count the number of mirrors
pgpn2RK0ajktr.pgp
Description: PGP signature

