mirror of
https://github.com/lnbits/lnbits.git
synced 2025-10-11 04:52:34 +02:00
black + added devices
This commit is contained in:
@@ -39,6 +39,7 @@ async def create_jukebox(
|
|||||||
assert jukebox, "Newly created Jukebox couldn't be retrieved"
|
assert jukebox, "Newly created Jukebox couldn't be retrieved"
|
||||||
return jukebox
|
return jukebox
|
||||||
|
|
||||||
|
|
||||||
async def update_jukebox(sp_user: str, **kwargs) -> Optional[Jukebox]:
|
async def update_jukebox(sp_user: str, **kwargs) -> Optional[Jukebox]:
|
||||||
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
|
q = ", ".join([f"{field[0]} = ?" for field in kwargs.items()])
|
||||||
await db.execute(
|
await db.execute(
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ new Vue({
|
|||||||
var url = 'https://accounts.spotify.com/authorize'
|
var url = 'https://accounts.spotify.com/authorize'
|
||||||
url += '?client_id=' + self.jukeboxDialog.data.sp_user
|
url += '?client_id=' + self.jukeboxDialog.data.sp_user
|
||||||
url += '&response_type=code'
|
url += '&response_type=code'
|
||||||
url += '&redirect_uri=' + encodeURI(self.locationcbPath + self.jukeboxDialog.data.sp_user)
|
url += '&redirect_uri=' + encodeURI(self.locationcbPath) + self.jukeboxDialog.data.sp_user
|
||||||
url += "&show_dialog=true"
|
url += "&show_dialog=true"
|
||||||
url += '&scope=user-read-private user-read-email user-modify-playback-state user-read-playback-position user-library-read streaming user-read-playback-state user-read-recently-played playlist-read-private'
|
url += '&scope=user-read-private user-read-email user-modify-playback-state user-read-playback-position user-library-read streaming user-read-playback-state user-read-recently-played playlist-read-private'
|
||||||
console.log(url)
|
console.log(url)
|
||||||
@@ -136,7 +136,7 @@ new Vue({
|
|||||||
xhr.send(body)
|
xhr.send(body)
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
let responseObj = JSON.parse(xhr.response)
|
let responseObj = JSON.parse(xhr.response)
|
||||||
console.log(responseObj.items)
|
self.playlists = []
|
||||||
var i;
|
var i;
|
||||||
for (i = 0; i < responseObj.items.length; i++) {
|
for (i = 0; i < responseObj.items.length; i++) {
|
||||||
self.playlists.push(responseObj.items[i].name + "-" + responseObj.items[i].id)
|
self.playlists.push(responseObj.items[i].name + "-" + responseObj.items[i].id)
|
||||||
@@ -155,12 +155,15 @@ new Vue({
|
|||||||
xhr.setRequestHeader('Authorization', 'Bearer ' + this.jukeboxDialog.data.sp_access_token)
|
xhr.setRequestHeader('Authorization', 'Bearer ' + this.jukeboxDialog.data.sp_access_token)
|
||||||
xhr.send(body)
|
xhr.send(body)
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
let responseObj = xhr.response
|
let responseObj = JSON.parse(xhr.response)
|
||||||
alert(responseObj)
|
console.log(responseObj.devices[0])
|
||||||
|
self.devices = []
|
||||||
var i;
|
var i;
|
||||||
for (i = 0; i < responseObj.items.length; i++) {
|
for (i = 0; i < responseObj.devices.length; i++) {
|
||||||
self.devices.push(responseObj.items[i].name + "-" + responseObj.items[i].id)
|
self.devices.push(responseObj.devices[i].name + "-" + responseObj.devices[i].id)
|
||||||
|
console.log(responseObj.devices[i].name)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
refreshDevices(){
|
refreshDevices(){
|
||||||
@@ -171,7 +174,7 @@ new Vue({
|
|||||||
self = this
|
self = this
|
||||||
let body = "grant_type=authorization_code"
|
let body = "grant_type=authorization_code"
|
||||||
body += "&code=" + self.jukeboxDialog.data.sp_access_token
|
body += "&code=" + self.jukeboxDialog.data.sp_access_token
|
||||||
body += '&redirect_uri=' + encodeURI(self.locationcbPath + self.jukeboxDialog.data.sp_user)
|
body += '&redirect_uri=' + encodeURI(self.locationcbPath) + self.jukeboxDialog.data.sp_user
|
||||||
this.callAuthorizationApi(body)
|
this.callAuthorizationApi(body)
|
||||||
},
|
},
|
||||||
refreshAccessToken(){
|
refreshAccessToken(){
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from . import jukebox_ext
|
|||||||
from .crud import get_jukebox
|
from .crud import get_jukebox
|
||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
|
|
||||||
|
|
||||||
@jukebox_ext.route("/")
|
@jukebox_ext.route("/")
|
||||||
@validate_uuids(["usr"], required=True)
|
@validate_uuids(["usr"], required=True)
|
||||||
@check_user_exists()
|
@check_user_exists()
|
||||||
@@ -22,4 +23,4 @@ async def index():
|
|||||||
async def print_qr_codes(juke_id):
|
async def print_qr_codes(juke_id):
|
||||||
jukebox = await get_jukebox(juke_id)
|
jukebox = await get_jukebox(juke_id)
|
||||||
|
|
||||||
return await render_template("jukebox/jukebox.html", jukebox=jukebox)
|
return await render_template("jukebox/jukebox.html", jukebox=jukebox)
|
||||||
|
|||||||
@@ -32,19 +32,23 @@ async def api_check_credentials_callbac(sp_user):
|
|||||||
sp_refresh_token = ""
|
sp_refresh_token = ""
|
||||||
print(request.args)
|
print(request.args)
|
||||||
jukebox = await get_jukebox_by_user(sp_user)
|
jukebox = await get_jukebox_by_user(sp_user)
|
||||||
if request.args.get('code'):
|
if request.args.get("code"):
|
||||||
sp_code = request.args.get('code')
|
sp_code = request.args.get("code")
|
||||||
jukebox = await update_jukebox(
|
jukebox = await update_jukebox(
|
||||||
sp_user=sp_user, sp_secret=jukebox.sp_secret, sp_access_token=sp_code
|
sp_user=sp_user, sp_secret=jukebox.sp_secret, sp_access_token=sp_code
|
||||||
)
|
)
|
||||||
if request.args.get('access_token'):
|
if request.args.get("access_token"):
|
||||||
sp_access_token = request.args.get('access_token')
|
sp_access_token = request.args.get("access_token")
|
||||||
sp_refresh_token = request.args.get('refresh_token')
|
sp_refresh_token = request.args.get("refresh_token")
|
||||||
jukebox = await update_jukebox(
|
jukebox = await update_jukebox(
|
||||||
sp_user=sp_user, sp_secret=jukebox.sp_secret, sp_access_token=sp_access_token, sp_refresh_token=sp_refresh_token
|
sp_user=sp_user,
|
||||||
|
sp_secret=jukebox.sp_secret,
|
||||||
|
sp_access_token=sp_access_token,
|
||||||
|
sp_refresh_token=sp_refresh_token,
|
||||||
)
|
)
|
||||||
return "<h1>Success!</h1><h2>You can close this window</h2>"
|
return "<h1>Success!</h1><h2>You can close this window</h2>"
|
||||||
|
|
||||||
|
|
||||||
@jukebox_ext.route("/api/v1/jukebox/spotify/<sp_id>", methods=["GET"])
|
@jukebox_ext.route("/api/v1/jukebox/spotify/<sp_id>", methods=["GET"])
|
||||||
@api_check_wallet_key("invoice")
|
@api_check_wallet_key("invoice")
|
||||||
async def api_check_credentials_check(sp_id):
|
async def api_check_credentials_check(sp_id):
|
||||||
|
|||||||
Reference in New Issue
Block a user