package BookPub::RDAS::Parser::ProductSearch::Amazon::SearchItem;

use lib '/app/tools/rdas/lib';
use base 'RDAS::Parser::Item';

use Data::Dumper;

sub value {
    my $self  = shift;
    my $token = $self->token();

    return unless ($token);

    my @items = $token->find('li');
    return unless (@items);

    foreach my $item (@items) {
        $self->{_title}  = undef;
        $self->{_format} = undef;
        $self->{_url}    = undef;

        $self->_parseTitle($item);
        if ( $self->title() && $self->format() ) {
            $self->_parseURL($item);
            last;
        }
    }
}

sub title  { shift->{_title} }
sub format { shift->{_format} }
sub url    { shift->{_url} }

sub _parseTitle {
    my $self = shift;
    my $token = shift || return;

    my $span  = $token->find('span') || return;
    my $title = $span->as_text()     || return;
    Log->info("parsing title: $title");

    if ( $title =~ /(.*) \(([^\(]*)\)$/ ) {
        Log->info( sprintf( "Title: $1, Format: $2", $1 ? $1 : '<undef>', $2 ? $2 : '<undef>' ) );
        $self->{_title}  = $1;
        $self->{_format} = $2;
    }
}

sub _parseURL {
    my $self  = shift;
    my $token = shift;

    return unless ($token);

    my ($link) = $token->find('a') || return;
    $self->{_url} = $link->attr('href');
}

1;
