2005-06-27 04:21:41 -07:00
|
|
|
#!/usr/bin/perl
|
|
|
|
|
2005-06-28 05:48:48 -07:00
|
|
|
use strict;
|
2005-06-27 04:21:41 -07:00
|
|
|
|
|
|
|
my $new_item = 0;
|
|
|
|
my $in_body = 0;
|
|
|
|
my $is_title = 0;
|
|
|
|
|
|
|
|
# this hash is like this
|
|
|
|
#
|
|
|
|
# hash<str, arr<hash<str,str>>>
|
|
|
|
#
|
|
|
|
# [title1] -> [ (item1, asignee1), (item2, asignee2) ]
|
|
|
|
# [title2] -> [ (item1, asignee1) ]
|
|
|
|
#
|
|
|
|
my %todo_hash;
|
|
|
|
my $title;
|
|
|
|
my $item = {};
|
|
|
|
|
2005-06-29 06:22:04 -07:00
|
|
|
# use globals
|
|
|
|
sub push_item {
|
|
|
|
if ($item->{'task'}) {
|
|
|
|
my $task = $item->{'task'};
|
|
|
|
$task =~ s/^\* //;
|
|
|
|
if ($task =~ s/<(.*)>//) {
|
|
|
|
$item->{'asignee_email'} = $1;
|
|
|
|
$1 =~ /(.*) AT /;
|
|
|
|
$item->{'asignee'} = $1;
|
|
|
|
} else {
|
|
|
|
$item->{'asignee_email'} = 0;
|
|
|
|
$item->{'asignee'} = 'None';
|
|
|
|
}
|
|
|
|
$item->{'task'} = $task;
|
|
|
|
push(@{$todo_hash{$title}}, $item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2005-06-27 04:21:41 -07:00
|
|
|
while(<>) {
|
|
|
|
chomp;
|
|
|
|
|
|
|
|
if(/\[\[\[/) {
|
2005-06-29 06:22:04 -07:00
|
|
|
$item->{'task'} = 0;
|
2005-06-27 04:21:41 -07:00
|
|
|
$in_body = 1;
|
|
|
|
} elsif (/\]\]\]/) {
|
2005-06-29 06:22:04 -07:00
|
|
|
if ($in_body) {
|
|
|
|
push_item;
|
|
|
|
$item = {};
|
|
|
|
$in_body = 0;
|
|
|
|
}
|
2005-06-27 04:21:41 -07:00
|
|
|
} elsif (/^---.*---$/) {
|
|
|
|
if ($in_body) {
|
|
|
|
if($is_title) {
|
|
|
|
$is_title = 0;
|
|
|
|
} else {
|
|
|
|
$is_title = 1;
|
|
|
|
}
|
|
|
|
}
|
2005-06-27 06:49:21 -07:00
|
|
|
} elsif (/^\* /) {
|
2005-06-27 04:21:41 -07:00
|
|
|
if ($in_body ) {
|
2005-06-29 06:22:04 -07:00
|
|
|
push_item;
|
2005-06-28 05:48:48 -07:00
|
|
|
$item = {};
|
|
|
|
$item->{'task'} = $_ ;
|
2005-06-27 04:21:41 -07:00
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if ($in_body) {
|
2005-06-27 08:52:58 -07:00
|
|
|
if ($is_title) {
|
2005-06-27 04:21:41 -07:00
|
|
|
$title = $_;
|
|
|
|
} else {
|
|
|
|
$item->{'task'} = $item->{'task'} . $_ ;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for $title ( keys %todo_hash ) {
|
2005-06-28 05:48:48 -07:00
|
|
|
my $count = 1;
|
2005-06-27 04:21:41 -07:00
|
|
|
print "<h2>" . $title . "</h2>\n";
|
|
|
|
|
2005-06-27 06:45:33 -07:00
|
|
|
print "<table>\n";
|
2005-06-28 05:48:48 -07:00
|
|
|
print " <tr><td>#</td><td>Asignee</td><td>Task</td></tr>\n";
|
2005-06-27 04:21:41 -07:00
|
|
|
for $item ( @{$todo_hash{$title}} ) {
|
2005-06-27 08:52:58 -07:00
|
|
|
my $asignee_email = $item->{'asignee_email'};
|
2005-06-27 04:21:41 -07:00
|
|
|
my $asignee = $item->{'asignee'};
|
|
|
|
my $task = $item->{'task'};
|
2005-06-27 08:52:58 -07:00
|
|
|
|
|
|
|
my $mailto;
|
|
|
|
|
|
|
|
if ($asignee_email) {
|
2005-06-29 06:22:04 -07:00
|
|
|
$mailto = "<a href='mailto://$asignee_email'>$asignee</a>"
|
2005-06-27 08:52:58 -07:00
|
|
|
} else {
|
|
|
|
$mailto = $asignee;
|
|
|
|
}
|
2005-06-28 05:48:48 -07:00
|
|
|
print " <tr><td>$count</td><td>$mailto</td><td>$task</td></tr>\n";
|
|
|
|
$count++;
|
2005-06-27 04:21:41 -07:00
|
|
|
}
|
|
|
|
print "</table>\n";
|
|
|
|
}
|