Skip to content
Extraits de code Groupes Projets
Valider 4bbbe054 rédigé par Alexandre Morignot's avatar Alexandre Morignot
Parcourir les fichiers

soundcloud: remove get_url + get supports soundcloud IDs

parent 015e74e7
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -6,6 +6,7 @@ use warnings; ...@@ -6,6 +6,7 @@ use warnings;
use LWP::UserAgent; use LWP::UserAgent;
use JSON; use JSON;
use URI::Find; use URI::Find;
use Scalar::Util qw(looks_like_number);
my $root = 'http://api.soundcloud.com'; my $root = 'http://api.soundcloud.com';
my $clientId = 'f4956716fe1a9dc9c3725af822963365'; my $clientId = 'f4956716fe1a9dc9c3725af822963365';
...@@ -20,24 +21,32 @@ sub regex ...@@ -20,24 +21,32 @@ sub regex
sub get { sub get {
shift; shift;
my $id = shift; my $id = shift;
my $url = 'https://www.soundcloud.com/'.$id;
my $ua = LWP::UserAgent->new( my $ua = LWP::UserAgent->new(
timeout => 30, timeout => 30,
env_proxy => 1, env_proxy => 1,
); );
my $response = $ua->get($root.'/resolve.json?url='.$url.'&client_id='.$clientId); my $response;
if (looks_like_number($id))
{
$response = $ua->get($root.'/tracks/'.$id.'?client_id='.$clientId);
}
else
{
my $url = 'https://www.soundcloud.com/'.$id;
$response = $ua->get($root.'/resolve.json?url='.$url.'&client_id='.$clientId);
}
die($response->status_line) unless ($response->is_success); die($response->status_line) unless ($response->is_success);
my $content = decode_json($response->decoded_content); my $content = decode_json($response->decoded_content);
my $infos = { my $infos = {
author => $content->{'user'}->{'username'}, author => $content->{'user'}->{'username'},
external_id => $content->{'id'}, external_id => $content->{'id'},
duration => $content->{'duration'} / 1000, duration => int(0.5 + $content->{'duration'} / 1000),
site => 'soundcloud', site => 'soundcloud',
title => $content->{'title'}, title => $content->{'title'},
url => $url, url => $content->{permalink_url},
}; };
if ($content->{'downloadable'}) { if ($content->{'downloadable'}) {
...@@ -47,22 +56,4 @@ sub get { ...@@ -47,22 +56,4 @@ sub get {
return %{ $infos }; return %{ $infos };
} }
sub get_url
{
shift;
my $id = shift;
my $ua = LWP::UserAgent->new(
timeout => 30,
env_proxy => 1,
);
my $response = $ua->get($root.'/tracks/'.$id.'?client_id='.$clientId);
die($response->status_line) unless ($response->is_success);
my $content = decode_json($response->decoded_content);
return $content->{permalink_url};
}
1; 1;
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