pricecharts

track prices of consumer electronics
Log | Files | Refs | README

commit f59e906a3565df7d4e402cb9a1df920cf1707f16
parent a148b83a7eadaa8430d50db580f50aea9391eb41
Author: Kyle R W Milz <kyle@getaddrinfo.net>
Date:   Mon, 18 Aug 2014 22:59:51 -0600

price_scraper:split the notion of verbose and logging

Diffstat:
MShared.pm | 2+-
Mprice_scraper.pl | 33++++++++++++++++-----------------
Mpricechart.cfg | 2+-
3 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/Shared.pm b/Shared.pm @@ -43,7 +43,7 @@ sub get_config general => { _vars => [ 'http_path', - 'log_path', + 'log_file', 'user_agent', 'email', 'smtp', diff --git a/price_scraper.pl b/price_scraper.pl @@ -23,15 +23,9 @@ my $dbh = DBI->connect( "", { RaiseError => 1 },) or die $DBI::errstr; -if ($args{v}) { - # Disable buffering on STDOUT - $| = 1; - select STDOUT; -} -else { - open my $logfile, ">>", "$cfg->{general}{log_path}" or die $!; - select $logfile; -} +$| = 1 if ($args{v}); + +open my $log, ">>", "$cfg->{general}{log_file}" or die $!; my $part_no; if ($args{p}) { @@ -47,13 +41,18 @@ else { my $ua = LWP::UserAgent->new(agent => $cfg->{general}{user_agent}); $ua->default_header('Accept' => '*/*'); -print strftime "%b %e %Y %H:%M ", localtime; -printf "%-15s [", $part_no; +print $log strftime "%b %e %Y %H:%M ", localtime; +printf $log "%-15s [", $part_no; + +print "$part_no:\n" if ($args{v}); my $time_start = time; my %prices; for (sort keys $cfg->{vendors}) { my $vendor = $cfg->{vendors}{$_}; + + printf "%-15s: ", $_ if ($args{v}); + my $dom = get_dom("$vendor->{search_uri}$part_no", $ua); next if (!defined $dom); @@ -77,22 +76,22 @@ for (sort keys $cfg->{vendors}) { } if (! $price) { - print ' '; + print $log " "; + print "\n" if ($args{v}); next; } ($price) = ($price =~ m/(\d[\d,]+)/); $price =~ s/,//; - print substr($_, 0, 1); + print $log substr($_, 0, 1); $prices{"\"$_\""} = $price; + + printf "\$%i\n", $price if ($args{v}); } my $duration = time - $time_start; -print "] ($duration s)\n"; -if ($args{v}) { - print "$_: $prices{$_}\n" for (keys %prices); -} +print $log "] ($duration s)\n"; if ($args{n} || (scalar(keys %prices)) == 0) { $dbh->disconnect(); diff --git a/pricechart.cfg b/pricechart.cfg @@ -1,7 +1,7 @@ *** general *** http_path = /var/www/htdocs/pricegraph -log_path = pricechart_log.txt +log_file = pricechart_log.txt # Chrome 36 Win7 64bit user_agent = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36; email = kyle@getaddrinfo.net