From: Ralf Ertzinger Date: Sat, 20 Nov 2010 17:20:55 +0000 (+0100) Subject: iBash: Fix broke quote format X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=quotesite.git;a=commitdiff_plain;h=1ead1e86ae55ff13c1bbd7f8a609cc21e573fe00 iBash: Fix broke quote format --- diff --git a/quotesite/iBashGrabber.pm b/quotesite/iBashGrabber.pm index 04bd07d..c6ebe2c 100644 --- a/quotesite/iBashGrabber.pm +++ b/quotesite/iBashGrabber.pm @@ -28,6 +28,38 @@ sub new { return $self; } +sub __buildquote_line { + my $self = shift; + my $p = shift; + my $t; + my $data = ''; + + while ($t = $p->get_tag('td', '/tr')) { + if ($t->[0] eq '/tr') { + return $data; + } + if (exists($t->[1]->{'colspan'})) { + return ''; + } + $data .= $p->get_text('/td') + } +} + + +sub __buildquote_block { + my $self = shift; + my $p = shift; + my $t; + my $data; + + while ($t = $p->get_tag('tr','/table')) { + if ($t->[0] eq '/table') { + return $data; + } + $data .= $self->__buildquote_line($p) . "\n"; + } +} + sub _parse { my $self = shift; my $url = shift; @@ -56,7 +88,7 @@ sub _parse { while ($t = $p->get_tag('td')) { if (exists($t->[1]->{'class'}) && ($t->[1]->{'class'} eq 'quote')) { - $metadata->{'CONTENT'} = $p->get_text('/td'); + $metadata->{'CONTENT'} = $self->__buildquote_block($p); Encode::from_to($metadata->{'CONTENT'}, 'iso-8859-1', 'utf8'); } }