summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2012-12-09 23:20:10 +0000
committerdakkar <dakkar@thenautilus.net>2012-12-09 23:20:10 +0000
commit6b51cdf183a5fb98b7c115f07f4189f0affe9f26 (patch)
tree5e99fecc659e9b5df9bfc015c9c73a556dc288c3 /lib
parentuse issued date (diff)
downloadfeeder-6b51cdf183a5fb98b7c115f07f4189f0affe9f26.tar.gz
feeder-6b51cdf183a5fb98b7c115f07f4189f0affe9f26.tar.bz2
feeder-6b51cdf183a5fb98b7c115f07f4189f0affe9f26.zip
rework date handling
Diffstat (limited to 'lib')
-rw-r--r--lib/Feed/HelperRole/Mail.pm13
-rw-r--r--lib/Feed/Role/DeDupe.pm8
-rw-r--r--lib/Feed/Role/FixDateTime.pm4
3 files changed, 12 insertions, 13 deletions
diff --git a/lib/Feed/HelperRole/Mail.pm b/lib/Feed/HelperRole/Mail.pm
index 57899ee..b7f2789 100644
--- a/lib/Feed/HelperRole/Mail.pm
+++ b/lib/Feed/HelperRole/Mail.pm
@@ -72,13 +72,8 @@ sub entry_to_mime {
my ($self,$entry) = @_;
my $from = 'feeder@localhost';
- my $date = $entry->modified;
- if ($date->epoch == 0) {
- $date = $entry->issued;
- if ($date->epoch == ) {
- $date = DateTime->now(time_zone=>'UTC');
- }
- }
+ my $date = $entry->modified // $entry->issued
+ // DateTime->now(time_zone=>'UTC');
my $from_name = $entry->author // $self->title;
$from_name =~ tr/,//d;
my $id = sha1_hex($entry->id);
@@ -169,10 +164,10 @@ __DATA__
[% END %]
</div>
<div id="msgfooter">
- [% IF entry.issued AND entry.issued.epoch %]
+ [% IF entry.issued %]
Posted on [% feeder.date_formatter.format_datetime(entry.issued) %]
[% END %]
- [% IF entry.modified AND entry.modified.epoch %]
+ [% IF entry.modified %]
Modified on [% feeder.date_formatter.format_datetime(entry.modified) %]
[% END %]
|
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');
}