commit a8d14d30d0508b2a7ba4ab56457be000b5a3872d
parent 2effc998d8f83432497a37fff7252c4aa5b09781
Author: Kyle Milz <kyle@getaddrinfo.net>
Date:   Sun, 26 Apr 2015 12:11:28 -0600
pc_html: use variable for part/manuf constraint
Diffstat:
| M | pc_html |  |  | 52 | +++++++++++++++++++++------------------------------- | 
1 file changed, 21 insertions(+), 31 deletions(-)
diff --git a/pc_html b/pc_html
@@ -32,26 +32,27 @@ my $www = Template->new($config) || die Template->error(), "\n";
 
 my $and_stale = $args{a} ? "" : "and products.svg_stale = 1";
 my $where_stale = $args{a} ? "" : "where svg_stale = 1";
+my $part_equality = qq{prices.manufacturer = products.manufacturer and
+	prices.part_num = products.part_num};
 
 #
 # manufacturers
 #
 my $stale_list = qq{select distinct prices.manufacturer from prices, products where
-	prices.manufacturer = products.manufacturer and
-	prices.part_num = products.part_num $and_stale};
+	$part_equality $and_stale};
 
 my $types = qq{select distinct products.type from prices, products where
-	prices.manufacturer = products.manufacturer and
-	prices.part_num = products.part_num and prices.manufacturer = ?
-	$and_stale};
+	$part_equality and prices.manufacturer = ? $and_stale};
 
-my $products_fine = qq{select distinct manufacturer, part_num from products
-	where type = ? and manufacturer = ?};
+my $products_fine = qq{select distinct products.manufacturer, products.part_num
+	from products, prices where $part_equality and products.type = ? and
+	products.manufacturer = ?};
 
 my $summary = qq{select type, count(*) from products where manufacturer = ? group by type};
 
-my $coarse_list = qq{select manufacturer, count(*) as count, type from products group by
-	manufacturer, type};
+my $coarse_list = qq{select products.manufacturer, count(distinct products.part_num)
+	as count, products.type from products, prices where $part_equality
+	group by products.manufacturer, products.type};
 my @key_fields = ("manufacturer", "type");
 my $coarse = $dbh->selectall_hashref($coarse_list, \@key_fields);
 
@@ -61,25 +62,20 @@ generate_folder($stale_list, $types, $products_fine, "Manufacturers", $coarse, $
 # retailers
 #
 $stale_list = qq{select distinct prices.retailer from prices, products where
-	prices.manufacturer = products.manufacturer and
-	prices.part_num = products.part_num $and_stale};
+	$part_equality $and_stale};
 
 $types = qq{select distinct products.type from prices, products where
-	prices.manufacturer = products.manufacturer and
-	prices.part_num = products.part_num and prices.retailer = ?
-	$and_stale};
+	$part_equality and prices.retailer = ?  $and_stale};
 
 $products_fine = qq{select distinct prices.manufacturer, prices.part_num
-	from prices, products where prices.part_num = products.part_num and
-	products.manufacturer = prices.manufacturer and products.type = ? and
+	from prices, products where $part_equality and products.type = ? and
 	prices.retailer = ?};
 
 $summary = qq{select manufacturer, count(*) from prices where retailer = ?
 	group by manufacturer};
 
 $coarse_list = qq{select prices.retailer, count(distinct products.part_num) as
-	count, products.type from products, prices where prices.manufacturer =
-	products.manufacturer and prices.part_num = products.part_num group by
+	count, products.type from products, prices where $part_equality group by
 	prices.retailer, products.type};
 @key_fields = ("retailer", "type");
 $coarse = $dbh->selectall_hashref($coarse_list, \@key_fields);
@@ -90,17 +86,14 @@ generate_folder($stale_list, $types, $products_fine, "Retailers", $coarse, $summ
 # product types
 #
 $stale_list = qq{select distinct products.type from products, prices where
-	products.manufacturer = prices.manufacturer and
-	products.part_num = prices.part_num $and_stale};
+	$part_equality $and_stale};
 
 $types = qq{select distinct products.manufacturer from prices, products where
-	prices.manufacturer = products.manufacturer and
-	prices.part_num = products.part_num and products.type = ?};
+	$part_equality and products.type = ?};
 
 $products_fine = qq{select distinct prices.manufacturer, prices.part_num
-	from prices, products where prices.part_num = products.part_num and
-	products.manufacturer = prices.manufacturer and
-	products.manufacturer = ? and products.type = ?};
+	from prices, products where $part_equality and products.manufacturer = ?
+	and products.type = ?};
 
 $summary = qq{select manufacturer, count(*) from products where type = ?
 	group by manufacturer};
@@ -136,7 +129,7 @@ print scalar(keys %$products) . " processed\n" if ($args{v});
 #
 print "info: index: ";
 
-$sql = "select manufacturer, part_num from products order by first_seen desc limit 10";
+$sql = "select manufacturer, part_num from products order by first_seen desc limit 5";
 my $new = $dbh->selectall_arrayref($sql);
 
 $sql = qq{select manufacturer, part_num from products order by last_scraped desc limit 5};
@@ -220,7 +213,6 @@ sub generate_folder
 	print "info: $name_lc:  " if ($args{v});
 
 	my $stale_list = $dbh->selectcol_arrayref($sql_stale_outer);
-	my $num = scalar @$stale_list;
 	for my $it (@$stale_list) {
 		spin() if ($args{v});
 
@@ -246,11 +238,12 @@ sub generate_folder
 		$www->process("summary.tt", $vars, "$name_lc/$it_link.html")
 			or die $www->error(), "\n";
 	}
-	print "\b$num processed\n" if ($args{v});
 
 	my $vars = { name => $name, list => $coarse_list };
 	$www->process("coarse_list.tt", $vars, "$name_lc.html")
 		or die $www->error(), "\n";
+
+	print "\b" . scalar @$stale_list . " processed\n" if ($args{v});
 }
 
 sub linkify
@@ -465,8 +458,6 @@ sub catmullrom_to_bezier
 			push @p, {x => $pts[$i + 4], y => $pts[$i + 5]};
 		}
 
-		#	print Dumper(@p);
-
 		my @bp;
 		push @bp, {x => $p[1]{x}, y => $p[1]{y}};
 		push @bp, {
@@ -484,6 +475,5 @@ sub catmullrom_to_bezier
 			$bp[3]{x} . ", " . $bp[3]{y} . " ";
 	}
 
-	# print $d;
 	return $d;
 }