The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package WWW::Mixi::Scraper::Plugin::ListComment;

use strict;
use warnings;
use WWW::Mixi::Scraper::Plugin;

validator {qw( id is_number )};

sub scrape {
  my ($self, $html) = @_;

  my %scraper;
  $scraper{comments} = scraper {
    process 'dl>dd',
      string => 'TEXT';
    process 'dl>dd>a',
      link => '@href',
      subject => 'TEXT';
    process 'dl>dt',
      time => 'TEXT';
    result qw( string time link subject );
  };

  $scraper{list} = scraper {
    process 'div.listCommentArea>ul.entryList01>li',
      'comments[]' => $scraper{comments};
    result qw( comments );
  };

  return $self->post_process(
    $scraper{list}->scrape(\$html) => \&_extract_name
  );
}

1;

__END__

=head1 NAME

WWW::Mixi::Scraper::Plugin::ListComment

=head1 DESCRIPTION

This is equivalent to WWW::Mixi->parse_list_comment().

=head1 METHOD

=head2 scrape

returns an array reference of

  {
    subject => 'comment extract',
    name    => 'someone',
    link    => 'http://mixi.jp/view_diary.pl?id=xxxx',
    time    => 'yyyy-mm-dd hh:mm'
  }

=head1 AUTHOR

Kenichi Ishigaki, E<lt>ishigaki at cpan.orgE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2007 by Kenichi Ishigaki.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=cut