commit 48c38bc09923a8b187f34f4f62ff984f15b58685
parent 7b21b6895eacb6465127c62b30cb168813d46d73
Author: Kyle R W Milz <kyle@getaddrinfo.net>
Date:   Wed, 13 Aug 2014 01:08:46 -0600
price_scraper: implement database support for price saving
Diffstat:
1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/price_scraper.pl b/price_scraper.pl
@@ -113,7 +113,7 @@ while (my ($name, $vendor) = each ($cfg->{vendors})) {
 	$price =~ s/,//;
 
 	print substr($name, 0, 1);
-	$prices{$name} = $price;
+	$prices{"\"$name\""} = $price;
 }
 
 print '] (' . (time - $time_start) . " s)\n";
@@ -121,4 +121,23 @@ if ($args{v}) {
 	print "$_: $prices{$_}\n" for (keys %prices);
 }
 
-exit if ($args{n} || (scalar(keys %prices)) == 0);
+if ($args{n} || (scalar(keys %prices)) == 0) {
+	$dbh->disconnect();
+	exit;
+}
+
+$dbh->do("create table if not exists [$part_no]" .
+	"(date int not null primary key)");
+
+my $sth = $dbh->prepare("select * from [$part_no]");
+my @columns = @{$sth->{NAME}};
+for my $vendor (keys %prices) {
+	next if (grep {"\"$_\"" eq $vendor} @columns);
+	$dbh->do("alter table [$part_no] add column $vendor");
+}
+$dbh->do("insert into [$part_no](date, " .
+	join(", ", keys %prices) . ") " .
+	"values ($time_start, " .
+	join(", ", values %prices) . ")");
+
+$dbh->disconnect();