Skip to content

Instantly share code, notes, and snippets.

@larsen
Created March 7, 2012 20:54
Show Gist options
  • Save larsen/1996143 to your computer and use it in GitHub Desktop.
Save larsen/1996143 to your computer and use it in GitHub Desktop.
use strict;
use warnings;
use feature qw/ say /;
use constant MXM_HM_GROUP => 9604;
use Net::Hiveminder;
use DateTime;
my $next_week = DateTime->now->add( days => 7 );
our $CONFFILE = "$ENV{HOME}/.hiveminder";
my $hm = Net::Hiveminder->new(use_config => 1, config_file => $CONFFILE);
my @tasks = $hm->get_tasks(
complete_not => 1,
group => MXM_HM_GROUP
);
say "Tasks fetched.";
foreach my $t ( sort with_due_date_first @tasks ) {
next unless hm2datetime( $t->{ due } ) > $next_week;
print_task( $t );
}
sub print_task {
my $task = shift;
say "- $task->{ summary }";
}
sub hm2datetime {
my $date = shift;
my ( $year, $month, $day ) = $date =~ /(\d{4})-(\d{2})-(\d{2})/;
return DateTime->new(
year => $year,
month => $month,
day => $day
);
}
sub with_due_date_first {
return 0 if defined $a->{ due } and defined $b->{ due };
return 1 if defined $a->{ due };
return -1 if defined $b->{ due };
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment