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

feat(sites): Use PlayBot.go

parent 149a39b4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -22,6 +22,29 @@ our $log;
our $regex;
our $playbot_api_key;
sub external_parse {
my $url = shift;
my $content = `./PlayBot.go "$url"`;
if ( $? >> 8 != 0 ) {
die "Error";
}
my ( $matched_url, $external_id, $url, $title, $author, $duration ) =
split( /\n/, $content );
return (
author => $author,
external_id => $external_id,
duration => $duration,
matched_url => $matched_url,
playlist => 0,
site => 'soundcloud',
title => $title,
url => $url,
);
}
sub parse {
my ( $kernel, $user, $chan, $msg, $playlist ) = @_;
my ( $nick, $mask ) = split( /!/, $user );
......@@ -33,32 +56,39 @@ sub parse {
my $matching_url;
my @matching_tags;
# parsing
foreach my $site ( __PACKAGE__->sites ) {
not grep { $site eq "PlayBot::sites::$_" } @{ $chan_conf->sites }
and next;
my @args;
if ( @args = ( $msg =~ $site->regex ) ) {
eval { %content = $site->get(@args) };
$matching_url = $&;
$content{playlist} = 0;
last;
}
elsif ( $site->can('regex_playlist')
and @args = ( $msg =~ $site->regex_playlist ) )
{
eval { %content = $site->get_playlist(@args) };
$matching_url = $&;
$content{playlist} = 1;
last;
eval { %content = external_parse($msg) };
if ($@) {
# parsing
foreach my $site ( __PACKAGE__->sites ) {
if ( not grep { $site eq "PlayBot::sites::$_" } @{ $chan_conf->sites } ) {
next;
}
my @args;
if ( @args = ( $msg =~ $site->regex ) ) {
eval { %content = $site->get(@args) };
$matching_url = $&;
$content{playlist} = 0;
last;
}
elsif ( $site->can('regex_playlist')
and @args = ( $msg =~ $site->regex_playlist ) )
{
eval { %content = $site->get_playlist(@args) };
$matching_url = $&;
$content{playlist} = 1;
last;
}
}
}
# something goes wrong ?
if ($@) {
$log->warning($@);
return;
# something goes wrong ?
if ($@) {
$log->warning($@);
return;
}
} else {
$matching_url = $content{matched_url};
delete $content{matched_url};
}
my $id;
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter