summaryrefslogtreecommitdiff
path: root/lib/Feed/FixDateTime.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Feed/FixDateTime.pm')
-rw-r--r--lib/Feed/FixDateTime.pm25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/Feed/FixDateTime.pm b/lib/Feed/FixDateTime.pm
new file mode 100644
index 0000000..f9ebe73
--- /dev/null
+++ b/lib/Feed/FixDateTime.pm
@@ -0,0 +1,25 @@
+package Feed::FixDateTime;
+use Moose::Role;
+use 5.016;
+use namespace::autoclean;
+use DateTime;
+
+requires 'process_entry';
+
+before process_entry => sub {
+ my ($self,$entry) = @_;
+
+ 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');
+ }
+
+ $entry->$f($date);
+ }
+};
+
+1;