summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2012-12-09 14:08:58 +0000
committerdakkar <dakkar@thenautilus.net>2012-12-09 14:08:58 +0000
commitbf238eb4266f4c61291b1816cafb4b322d9103e8 (patch)
tree3238252b9041675cf61ab3a083e98b6d505cbdae /lib
parentde-duping (diff)
downloadfeeder-bf238eb4266f4c61291b1816cafb4b322d9103e8.tar.gz
feeder-bf238eb4266f4c61291b1816cafb4b322d9103e8.tar.bz2
feeder-bf238eb4266f4c61291b1816cafb4b322d9103e8.zip
extract author name for email address
Diffstat (limited to 'lib')
-rw-r--r--lib/Feed/AuthorName.pm30
-rw-r--r--lib/Feed/Printer.pm2
2 files changed, 31 insertions, 1 deletions
diff --git a/lib/Feed/AuthorName.pm b/lib/Feed/AuthorName.pm
new file mode 100644
index 0000000..ae883b2
--- /dev/null
+++ b/lib/Feed/AuthorName.pm
@@ -0,0 +1,30 @@
+package Feed::AuthorName;
+use Moose::Role;
+use 5.016;
+use namespace::autoclean;
+use Email::Address;
+use Try::Tiny;
+
+requires 'process_entry';
+
+before process_entry => sub {
+ my ($self,$entry) = @_;
+
+ $self->log->trace('before process_entry - begin');
+
+ my $author = $entry->author;
+
+ return unless $author && $author =~ /\@/;
+
+ try {
+ my $address = (Email::Address->parse($author))[0];
+ if (my $name = $address->name) {
+ $entry->author($name);
+ }
+ };
+
+ $self->log->trace('before process_entry - end');
+};
+
+1;
+
diff --git a/lib/Feed/Printer.pm b/lib/Feed/Printer.pm
index 7fd2f65..89dd93f 100644
--- a/lib/Feed/Printer.pm
+++ b/lib/Feed/Printer.pm
@@ -16,7 +16,7 @@ sub process_entry {
$self->log->trace('process_entry - begin');
- for my $f (qw(id title link issued modified)) {
+ for my $f (qw(id author title link issued modified)) {
say " $f:",$entry->$f//'<undef>';
}
say $entry->content->body;