diff --git a/lib/PBot/Utils/PriorityQueue.pm b/lib/PBot/Utils/PriorityQueue.pm index 35572de8..93b109ef 100644 --- a/lib/PBot/Utils/PriorityQueue.pm +++ b/lib/PBot/Utils/PriorityQueue.pm @@ -13,6 +13,7 @@ use PBot::Imports; sub initialize { my ($self, %conf) = @_; + # list of entrie; each entry is expected to have a `priority` and an `id` field $self->{queue} = []; } @@ -100,4 +101,11 @@ sub add { return $position; } +sub update_priority { + my ($self, $id, $priority) = @_; + my @entries = grep { $_->{id} eq $id } @{$self->{queue}}; + map { $_->{priority} = $priority } @entries; + $self->{queue} = [ sort { $a->{priority} <=> $b->{priority} } @{$self->{queue}} ]; +} + 1;