From af42ffdc3f8791cd37d1d21b1dcc2538abd9696e Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Fri, 19 Feb 2016 13:18:52 -0800 Subject: [PATCH] fix N days ago support for dates --- jobs_to_org | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/jobs_to_org b/jobs_to_org index 83511bc..fcdfd35 100755 --- a/jobs_to_org +++ b/jobs_to_org @@ -56,6 +56,7 @@ use vars qw($DEBUG); use Data::Printer; use Text::Wrap; use POSIX qw(strftime); +use DateTime; tie my $uuid, 'OSSP::uuid::tie'; $uuid= ["v1"]; @@ -99,7 +100,7 @@ my %sites = job_selector => [url_regex => qr{^/naturejobs/science/jobs/\d+-.+}], university => [href => qr{^/naturejobs/science/employer-directory/\d+$}], description => [class=>"job-description"], - date => [content => qr/\d+\s+days\s+ago$/], + date => [_tag => 'dd', sub {$_[0]->as_text() =~ qr/\d+\s+days\s+ago$/},], position => [class=>'job-title heading'], }, vitae => {url => 'https://chroniclevitae.com/job_search?job_search%5Bdistance_from_zip%5D=10&job_search%5Bemployment_type%5D=Full-time&job_search%5Bposition_type%5D=63', @@ -145,10 +146,10 @@ sub get_jobs { eval { $date = $m->tree->look_down(@{$s->{date}})->as_text() // $todays_date if @{$s->{date}}; - if ($date =~ /(\d+)\s+days ago$/) { + if ($date =~ /^\s*(\d+)\s*days\s*ago\s*$/) { $date = strftime('%Y-%m-%d %H:%M:%S', localtime((DateTime->now() - - DateTime::Duration->new(days=>$1))->epoch)); + DateTime::Duration->new(days=>$1))->epoch)); } }; my $description = 'unknown'; -- 2.39.2