SVN devscripts commit: r559 - trunk/scripts

Adam D. Barratt adam-guest at alioth.debian.org
Sat Mar 10 22:46:26 CET 2007


Author: adam-guest
Date: 2007-03-10 21:46:26 +0000 (Sat, 10 Mar 2007)
New Revision: 559

Modified:
   trunk/scripts/bts.pl
Log:
Version graph fixes - handle graphs with fixed version, properly handle collapsed graphs, handle both found=version and 
found=package/version


Modified: trunk/scripts/bts.pl
===================================================================
--- trunk/scripts/bts.pl	2007-03-10 12:48:32 UTC (rev 558)
+++ trunk/scripts/bts.pl	2007-03-10 21:46:26 UTC (rev 559)
@@ -1952,9 +1952,11 @@
     # occurrence of either "[<a " or plain "<a ", preserving any "[".
     my @data = split /(?:(?=\[<[Aa]\s)|(?<!\[)(?=<[Aa]\s))/, $toppage;
     foreach (@data) {
-	next unless m%<a(?: class=\".*?\")? href="((bugreport\.cgi[^\"]+)">|(version\.cgi[^\"]+)">(<img[^>]+>)?)%i;
-	my $ref = $2;
-	$ref = $3 if not defined $ref;
+	next unless m%<a(?: class=\".*?\")? href="((bugreport\.cgi[^\"]+)">|(version\.cgi[^\"]+)"><img src="([^\"]+)">|(version.cgi[^\"]+)">)%i;
+	my $ref = $5;
+	$ref = $4 if not defined $ref;
+	$ref = $2 if not defined $ref;
+
 	my ($msg, $filename) = href_to_filename($_);
 
 	next unless defined $msg;
@@ -1986,7 +1988,7 @@
 	    # Always need refreshing, as they could change each time the
 	    # bug does
 	}
-	elsif ($cachemode eq 'full' and $msg =~ /^versions(coll)?$/) {
+	elsif ($cachemode eq 'full' and $msg =~ /^versions(fixed)?(coll)?$/) {
 	    $bug2filename{$msg} = $filename;
 	    # already downloaded?
 	    next if -f $bug2filename{$msg} and not $refreshmode;
@@ -2133,8 +2135,13 @@
 		s%<a((?: class=\".*?\")?) href="(pkgreport\.cgi\?src=([^\"&;]+)[^\"]*)">(.+?)</a>%<a$1 href="src_$3.html">$4</a> (<a$1 href="$btscgiurl$2">online</a>)%i;
 		s%<a((?: class=\".*?\")?) href="(pkgreport\.cgi\?submitter=([^\"&;]+)[^\"]*)">(.+?)</a>%<a$1 href="from_$3.html">$4</a> (<a$1 href="$btscgiurl$2">online</a>)%i;
 		s%<a((?: class=\".*?\")?) href="(?:/cgi-bin/)?(bugspam\.cgi[^\"]+)">%<a$1 href="$btscgiurl$2">%i;
+		s%<a((?: class=\".*?\")?) href="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^;]+);fixed=([^\%]+)\%2F([^\";]+))(?:;[^\"]+)?">(.*?)</a>%<a$1 href="$3.$4.$5.$6.png">$7</a>%;
 		s%<a((?: class=\".*?\")?) href="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^\";]+))(?:;[^\"]+)?">(.*?)</a>%<a$1 href="$3.$4.png">$5</a>%;
+		s%<a((?: class=\".*?\")?) href="(version\.cgi\?package=([^;]+);found=([^\";]+))(?:;[^\"]+)?">(.*?)</a>%<a$1 href="$3.$4.png">$5</a>%;
+		s%<img((?: class=\".*?\")?) src="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^;]+);fixed=([^\%]+)\%2F([^;]+);width=([^;]+);height=([^;\"]+)(?:[^\"]*));collapse=1">%<img$1 src="$3.$4.$5.$6.collapsed.png" width="25\%" height="25\%">%;
+		s%<img((?: class=\".*?\")?) src="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^;]+);fixed=([^\%]+)\%2F([^;]+);width=([^;]+);height=([^;\"]+)(?:[^\"]*))">%<img$1 src="$3.$4.$5.$6.png" width="25\%" height="25\%">%;
 		s%<img((?: class=\".*?\")?) src="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^;]+);width=([^;]+);height=([^;\"]+)(?:[^\"]*));collapse=1">%<img$1 src="$3.$4.collapsed.png" width="25\%" height="25\%">%;
+		s%<img((?: class=\".*?\")?) src="(version\.cgi\?package=([^;]+);found=([^;]+);width=([^;]+);height=([^;\"]+)(?:[^\"]*));collapse=1">%<img$1 src="$3.$4.collapsed.png" width="25\%" height="25\%">%;
 		s%<img((?: class=\".*?\")?) src="(version\.cgi\?package=(?:[^;]+);found=([^\%]+)\%2F([^;]+);width=([^;]+);height=([^;\"]+)(?:[^\"]*))">%<img$1 src="$3.$4.png" width="25\%" height="25\%">%;
 	    }
 	}
@@ -2329,16 +2336,36 @@
 	    return undef;
 	}
     }
-    elsif ($href =~ m%<a href=\"version\.cgi[^>]+><img src=\"version\.cgi\?package=[^;]+;found=([^\%]+)\%2F([^;]+);[^\"]*collapse=1\">%) {
+    elsif ($href =~ m%<a href=\"version\.cgi[^>]+><img src=\"version\.cgi\?package=[^;]+;found=([^\%]+)\%2F([^;]+);fixed=([^\%]+)\%2F([^;]+);[^\"]*collapse=1\">%) {
+	my $foundpackage = $1;
+	my $foundversion = $2;
+	my $fixedpackage = $3;
+	my $fixedversion = $4;
+
+	$msg = 'versionsfixedcoll';
+	$filename = "$foundpackage.$foundversion.$fixedpackage.$fixedversion.collapsed.png";
+    }
+    elsif ($href =~ m%<a href=\"version\.cgi[^>]+><img src=\"version\.cgi\?package=([^;]+);found=(([^\%]+)\%2F)?([^;]+);[^\"]*collapse=1\">%) {
 	my $package = $1;
-	my $version = $2;
+	my $version = $4;
+	$version = $2 if not defined $version;
 
 	$msg = 'versionscoll';
 	$filename = "$package.$version.collapsed.png";
     }
-    elsif ($href =~ m%<a href=\"version\.cgi\?package=[^;]+;found=([^\%]+)\%2F([^\"]+)\">%) {
+    elsif ($href =~ m%<a href=\"version\.cgi\?package=[^;]+;found=([^\%]+)\%2F([^;]+);fixed=([^\%]+)\%2F([^\"]+)\">%) {
+	my $foundpackage = $1;
+	my $foundversion = $2;
+	my $fixedpackage = $3;
+	my $fixedversion = $4;
+
+	$msg = 'versionsfixed';
+	$filename = "$foundpackage.$foundversion.$fixedpackage.$fixedversion.png";
+    }
+    elsif ($href =~ m%<a href=\"version\.cgi\?package=([^;]+);found=(([^\%]+)\%2F)?([^\"]+)\">%) {
 	my $package = $1;
-	my $version = $2;
+	my $version = $4;
+	$version = $2 if not defined $version;
 
 	$msg = 'versions';
 	$filename = "$package.$version.png";




More information about the Devscripts-devel mailing list