diff --git a/PlayBot/sites.pm b/PlayBot/sites.pm index 1b09c2cc32c85d3107389f3f4296ccdbf3c17ec0..5c4eba61d7f72f2a952d1a698c002d03f936641f 100644 --- a/PlayBot/sites.pm +++ b/PlayBot/sites.pm @@ -22,28 +22,6 @@ 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 ) = @_; @@ -56,39 +34,33 @@ sub parse { my $matching_url; my @matching_tags; - 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; - } + # parsing + foreach my $site ( __PACKAGE__->sites ) { + if ( not grep { $site eq "PlayBot::sites::$_" } @{ $chan_conf->sites } ) { + next; } - # something goes wrong ? - if ($@) { - $log->warning($@); - return; + 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; } - } else { - $matching_url = $content{matched_url}; - delete $content{matched_url}; + } + + # something goes wrong ? + if ($@) { + $log->warning($@); + return; } my $id;