#!/usr/bin/perl ########################################### # maxauthors keyword # Mike Schilli , 2003 ########################################### use strict; use warnings; use Net::Amazon; use Net::Amazon::Property; use Net::Amazon::Request::Keyword; # use Log::Log4perl qw(:easy); # Log::Log4perl->easy_init({level => $DEBUG, layout => '%F{1}-%L: %m%n'}); die "usage: $0 keyword" unless defined $ARGV[0]; my $ua = Net::Amazon->new( token => 'YOUR_AMZN_TOKEN', max_pages => 20, ); my $req = Net::Amazon::Request::Keyword->new( keyword => $ARGV[0], mode => "books" ); # Response: Net::Amazon::Keyword::Response my $resp = $ua->request($req); if($resp->is_error()) { die "Error: ", $resp->message(); } my $max_authors = 0; my @books = sort { saved($b) <=> saved($a) } grep { $_->Catalog eq "Book" && $_->title =~ /$ARGV[0]/i && $_->ListPrice } $resp->properties; for(0..4) { next unless $books[$_]; printf "%.2f%% (%s/%s) %s\n\n", saved($books[$_]), $books[$_]->ListPrice, $books[$_]->OurPrice, $books[$_]->as_string; } ########################################### sub saved { ########################################### my($book) = @_; my $list = $book->ListPrice; my $our = $book->OurPrice; $list =~ s/\$//; $our =~ s/\$//; return ($list - $our)/$list*100; }