commit
dc8e66109e
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -808,6 +808,9 @@ jsonapi_reply_config(struct httpd_request *hreq)
|
||||||
json_object_object_add(jreply, "allow_modifying_stored_playlists", json_object_new_boolean(allow_modifying_stored_playlists));
|
json_object_object_add(jreply, "allow_modifying_stored_playlists", json_object_new_boolean(allow_modifying_stored_playlists));
|
||||||
safe_json_add_string(jreply, "default_playlist_directory", default_playlist_directory);
|
safe_json_add_string(jreply, "default_playlist_directory", default_playlist_directory);
|
||||||
|
|
||||||
|
// Wether libspotify should be used instead of librespot
|
||||||
|
json_object_object_add(jreply, "use_libspotify", json_object_new_boolean(cfg_getbool(cfg_getsec(cfg, "spotify"), "use_libspotify")));
|
||||||
|
|
||||||
CHECK_ERRNO(L_WEB, evbuffer_add_printf(hreq->reply, "%s", json_object_to_json_string(jreply)));
|
CHECK_ERRNO(L_WEB, evbuffer_add_printf(hreq->reply, "%s", json_object_to_json_string(jreply)));
|
||||||
|
|
||||||
jparse_free(jreply);
|
jparse_free(jreply);
|
||||||
|
@ -1227,8 +1230,8 @@ jsonapi_reply_spotify(struct httpd_request *hreq)
|
||||||
free(oauth_uri);
|
free(oauth_uri);
|
||||||
|
|
||||||
spotify_status_get(&sp_status);
|
spotify_status_get(&sp_status);
|
||||||
json_object_object_add(jreply, "libspotify_installed", json_object_new_boolean(sp_status.installed));
|
json_object_object_add(jreply, "spotify_installed", json_object_new_boolean(sp_status.installed));
|
||||||
json_object_object_add(jreply, "libspotify_logged_in", json_object_new_boolean(sp_status.logged_in));
|
json_object_object_add(jreply, "spotify_logged_in", json_object_new_boolean(sp_status.logged_in));
|
||||||
safe_json_add_string(jreply, "libspotify_user", sp_status.username);
|
safe_json_add_string(jreply, "libspotify_user", sp_status.username);
|
||||||
|
|
||||||
spotifywebapi_status_info_get(&webapi_info);
|
spotifywebapi_status_info_get(&webapi_info);
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "owntone-web",
|
"name": "owntone-web",
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "OwnTone web interface",
|
"description": "OwnTone web interface",
|
||||||
"author": "chme <christian.meffert@googlemail.com>",
|
"author": "chme <christian.meffert@googlemail.com>",
|
||||||
|
@ -12,23 +12,23 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.21.1",
|
||||||
"bulma": "^0.9.2",
|
"bulma": "^0.9.3",
|
||||||
"bulma-switch": "^2.0.0",
|
"bulma-switch": "^2.0.0",
|
||||||
"core-js": "^3.12.1",
|
"core-js": "^3.15.2",
|
||||||
"mdi": "^2.2.43",
|
"mdi": "^2.2.43",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
"moment-duration-format": "^2.3.2",
|
"moment-duration-format": "^2.3.2",
|
||||||
"npm": "^7.12.1",
|
"npm": "^7.19.1",
|
||||||
"reconnectingwebsocket": "^1.0.0",
|
"reconnectingwebsocket": "^1.0.0",
|
||||||
"spotify-web-api-js": "^1.5.1",
|
"spotify-web-api-js": "^1.5.1",
|
||||||
"string-to-color": "^2.2.2",
|
"string-to-color": "^2.2.2",
|
||||||
"v-click-outside": "^3.1.2",
|
"v-click-outside": "^3.1.2",
|
||||||
"vue": "^2.6.12",
|
"vue": "^2.6.14",
|
||||||
"vue-infinite-loading": "^2.4.5",
|
"vue-infinite-loading": "^2.4.5",
|
||||||
"vue-observe-visibility": "^1.0.0",
|
"vue-observe-visibility": "^1.0.0",
|
||||||
"vue-progressbar": "^0.7.5",
|
"vue-progressbar": "^0.7.5",
|
||||||
"vue-range-slider": "^0.6.0",
|
"vue-range-slider": "^0.6.0",
|
||||||
"vue-router": "^3.5.1",
|
"vue-router": "^3.5.2",
|
||||||
"vue-scrollto": "^2.20.0",
|
"vue-scrollto": "^2.20.0",
|
||||||
"vue-tiny-lazyload-img": "^0.1.0",
|
"vue-tiny-lazyload-img": "^0.1.0",
|
||||||
"vuedraggable": "^2.24.3",
|
"vuedraggable": "^2.24.3",
|
||||||
|
@ -40,15 +40,15 @@
|
||||||
"@vue/cli-service": "^4.5.13",
|
"@vue/cli-service": "^4.5.13",
|
||||||
"@vue/eslint-config-standard": "^6.0.0",
|
"@vue/eslint-config-standard": "^6.0.0",
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"eslint": "^7.26.0",
|
"eslint": "^7.30.0",
|
||||||
"eslint-plugin-import": "^2.22.1",
|
"eslint-plugin-import": "^2.23.4",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^5.1.0",
|
"eslint-plugin-promise": "^5.1.0",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"eslint-plugin-vue": "^7.9.0",
|
"eslint-plugin-vue": "^7.12.1",
|
||||||
"sass": "^1.32.13",
|
"sass": "^1.35.1",
|
||||||
"sass-loader": "^10",
|
"sass-loader": "^10",
|
||||||
"vue-template-compiler": "^2.6.12"
|
"vue-template-compiler": "^2.6.14"
|
||||||
},
|
},
|
||||||
"license": "GPL-2.0"
|
"license": "GPL-2.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,10 @@
|
||||||
<span class="heading">Rating</span>
|
<span class="heading">Rating</span>
|
||||||
<span class="title is-6">{{ Math.floor(track.rating / 10) }} / 10</span>
|
<span class="title is-6">{{ Math.floor(track.rating / 10) }} / 10</span>
|
||||||
</p>
|
</p>
|
||||||
|
<p v-if="track.comment">
|
||||||
|
<span class="heading">Comment</span>
|
||||||
|
<span class="title is-6">{{ track.comment }}</span>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<footer class="card-footer">
|
<footer class="card-footer">
|
||||||
|
|
|
@ -8,22 +8,22 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template slot="content">
|
<template slot="content">
|
||||||
<div class="notification is-size-7" v-if="!spotify.libspotify_installed">
|
<div class="notification is-size-7" v-if="!spotify.spotify_installed">
|
||||||
<p>OwnTone was either built without support for Spotify or libspotify is not installed.</p>
|
<p>OwnTone was either built without support for Spotify or libspotify is not installed.</p>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="spotify.libspotify_installed">
|
<div v-if="spotify.spotify_installed">
|
||||||
<div class="notification is-size-7">
|
<div class="notification is-size-7">
|
||||||
<b>You must have a Spotify premium account</b>. If you normally log into Spotify with your Facebook account you must first go to Spotify's web site where you can get the Spotify username and password that matches your account.
|
<b>You must have a Spotify premium account</b>. <span v-if="use_libspotity">If you normally log into Spotify with your Facebook account you must first go to Spotify's web site where you can get the Spotify username and password that matches your account.</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div v-if="use_libspotity">
|
||||||
<p class="content">
|
<p class="content">
|
||||||
<b>libspotify</b> - Login with your Spotify username and password
|
<b>libspotify</b> - Login with your Spotify username and password
|
||||||
</p>
|
</p>
|
||||||
<p v-if="spotify.libspotify_logged_in" class="fd-has-margin-bottom">
|
<p v-if="spotify.libspotify_logged_in" class="fd-has-margin-bottom">
|
||||||
Logged in as <b><code>{{ spotify.libspotify_user }}</code></b>
|
Logged in as <b><code>{{ spotify.libspotify_user }}</code></b>
|
||||||
</p>
|
</p>
|
||||||
<form v-if="spotify.libspotify_installed && !spotify.libspotify_logged_in" @submit.prevent="login_libspotify">
|
<form v-if="spotify.spotify_installed && !spotify.libspotify_logged_in" @submit.prevent="login_libspotify">
|
||||||
<div class="field is-grouped">
|
<div class="field is-grouped">
|
||||||
<div class="control is-expanded">
|
<div class="control is-expanded">
|
||||||
<input class="input" type="text" placeholder="Username" v-model="libspotify.user">
|
<input class="input" type="text" placeholder="Username" v-model="libspotify.user">
|
||||||
|
@ -152,6 +152,10 @@ export default {
|
||||||
return this.spotify.webapi_required_scope.split(' ').filter(scope => this.spotify.webapi_granted_scope.indexOf(scope) < 0)
|
return this.spotify.webapi_required_scope.split(' ').filter(scope => this.spotify.webapi_granted_scope.indexOf(scope) < 0)
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
|
},
|
||||||
|
|
||||||
|
use_libspotify () {
|
||||||
|
return this.$store.state.config.use_libspotify
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue