- From: Ville Skytta via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 25 May 2006 21:56:25 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/ack
In directory hutz:/tmp/cvs-serv9193
Modified Files:
ack.pl check.js
Log Message:
Improve initial URL sanity/error checking, output it in results.
Index: check.js
===================================================================
RCS file: /sources/public/2006/ack/check.js,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- check.js 25 May 2006 21:10:25 -0000 1.4
+++ check.js 25 May 2006 21:56:22 -0000 1.5
@@ -50,9 +50,10 @@
var links = document.getElementsByTagName("a");
TOTAL = links.length;
updateCount(0);
- for (var i = 0; i < links.length; i++) {
+ for (var i = 0; i < TOTAL; i++) {
check(links.item(i));
}
+ if (TOTAL == 0) finishCheck();
}
function pauseResume(el)
@@ -93,6 +94,14 @@
}
}
+function finishCheck()
+{
+ var pr = el("pr");
+ pr.value = "Completed";
+ pr.paused = false;
+ pr.disabled = true;
+}
+
function check(link)
{
if (link.id == null || link.id == "" || link.checking) return;
@@ -184,11 +193,6 @@
link.done = true;
link.checking = false;
updateCount(1);
- if (DONE >= TOTAL) {
- var pr = el("pr");
- pr.value = "Completed";
- pr.paused = false;
- pr.disabled = true;
- }
+ if (DONE >= TOTAL) finishCheck();
}
}
Index: ack.pl
===================================================================
RCS file: /sources/public/2006/ack/ack.pl,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- ack.pl 25 May 2006 21:10:25 -0000 1.9
+++ ack.pl 25 May 2006 21:56:21 -0000 1.10
@@ -26,19 +26,30 @@
use LWP::UserAgent ();
use URI ();
-use constant ML => 60;
+use constant MAXLEN => 60;
-my $url = CGI->new()->param("url") || "";
+(my $url = CGI->new()->param("url") || "") =~ s/^\s*\/*(.*?)\s*//;
my %links;
+my $success = !$url;
+my $status = "";
+
if ($url) {
my $file = File::Temp->new();
+ $url = URI->new($url);
+ $url = "http://" . $url unless $url->scheme();
+
my $res = LWP::UserAgent->new(
protocols_allowed => [qw(http https ftp data)]
)->get($url, ":content_file" => "$file");
$url = $res->request()->uri()->canonical();
+ $success = $res->is_success();
+ $status = $res->status_line();
+
+ goto OUTPUT unless $success;
+
my $base = $res->base();
my @extra_links;
@@ -80,22 +91,26 @@
}
}
+OUTPUT:
+
+my $eurl = encode_entities($url || "");
+my $title = ($eurl ? "ACK! - $eurl" : "ACK!");
+
print "Content-Type: text/html; charset=UTF-8\n\n";
print "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html>
<head>
-<title>ACK!</title>
+<title>$title</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"ack.css\" />
<script type=\"text/javascript\" src=\"check.js\"></script>
</head>
-<body", $url ? " onload=\"checkAll()\"" : "", ">
+<body", ($url ? " onload=\"checkAll()\"" : ""), ">
-<h2>ACK!</h2>
+<h2>$title</h2>
<form action=\"?\" method=\"get\">
<p>
-<input id=\"url\" name=\"url\" type=\"text\" size=\"60\" value=\"", encode_entities($url),
- "\" />
+<input id=\"url\" name=\"url\" type=\"text\" size=\"60\" value=\"$eurl\" />
<input name=\"go\" type=\"submit\" value=\"Check links\" />
<input id=\"pr\" type=\"button\" onclick=\"pauseResume(this)\" value=\"Pause\" disabled=\"disabled\" />
<span id=\"stat\">(0 of 0 checked)</span>
@@ -117,13 +132,20 @@
my $md5 = md5_hex($_);
my $url = encode_entities($_);
my $l = length($_);
- my $foo = encode_entities($l > ML ?
- substr($_, 0, ML/2) . "[...]" . substr($_, $l - ML/2) : $_);
+ my $foo = encode_entities($l > MAXLEN ?
+ substr($_, 0, MAXLEN/2) . "[...]" . substr($_, $l - MAXLEN/2) : $_);
print "<tr><td><a id=\"L$md5\" href=\"$url\" onclick=\"check(this);return false\">$foo</a>";
print " ($links{$_})" if ($links{$_} > 1);
print "</td><td class=\"na\" id=\"S$md5\">uninitialized</td></tr>\n";
}
print "</tbody>\n</table>\n";
}
+elsif (!$success) {
+ printf "<p>Error: <span class=\"error\">%s</span></p>\n",
+ encode_entities($status || "unknown error");
+}
+elsif ($url) {
+ print "<p>No links found.</p>\n";
+}
print "</body>\n</html>";
Received on Thursday, 25 May 2006 21:56:30 UTC