3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-23 12:29:27 +01:00
pbot/PBot/Utils/ParseDate.pm
Pragmatic Software a9df8351d3 Move English-to-seconds time duration parser to Utils::ParseDate
Update ban_user_timed() and ignore_user() to use Utils::ParseDate
2015-04-13 15:43:19 -07:00

37 lines
681 B
Perl

#!/usr/bin/env perl
use warnings;
use strict;
package PBot::Utils::ParseDate;
require Exporter;
our @ISA = qw/Exporter/;
our @EXPORT = qw/parsedate/;
use Time::HiRes qw/gettimeofday/;
require Time::ParseDate;
sub parsedate {
my $input = shift @_;
my $now = gettimeofday;
my @inputs = split /(?:,?\s+and\s+|\s*,\s*)/, $input;
my $seconds = 0;
foreach my $input (@inputs) {
$input .= ' seconds' if $input =~ m/^\d+$/;
my $parse = Time::ParseDate::parsedate($input, NOW => $now);
if (not defined $parse) {
return (0, "I don't know what '$input' means.\n");
} else {
$seconds += $parse - $now;
}
}
return ($seconds, undef);
}
1;