From a6c1d1c1c3a80660ed67ed744504d6d75638dd4c Mon Sep 17 00:00:00 2001 From: dakkar Date: Tue, 14 Mar 2017 17:37:22 +0000 Subject: role to de-base64 some feeds --- lib/Feed/Role/UnBase64.pm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lib/Feed/Role/UnBase64.pm 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; -- cgit v1.2.3