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;