commit 3cc2401e79e0f6503e5415e71f108cde6ecb430d
parent 0d18d24b3f87db1c5b7e6c652337e50907e4f9ad
Author: Kyle Milz <kyle@getaddrinfo.net>
Date: Fri, 24 Oct 2014 01:47:28 -0600
shared: always export $cfg and $dbh
Diffstat:
6 files changed, 46 insertions(+), 69 deletions(-)
diff --git a/gen_index.pl b/gen_index.pl
@@ -9,9 +9,6 @@ use Template;
use shared;
-my $cfg = get_config();
-my $dbh = get_dbh($cfg);
-
my $config = {
INTERPOLATE => 1,
POST_CHOMP => 1,
diff --git a/gen_svg.pl b/gen_svg.pl
@@ -8,9 +8,8 @@ use POSIX;
use shared;
-my $cfg = get_config();
-my $dbh = get_dbh($cfg);
-my $log = get_log($cfg, "pricechart_gen_svg");
+
+my $log = get_log("pricechart_gen_svg");
print $log strftime "%b %e %Y %H:%M ", localtime;
diff --git a/price_scraper.pl b/price_scraper.pl
@@ -8,11 +8,8 @@ use POSIX;
use shared;
-my $cfg = get_config();
-my $dbh = get_dbh($cfg);
-my $ua = get_ua($cfg);
-my $log = get_log($cfg, "pricechart_scrapes");
-
+my $ua = get_ua();
+my $log = get_log("pricechart_scrapes");
my $part_num;
if ($args{p}) {
diff --git a/product_scraper.pl b/product_scraper.pl
@@ -11,9 +11,7 @@ use POSIX;
use shared;
-my $cfg = get_config();
-my $dbh = get_dbh($cfg);
-my $ua = get_ua($cfg);
+my $ua = get_ua();
srand;
diff --git a/search.pl b/search.pl
@@ -8,8 +8,6 @@ use Template;
use shared;
-my $cfg = get_config();
-my $dbh = get_dbh($cfg);
mkdir "$cfg->{general}{var}/www/run";
my $socket_path = "$cfg->{general}{var}/www/run/search.sock";
diff --git a/shared.pm b/shared.pm
@@ -9,7 +9,7 @@ use HTML::Grabber;
use LWP::Simple;
@ISA = ("Exporter");
-@EXPORT = qw(get_dom get_config get_dbh get_ua get_log vprint vprintf %args);
+@EXPORT = qw(get_dom get_ua get_log vprint vprintf %args $cfg $dbh);
our %args;
@@ -17,6 +17,46 @@ getopts('f:np:v', \%args);
$| = 1 if ($args{v});
+if (!$args{f}) {
+ if (-e "etc/pricechart.cfg") {
+ $cfg_file = "etc/pricechart.cfg";
+ } else {
+ $cfg_file = "/etc/pricechart.cfg";
+ }
+}
+
+my $parser = Config::Grammar->new({
+ _sections => ['vendors', 'general'],
+ vendors => {
+ # vendor regular expression
+ _sections => ['/[A-Za-z ]+/'],
+ '/[A-Za-z ]+/' => {
+ _vars => ['search_uri', 'reg_price', 'sale_price', 'color'],
+ },
+ },
+ general => {
+ _vars => [
+ 'var',
+ 'user_agent',
+ 'email',
+ 'smtp',
+ ],
+ },
+});
+
+our $cfg =$parser->parse($cfg_file) or die "error: $parser->{err}\n";
+make_dir($cfg->{general}{var});
+
+my $db_dir = "$cfg->{general}{var}/db";
+make_dir($db_dir);
+our $dbh = DBI->connect(
+ "dbi:SQLite:dbname=$db_dir/pricechart.db",
+ "",
+ "",
+ { RaiseError => 1 }
+) or die $DBI::errstr;
+
+
sub get_dom
{
my $url = shift;
@@ -30,59 +70,8 @@ sub get_dom
return HTML::Grabber->new(html => $resp->decoded_content);
}
-sub get_config
-{
- if (!$args{f}) {
- if (-e "etc/pricechart.cfg") {
- $cfg_file = "etc/pricechart.cfg";
- } else {
- $cfg_file = "/etc/pricechart.cfg";
- }
- }
-
- my $parser = Config::Grammar->new({
- _sections => ['vendors', 'general'],
- vendors => {
- # vendor regular expression
- _sections => ['/[A-Za-z ]+/'],
- '/[A-Za-z ]+/' => {
- _vars => ['search_uri', 'reg_price', 'sale_price', 'color'],
- },
- },
- general => {
- _vars => [
- 'var',
- 'user_agent',
- 'email',
- 'smtp',
- ],
- },
- });
-
- my $cfg =$parser->parse($cfg_file) or die "error: $parser->{err}\n";
- make_dir($cfg->{general}{var});
-
- return $cfg;
-}
-
-sub get_dbh
-{
- my $cfg = shift;
- my $db_dir = "$cfg->{general}{var}/db";
-
- make_dir($db_dir);
- my $dbh = DBI->connect(
- "dbi:SQLite:dbname=$db_dir/pricechart.db",
- "",
- "",
- { RaiseError => 1 },) or die $DBI::errstr;
- return $dbh;
-}
-
sub get_ua
{
- my $cfg = shift;
-
my $ua = LWP::UserAgent->new(agent => $cfg->{general}{user_agent});
$ua->default_header("Accept" => "*/*");
return $ua;
@@ -90,7 +79,6 @@ sub get_ua
sub get_log
{
- my $cfg = shift;
my $file = shift;
my $log_dir = "$cfg->{general}{var}/log";