diff options
author | dakkar <dakkar@thenautilus.net> | 2017-03-14 17:37:22 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2017-03-14 17:37:22 +0000 |
commit | a6c1d1c1c3a80660ed67ed744504d6d75638dd4c (patch) | |
tree | 8eff12fa7817c76d552e82694c5a6631d97383e8 /lib/Feed/Role/UnBase64.pm | |
parent | R.I.P. CyanogenMod (diff) | |
download | feeder-a6c1d1c1c3a80660ed67ed744504d6d75638dd4c.tar.gz feeder-a6c1d1c1c3a80660ed67ed744504d6d75638dd4c.tar.bz2 feeder-a6c1d1c1c3a80660ed67ed744504d6d75638dd4c.zip |
role to de-base64 some feeds
Diffstat (limited to 'lib/Feed/Role/UnBase64.pm')
-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; |