aboutsummaryrefslogtreecommitdiffstats
path: root/lib/WWW/FairViewer
diff options
context:
space:
mode:
Diffstat (limited to 'lib/WWW/FairViewer')
-rw-r--r--lib/WWW/FairViewer/Utils.pm25
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/WWW/FairViewer/Utils.pm b/lib/WWW/FairViewer/Utils.pm
index 5ca1106..09c0174 100644
--- a/lib/WWW/FairViewer/Utils.pm
+++ b/lib/WWW/FairViewer/Utils.pm
@@ -452,8 +452,29 @@ Get description.
sub get_description {
my ($self, $info) = @_;
- my $desc = $info->{description};
- (defined($desc) and $desc =~ /\S/) ? $desc : 'No description available...';
+
+ my $desc = $info->{descriptionHtml} // '';
+
+ require URI::Escape;
+ require HTML::Entities;
+
+ $desc =~ s{<a href="/redirect\?(.*?)".*?>.*?</a>}{
+ my $url = $1;
+ if ($url =~ /(?:^|;)q=([^&]+)/) {
+ URI::Escape::uri_unescape($1);
+ }
+ else {
+ $url;
+ }
+ }segi;
+
+ $desc =~ s/<br>/\n/gi;
+ $desc =~ s{<a href=".*?".*?>(.*?)</a>}{$1}sgi;
+ $desc =~ s/<.*?>//gs;
+
+ $desc = HTML::Entities::decode_entities($desc);
+
+ ($desc =~ /\S/) ? $desc : 'No description available...';
}
=head2 get_title($info)