WWW::Mixi::Scraper::Plugin::ViewMessage - WWW::Mixi::Scraper::Plugin::ViewMessage documentation


WWW-Mixi-Scraper documentation Contained in the WWW-Mixi-Scraper distribution.

Index


Code Index:

NAME

Top

WWW::Mixi::Scraper::Plugin::ViewMessage

DESCRIPTION

Top

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

METHOD

Top

scrape

returns a hash reference such as

  {
    subject => 'title of the message',
    image => 'http://img.mixi.jp/photo/member/xx/xx/xxx_xxx.jpg',
    link => 'http://mixi.jp/show_friend.pl?id=xxx',
    name => 'someone',
    time => 'yyyy-mm-dd hh:mm',
    description => 'message body',
  }

AUTHOR

Top

Kenichi Ishigaki, <ishigaki at cpan.org>

COPYRIGHT AND LICENSE

Top


WWW-Mixi-Scraper documentation Contained in the WWW-Mixi-Scraper distribution.

package WWW::Mixi::Scraper::Plugin::ViewMessage;

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

validator {qw(
  id   is_anything
  box  is_anything
)};

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

  my %scraper;
  $scraper{message} = scraper {
    process 'div#messageDetail>div.thumb>a',
      'link' => '@href';
    process 'div#messageDetail>div.thumb>a>img',
      'image' => '@src',
      'name'  => '@alt';
    process 'div#messageDetail>div.messageDetailHead>h3',
      'subject' => 'TEXT';
    process 'div#messageDetail>div.messageDetailHead>dl>dd',
      'heads[]' => 'TEXT';
    process 'div#message_body',
      'description' => $self->html_or_text;
    result qw( subject name link image description heads );
  };

  my $stash = $scraper{message}->scrape(\$html);
  my $time = $stash->{heads}->[0];
     $time =~ s/^.*(\d{4})\D+(\d{2})\D+(\d{2})\D+(\d{2})\D+(\d{2}).*$/$1\-$2\-$3 $4:$5/;

  $stash->{time} = $time;
  delete $stash->{heads};

  return $self->post_process( $stash )->[0];
}

1;

__END__