iBash: Fix broke quote format
authorRalf Ertzinger <ralf@skytale.net>
Sat, 20 Nov 2010 17:20:55 +0000 (18:20 +0100)
committerRalf Ertzinger <ralf@skytale.net>
Sat, 20 Nov 2010 17:20:55 +0000 (18:20 +0100)
quotesite/iBashGrabber.pm

index 04bd07d..c6ebe2c 100644 (file)
@@ -28,6 +28,38 @@ sub new {
     return $self;
 }
 
     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;
 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')) {
 
     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');
         }
     }
             Encode::from_to($metadata->{'CONTENT'}, 'iso-8859-1', 'utf8');
         }
     }