#! /usr/bin/perl use strict ; use warnings ; $|++ ; use Date::Calc qw( Add_Delta_Days Day_of_Week Today ) ; my $days_back = shift || 120; my @start_ymd = Add_Delta_Days( Today, -$days_back ) ; my @end_ymd = Today ; my $start = sprintf( "%d-%02d-%02d", @start_ymd ) ; my $end = sprintf( "%d-%02d-%02d", @end_ymd ) ; print"$start\n$end\n\n"; system("parsecache -f nlclick -s $start -e $end > nlclick.cache"); system("parsecache -f nlimage -s $start -e $end > nlopen.cache"); for my $i ( 0 .. $days_back - 1 ) { my $wday = Day_of_Week ( @start_ymd ) ; if ( $wday > 0 && $wday < 6 ) { my $date = sprintf("%d%02d%02d", @start_ymd ); #print "$date\n"; $opens = `report pattern --regex='nl=$date' --filter=nlimage --sumonly < nlopen.cache`; if ( defined( $opens ) ) { $transfers = `report pattern --regex='nl=$date' --filter=standard --sumonly +< nlclick.cache`; if ( !defined( $transfers ) ) { $transfers = 0 } printf("update msnNewsletter set open='%d', click='%d' where dateCreated like '%d-%02d-%02d%%';\n", $opens, $transfers, @start_ymd ); } } } unlink "nlclick.cache"; unlink "nlopen.cache"; __END__