From 1ead1e86ae55ff13c1bbd7f8a609cc21e573fe00 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sat, 20 Nov 2010 18:20:55 +0100 Subject: [PATCH] iBash: Fix broke quote format --- quotesite/iBashGrabber.pm | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) 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'); } } -- 1.8.3.1