From 6b51cdf183a5fb98b7c115f07f4189f0affe9f26 Mon Sep 17 00:00:00 2001 From: dakkar Date: Sun, 9 Dec 2012 23:20:10 +0000 Subject: rework date handling --- lib/Feed/Role/DeDupe.pm | 8 +++++++- lib/Feed/Role/FixDateTime.pm | 4 +--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'lib/Feed/Role') diff --git a/lib/Feed/Role/DeDupe.pm b/lib/Feed/Role/DeDupe.pm index 31ba1bf..641c898 100644 --- a/lib/Feed/Role/DeDupe.pm +++ b/lib/Feed/Role/DeDupe.pm @@ -132,9 +132,15 @@ sub mark_seen { sub _entry_id { my ($self,$e) = @_; + my $id = $e->id; + + my $date = $e->modified // $e->issued; + if ($date) { $id .= '-' . $date->iso8601 } + my $body = $e->content->body; my $content_digest = sha1_base64(encode('utf-8',$body)); - my $id = join '-',$e->id,$e->modified->iso8601,$content_digest; + $id .= '-' . $content_digest; + return encode('utf-8',$id); } diff --git a/lib/Feed/Role/FixDateTime.pm b/lib/Feed/Role/FixDateTime.pm index dfc37d1..5169093 100644 --- a/lib/Feed/Role/FixDateTime.pm +++ b/lib/Feed/Role/FixDateTime.pm @@ -13,9 +13,7 @@ before process_entry => sub { for my $f ('issued','modified') { my $date = $entry->$f; - if (!$date) { - $date = DateTime->from_epoch(epoch=>0); - } + if ($date && $date->time_zone->is_floating) { $date->set_time_zone('UTC'); } -- cgit v1.2.3