Mixonomer/spotify/api/spotify.py

40 lines
1.1 KiB
Python
Raw Normal View History

from google.cloud import firestore
import logging
2019-09-04 17:45:25 +01:00
from spotframework.net.user import NetworkUser
from spotframework.net.network import Network
db = firestore.Client()
logger = logging.getLogger(__name__)
def create_playlist(username, name):
logger.info(f'creating {username} / {name}')
users = [i for i in db.collection(u'spotify_users').where(u'username', u'==', username).stream()]
if len(users) == 1:
user_dict = users[0].to_dict()
spotify_keys = db.document('key/spotify').get().to_dict()
2019-09-04 17:45:25 +01:00
net = Network(NetworkUser(spotify_keys['clientid'],
spotify_keys['clientsecret'],
user_dict['refresh_token'],
user_dict['access_token']))
2019-09-15 15:33:29 +01:00
playlist = net.create_playlist(net.user.username, name)
2019-08-14 22:57:58 +01:00
2019-09-15 15:33:29 +01:00
if playlist is not None:
return playlist
2019-08-14 22:57:58 +01:00
else:
logger.error(f'no response received {username} / {name}')
return None
else:
logger.error(f'{len(users)} users found')
return None