Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 7627e489 rédigé par Alexandre Morignot's avatar Alexandre Morignot
Parcourir les fichiers

feat(irc): delegate message parsing to external process

If the process fails, it goes through the legacy path.
parent 397042dd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -256,6 +256,29 @@ sub on_invite { ...@@ -256,6 +256,29 @@ sub on_invite {
push @channels, $chan; push @channels, $chan;
} }
sub external_parse {
my ( $user, $chan, $msg ) = shift;
my $content = `./PlayBot-cli "$user" "$chan" "$msg"`;
if ( $? >> 8 != 0 ) {
die "Error";
}
my ( $id, $external_id, $url, $title, $author, $duration ) =
split( /\n/, $content );
return (
id => $id,
author => $author,
external_id => $external_id,
duration => $duration,
playlist => 0,
site => 'soundcloud',
title => $title,
url => $url,
);
}
# Quand un user parle # Quand un user parle
sub on_speak { sub on_speak {
my ( $kernel, $user, $chan, $msg ) = @_[ KERNEL, ARG0, ARG1, ARG2 ]; my ( $kernel, $user, $chan, $msg ) = @_[ KERNEL, ARG0, ARG1, ARG2 ];
...@@ -264,6 +287,12 @@ sub on_speak { ...@@ -264,6 +287,12 @@ sub on_speak {
my ( $nick, $mask ) = split( /!/, $user ); my ( $nick, $mask ) = split( /!/, $user );
my %content; my %content;
eval {
%content = external_parse($user, lc $chan->[0], $msg);
$irc->yield(
privmsg => $chan => PlayBot::utils::print::print($content) );
}
if ($@) {
# first we check for url # first we check for url
PlayBot::sites::parse(@args); PlayBot::sites::parse(@args);
...@@ -277,5 +306,6 @@ sub on_speak { ...@@ -277,5 +306,6 @@ sub on_speak {
} }
PlayBot::commands::parser::exec(@args); PlayBot::commands::parser::exec(@args);
} }
}
1; 1;
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter