my %link = (
home => "www.ebay.co.uk",
search => "http://search.ebay.co.uk/search/search.dll?MfcISAPICommand=GetResult&ht=1&ebaytag1code=3&currdisp=1",
auction => "http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem",
bid => "http://cgi.ebay.co.uk/aw-cgi/eBayISAPI.dll",
);
my %sorts = (
"DATE_ASC" => "MetaEndSort",
"DATE_DSC" => "MetaNewSort",
"BID_ASC" => "MetaLowestPriceSort",
"BID_DSC" => "MetaHighestPriceSort",
}
sub search {
my $self = shift;
my $hash = shift;
$self->{content} = undef; # just in case of leftovers
# build the browser object
$self->{browser} = LWP::UserAgent->new() unless($self->{browser};
my $browser = $self->{browser};
# default sort, if none set
$hash->{sort} = "DATE_ASC" unless($hash->{sort});
# build the search string
my $uri = new URI($links{search});
my $qry = $uri->query();
$qry .= "&query=".join("+",@{$hash->{keywords}}).
"&shortcut=".($hash->{global}?2:3).
"&maxRecordsReturned=300".
"&maxRecordsPerPage=300".
"&SortProperty=".$sorts{$hash->{sort}};
$uri->query($qry);
# send & receive request
$self->{response} = $browser->get($uri->canonical());
# return true/false on success/failure
return 0 unless $self->{response}->is_success;
return 1;
}
|