my $message = ($parammessage == -1) ? '' : $signal->[$parammessage];
my $g;
my $m;
+ my $p;
my $witem;
# Offer the message to all Grabbers in turn
foreach $g (@grabbers) {
- if (defined($m = $g->get($message))) {
+ ($m, $p) = $g->get($message);
+ while (defined($m)) {
write_debug($witem, 'Metadata: %s', Dumper($m));
if ('download' eq ($conf->{'videosite'}->{'mode'})) {
write_irssi($witem, '%%R>>> %%NSaving %%Y%s%%N %%G%s', $m->{'SOURCE'}, $m->{'TITLE'});
} else {
write_irssi($witem, '%%R>>> Invalid operation mode');
}
- last;
+
+ # Remove the matched part from the message and try again (there may be
+ # more!)
+ $message =~ s/$p//;
+
+ ($m, $p) = $g->get($message);
}
}
}
$self->debug("Matching %s against %s", $pattern, $url);
if ($url =~ m|$pattern|) {
$self->debug("Match");
- return $self->_parse($url, $pattern);
+ return $self->_parse($url, $pattern), $pattern;
}
}