Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
danielvijge committed Nov 18, 2024
1 parent ce13aa5 commit 89d233b
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 22 deletions.
15 changes: 5 additions & 10 deletions HTML/EN/plugins/SqueezeCloud/settings/basic.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
[% PROCESS settings/header.html %]

[% IF code %]
[% WRAPPER setting title="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD" desc="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD_DESC" %]
[% "PLUGIN_SQUEEZECLOUD_LOGGING_IN" | string %]
[% END %]
[% ELSIF username %]
[% IF username %]

[% WRAPPER setting title="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD" desc="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD_DESC" %]
[% "PLUGIN_SQUEEZECLOUD_LOGGED_IN_AS" | string %] [% username %]<br/>
<input type="checkbox" class="stdedit" name="logout" />[% "PLUGIN_SQUEEZECLOUD_LOG_OUT" | string %]
[% END %]
[% ELSIF codeChallenge %]
[% END %]

[% IF codeChallenge %]
[% WRAPPER setting title="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD" desc="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD_DESC" %]
<script>
function openAuthorizationWindow() {
Expand All @@ -34,10 +33,6 @@
<input type="text" class="stdedit" name="code" size="40" />
</div>
[% END %]
[% ELSE %]
[% WRAPPER setting title="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD" desc="PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD_DESC" %]
[% "PLUGIN_SQUEEZECLOUD_LOGIN_ERROR" | string %]
[% END %]

[% END %]

Expand Down
7 changes: 5 additions & 2 deletions Oauth2.pm
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ sub getAccessToken {
sub getAuthorizationToken {
$log->debug('getAuthorizationToken started.');

my $code = shift;
my $cb = shift;
my ($class, $client, $params, $callback, @args) = @_;

if (!$cache->get('codeVerifier')) {
$log->error('No code verifier is available. Reload the page and try to authenticate again.');
Expand All @@ -83,7 +84,7 @@ sub getAuthorizationToken {
"&client_secret=" . CLIENT_SECRET .
"&redirect_uri=" . REDIRECT_URI .
"&code_verifier=" . $cache->get('codeVerifier') .
"&code=" . $code;
"&code=" . $params->{code};

my $http = Slim::Networking::SimpleAsyncHTTP->new(
sub {
Expand All @@ -93,6 +94,8 @@ sub getAuthorizationToken {

$cache->set('access_token', $result->{access_token}, $result->{expires_in} - 60);
$cache->set('refresh_token', $result->{refresh_token}, META_CACHE_TTL);
delete $params->{code};
$cb->($class, $client, $params, $callback, @args) if $cb;
},
sub {
$log->error('Failed request for authorization_code.');
Expand Down
6 changes: 4 additions & 2 deletions Settings.pm
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,17 @@ sub handler {

if ($params->{code} && $params->{code} ne '') {
$log->debug('Getting access token and refresh token from code');
Plugins::SqueezeCloud::Oauth2::getAuthorizationToken($params->{code});
Plugins::SqueezeCloud::Oauth2::getAuthorizationToken(\&handler, @_);
return;
}
elsif ($params->{logout}) {
$log->debug('Logging out...');
$cache->remove('refresh_token');
$cache->remove('access_token');
$prefs->remove('apiKey');
}
elsif (!$cache->get('refresh_token')) {

if (!Plugins::SqueezeCloud::Oauth2::isRefreshTokenAvailable()) {
$log->debug('Generating code and code challange');
my $codeChallenge = Plugins::SqueezeCloud::Oauth2::getCodeChallenge;
$params->{codeChallenge} = $codeChallenge;
Expand Down
10 changes: 2 additions & 8 deletions strings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,10 @@ PLUGIN_SQUEEZECLOUD_PLAYLIST_BROWSE
EN Playlists

PLUGIN_SQUEEZECLOUD_CODE
EN Soundcloud authorization code
EN SoundCloud authorisation code

PLUGIN_SQUEEZECLOUD_CODE_DESC
EN Paste your autorization code after clicking the button above, then press Save
EN Paste your authorisation code after clicking the button above, then press Apply

PLUGIN_SQUEEZECLOUD_CONNECT_WITH_SOUNDCLOUD
EN Login to SoundCloud
Expand Down Expand Up @@ -91,18 +91,12 @@ PLUGIN_SQUEEZECLOUD_ERROR
PLUGIN_SQUEEZECLOUD_LOGIN
EN Log in to SoundCloud in Advanced settings

PLUGIN_SQUEEZECLOUD_LOGGING_IN
EN Logging you in... (should be good. Press Apply again, or refresh this page to see the result.)

PLUGIN_SQUEEZECLOUD_LOGGED_IN_AS
EN Logged in as

PLUGIN_SQUEEZECLOUD_LOG_OUT
EN Log out

PLUGIN_SQUEEZECLOUD_LOGIN_ERROR
EN Something went wrong. Try to refresh the page.

PLUGIN_SQUEEZECLOUD_USE_STREAM_METHOD
EN Always use stream method

Expand Down

0 comments on commit 89d233b

Please sign in to comment.