my @bugs = get_bugs(...);
+Returns a list of bugs.
+
See L<Debbugs::Bugs::get_bugs> for details.
=cut
my $VERSION = __populate_version(pop);
my ($self,@params) = @_;
my %params;
+ # Because some clients can't handle passing arrayrefs, we allow
+ # options to be specified multiple times
while (my ($key,$value) = splice @params,0,2) {
push @{$params{$key}}, make_list($value);
}
+ # However, for singly specified options, we want to pull them
+ # back out
+ for my $key (keys %params) {
+ if (@{$params{$key}} == 1) {
+ ($params{$key}) = @{$params{$key}}
+ }
+ }
my @bugs;
@bugs = Debbugs::Bugs::get_bugs(%params);
return \@bugs;
}
+=head2 newest_bugs
+
+ my @bugs = newest_bugs(5);
+
+Returns a list of the newest bugs. [Note that all bugs are *not*
+guaranteed to exist, but they should in the most common cases.]
+
+=cut
+
+sub newest_bugs{
+ my $VERSION = __populate_version(pop);
+ my ($self,$num) = @_;
+ my $newest_bug = Debbugs::bugs::newest_bug();
+ return [($newest_bug - $num + 1) .. $newest_bug];
+
+}
=head2 get_bug_log
my @messages;
while (my $record = $log->read_record()) {
$current_msg++;
- print STDERR "message $current_msg\n";
#next if defined $msg_num and ($current_msg ne $msg_num);
- print STDERR "still message $current_msg\n";
next unless $record->{type} eq 'incoming-recv';
my ($msg_id) = $record->{text} =~ /^Message-Id:\s+<(.+)>/im;
next if defined $msg_id and exists $seen_msg_ids{$msg_id};
next if defined $msg_id and $msg_id =~ /handler\..+\.ack(?:info)?\@/;
my $message = parse($record->{text});
my ($header,$body) = map {join("\n",make_list($_))}
- values %{$message};
- print STDERR "still still message $current_msg\n";
- push @messages,{html => $record->{html},
- header => $header,
+ @{$message}{qw(header body)};
+ push @messages,{header => $header,
body => $body,
attachments => [],
msg_num => $current_msg,