Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 3d35ba894c37e78fcbd0a7fcf8dee290e7d8353c
  • master par défaut
  • 1-baka-export
  • meson
  • assdraw
  • old-master
  • v3.2.2
  • v3.2.1
  • v3.2.0
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.4
  • v3.0.3
  • v3.0.2
  • v3.0.1
  • v3.0.0
  • v2.1.3
  • v2.1.4
  • v2.1.5
  • v2.1.6
  • v2.1.0
  • v2.1.1
  • v2.1.2
  • v2.1.7
26 résultats

ass_file.h

Blame
  • soundcloud.pm 3,71 Kio
    package PlayBot::sites::soundcloud;
    
    use strict;
    use warnings;
    use utf8;
    
    use LWP::UserAgent;
    use JSON;
    use Scalar::Util qw(looks_like_number);
    
    use PlayBot::utils::Logging;
    
    my $log = PlayBot::utils::Logging->new( 'STDOUT', 1 );
    
    my $root     = 'https://api.soundcloud.com';
    my $clientId = 'f4956716fe1a9dc9c3725af822963365';
    our $clientSecret;
    my $access_token = '';
    my $access_token_time;
    
    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_-]+)(?:\?.+)?#;
    }
    
    sub get_access_token {
        if ( $access_token ne '' && time() - $access_token_time <= 3000 ) {
            return $access_token;
        }
    
        $log->info("Get a new soundcloud token");
    
        my $ua = LWP::UserAgent->new(
            timeout   => 30,
            env_proxy => 1,
        );
        my $response =
          $ua->post( $root
              . '/oauth2/token?grant_type=client_credentials&client_id='
              . $clientId
              . '&client_secret='
              . $clientSecret, );
        die( $response->status_line ) unless ( $response->is_success );
    
        my $content = decode_json( $response->decoded_content );
        $access_token      = $content->{'access_token'};
        $access_token_time = time();
    
        return $access_token;
    }
    
    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 );
        }