diff --git a/PlayBot/sites/deezer.pm b/PlayBot/sites/deezer.pm new file mode 100644 index 0000000000000000000000000000000000000000..5bfa8e92c980ca2eff772bf1abb8061bb216340c --- /dev/null +++ b/PlayBot/sites/deezer.pm @@ -0,0 +1,45 @@ +package PlayBot::sites::deezer; + +use strict; +use warnings; + +use LWP::UserAgent; +use JSON; +use FindBin; + +my $conf; +my $endpoint = "https://api.deezer.com/track/"; + +sub regex +{ + return qr#(?:^|[^!])https?://(?:www.)?deezer.com/track/([a-zA-Z0-9_-]+)#; +} + +sub get { + shift; + my $id = shift; + + my $ua = LWP::UserAgent->new( + timeout => 30, + env_proxy => 1, + ); + my $response = $ua->get($endpoint + .$id); + die($response->status_line) unless ($response->is_success); + + my $content = decode_json($response->decoded_content); + +# die "video not found" if (not scalar @{ $content->{items} }); + + my %infos; + + $infos{'title'} = $content->{'title'}; + $infos{'duration'} = $content->{'duration'}; + $infos{'site'} = 'deezer'; + $infos{'url'} = 'https://www.deezer.com/track/'.$id; + $infos{'author'} = $content->{'artist'}->{'name'}; + + return %infos; +} + +1; diff --git a/PlayBot/utils/db/chan.pm b/PlayBot/utils/db/chan.pm index 7d3312f40184ba908371f7562d09d38ed580726b..3a6c412255784c9ce1910fe41cca8689ee38fbf8 100644 --- a/PlayBot/utils/db/chan.pm +++ b/PlayBot/utils/db/chan.pm @@ -32,7 +32,7 @@ around 'BUILDARGS' => sub if (not $row) { - $sites = ['dailymotion', 'mixcloud', 'soundcloud', 'youtube', 'spotify']; + $sites = ['dailymotion', 'mixcloud', 'soundcloud', 'youtube', 'spotify', 'deezer']; $sth = $dbh->prepare(' insert into playbot_config (name, sites)