commit 9dc0054ec0f75ff4016d44b8fdcb563349fad931
parent 1860b3e1ea666b85e7f2aef3753aa2d81cd88593
Author: kyle <kyle@getaddrinfo.net>
Date:   Sun,  6 Mar 2016 15:20:10 -0700
database: add common insert_price function
Diffstat:
3 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/PS/Database.pm b/PS/Database.pm
@@ -30,12 +30,25 @@ sub new {
 	$dbh->do("PRAGMA foreign_keys = ON");
 	create_tables($dbh);
 
+
+	my $sql = qq{insert into prices(date, manufacturer, part_num, retailer,
+		price, duration) values (?, ?, ?, ?, ?, ?)};
+	$self->{insert_price} = $dbh->prepare($sql);
+
 	$dbh->{AutoCommit} = 1;
 
 	$logger->debug("opened $db_dir/db\n");
 	return $self;
 }
 
+sub insert_price {
+	my ($self, @args) = @_;
+
+	$self->{dbh}->begin_work;
+	$self->{insert_price}->execute(time, @args);
+	$self->{dbh}->commit;
+}
+
 sub create_tables {
 	my ($dbh) = @_;
 
diff --git a/PS/LondonDrugs.pm b/PS/LondonDrugs.pm
@@ -120,6 +120,8 @@ sub find_product_page {
 sub scrape {
 	my ($self, $manufacturer, $part_num) = @_;
 	my $ua = $self->{ua};
+	my $db = $self->{db};
+	my $start = time;
 
 	my $search = $self->create_search($manufacturer, $part_num);
 	my $resp = $ua->get_dom($search);
@@ -133,14 +135,7 @@ sub scrape {
 	my ($price) = $self->scrape_price($resp);
 	my $desc = $self->scrape_description($resp);
 
-	my $sql = qq{insert into prices(date, manufacturer, part_num, retailer,
-	price, duration) values (?, ?, ?, ?, ?, ?)};
-	my $dbh = $self->{db}->{dbh};
-	my $prices_sth = $dbh->prepare($sql);
-
-	$dbh->begin_work;
-	$prices_sth->execute(time, $manufacturer, $part_num, "London Drugs", $price, 100);
-	$dbh->commit;
+	$db->insert_price($manufacturer, $part_num, "London Drugs", $price, time - $start);
 
 	$logger->debug("scrape_price(): added price \$$price\n");
 	return $price;
diff --git a/PS/MemoryExpress.pm b/PS/MemoryExpress.pm
@@ -132,6 +132,8 @@ sub find_product_page {
 sub scrape {
 	my ($self, $manufacturer, $part_num) = @_;
 	my $ua = $self->{ua};
+	my $db = $self->{db};
+	my $start = time;
 
 	my $search = $self->create_search($manufacturer, $part_num);
 	return unless ($search);
@@ -147,14 +149,7 @@ sub scrape {
 	my ($price) = $self->scrape_price($resp);
 	my $desc = $self->scrape_description($resp);
 
-	my $sql = qq{insert into prices(date, manufacturer, part_num, retailer,
-	price, duration) values (?, ?, ?, ?, ?, ?)};
-	my $dbh = $self->{db}->{dbh};
-	my $prices_sth = $dbh->prepare($sql);
-
-	$dbh->begin_work;
-	$prices_sth->execute(time, $manufacturer, $part_num, "Memory Express", $price, 99);
-	$dbh->commit;
+	$db->insert_price($manufacturer, $part_num, "Memory Express", $price, time - $start);
 
 	$logger->debug("scrape_price(): added price \$$price\n");
 	return $price;