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

Soundcloud sets support

parent 09d9e266
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -89,14 +89,15 @@ sub insert_content
# insertion de la vidéo dans la bdd
eval {
my $sth = $dbh->prepare('
INSERT INTO playbot (type, url, sender, title, duration, playlist)
VALUES (?,?,?,?,?,?)
INSERT INTO playbot (type, url, external_id, sender, title, duration, playlist)
VALUES (?,?,?,?,?,?,?)
');
$log->error("Couldn't prepare querie; aborting") unless (defined $sth);
$sth->execute(
$content->{site},
$content->{url},
$content->{external_id},
$content->{author},
$content->{title},
$content->{duration},
......
......@@ -5,16 +5,63 @@ use warnings;
use LWP::UserAgent;
use JSON;
use URI::Find;
use Scalar::Util qw(looks_like_number);
my $root = 'http://api.soundcloud.com';
my $clientId = 'f4956716fe1a9dc9c3725af822963365';
sub regex_playlist
{
return qr#(?:^|[^!])https?://(?:www\.)?soundcloud.com/([a-zA-Z0-9_-]+/sets/[a-zA-Z0-9_-]+)(?:\?.+)?(?: |$)#;
}
sub regex
{
return qr#(?:^|[^!])https?://(?:www\.)?soundcloud.com/([a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+)(?:\?.+)?#;
return qr#(?:^|[^!])https?://(?:www\.)?soundcloud.com/([a-zA-Z0-9_-]+/[a-zA-Z0-9_-]+)(?:\?.+)?(?: |$)#;
}
sub get_playlist {
shift;
my $id = shift;
my $ua = LWP::UserAgent->new(
timeout => 30,
env_proxy => 1,
);
my $response;
if (looks_like_number($id))
{
$response = $ua->get($root.'/playlists/'.$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);
my $content = decode_json($response->decoded_content);
my $infos = {
author => $content->{'user'}->{'username'},
external_id => $content->{'id'},
duration => $content->{'track_count'},
site => 'soundcloud',
title => $content->{'title'},
url => $content->{permalink_url},
};
my @urls;
foreach my $item (@{ $content->{'tracks'} })
{
push @urls, $item->{'permalink_url'};
}
$infos->{'urls'} = \@urls;
return %$infos;
}
......@@ -53,7 +100,7 @@ sub get {
$infos->{'ddl'} = $content->{'download_url'};
}
return %{ $infos };
return %$infos;
}
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