App-Caoliu
view release on metacpan or search on metacpan
lib/App/Caoliu/Parser.pm view on Meta::CPAN
return unless $post_string;
my $post_hashref = {};
my $html = decode( 'GBK', $post_string );
my $dom = $self->html->parse($html);
if ( my $part = $dom->at('div.tpc_content') ) {
eval {
my $encoded_data = encode( 'utf8', $part );
my $title = $dom->at('h4')->all_text;
if( $title =~ m{\[(.+?)\](.*)} ){
my ($format,$raw_size) = split('/',$1);
$post_hashref->{name} = trim($2);
$post_hashref->{format} = $format;
$post_hashref->{size} = get_video_size($raw_size) if $raw_size;
}
$post_hashref->{name} = trim($1)
if $part =~ m{ãå½±ç(?:å稱|åç§°)ã: (.*?)<br}six;
$post_hashref->{format} = trim($1)
if $part =~ m{ã(?:å½±çæ ¼å¼|æ ¼å¼ç±»å)ã: (.*?)<br}six;
$post_hashref->{size} = get_video_size($1)
if $part =~ m{ãå½±ç大å°ã: (.*?)<br}six;
$post_hashref->{vc} = trim($1)
if $part =~ m{ãéªè¯ç¼ç ã: (.*?)<br}six;
$post_hashref->{code_option} = trim($1)
if $part =~ m{ãæç æ ç ã: (.*?)<br}six;
if ( $part =~ m{ãä¸è½½å°åã: (.*?)<br}six ) {
$post_hashref->{download_link} = $dom->parse($1)->at('a')->text;
}
( $post_hashref->{post_date} ) = $post_string=~ m{Posted:(\d{4}-\d{2}-\d{2}\s+\d+:\d+)}six;
$post_hashref->{rmdown_link} = trim($1)
if $part =~ m{(http://www.rmdown.com.+?hash=.+?)</a>}six;
$post_hashref->{preview_imgs} = Mojo::Collection->new;
push @{ $post_hashref->{preview_imgs} }, $_->{src}
for $part->find('img')->each;
};
}
$self->log->debug( "got post_info :" . dumper($post_hashref) );
return $post_hashref;
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
App::Caoliu::Parser
=head1 SYNOPSIS
my $p = App::Caoliu::Parser->new;
$p->parse_rss($rss_xml);
$p->parse_post($post_html);
$p->log->debug("say something");
=AUTHOR
=cut
( run in 3.860 seconds using v1.01-cache-2.11-cpan-f4a522933cf )