diff options
-rw-r--r-- | lib/Feed/Role/UnBase64.pm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/Feed/Role/UnBase64.pm b/lib/Feed/Role/UnBase64.pm new file mode 100644 index 0000000..943d066 --- /dev/null +++ b/lib/Feed/Role/UnBase64.pm @@ -0,0 +1,23 @@ +package Feed::Role::UnBase64; +use Moose::Role; +use 5.012; +use namespace::autoclean; +use MIME::Base64; +use Try::Tiny; + +around extract_entries => sub { + my ($orig, $self) = @_; + + my $entries = $self->$orig(); + + for my $entry (@{ $entries }) { + my $html= $entry->content->body; + if( $html =~ m{\A[A-Za-z0-9/=-]+\z} ) { + try { $entry->content( decode_base64($html) ) }; + }; + }; + + return $entries; +}; + +1; |