added user class and working playlist fetching
This commit is contained in:
parent
89acfa98ef
commit
a194bcfd67
13
main.py
13
main.py
@ -1,6 +1,15 @@
|
||||
import spotframework.net.auth as auth
|
||||
import spotframework.net.user as userclass
|
||||
import spotframework.net.playlist as playlist
|
||||
|
||||
if __name__ == '__main__':
|
||||
print('hello world')
|
||||
auth.refreshToken()
|
||||
|
||||
user = userclass.User()
|
||||
user.refreshToken()
|
||||
|
||||
playlists = playlist.getPlaylists(user)
|
||||
|
||||
for playlist in playlists:
|
||||
print(playlist['name'])
|
||||
|
||||
print(len(playlists))
|
||||
|
@ -1,23 +0,0 @@
|
||||
import os
|
||||
import requests
|
||||
from base64 import b64encode
|
||||
|
||||
client_id = os.environ['SPOTCLIENT']
|
||||
client_secret = os.environ['SPOTSECRET']
|
||||
user_access_token = os.environ['SPOTACCESS']
|
||||
user_refresh_token = os.environ['SPOTREFRESH']
|
||||
|
||||
#This sets up the https connection
|
||||
#we need to base 64 encode it
|
||||
#and then decode it to acsii as python 3 stores it as a byte string
|
||||
def refreshToken():
|
||||
|
||||
idsecret = b64encode(bytes(client_id + ':' + client_secret, "utf-8")).decode("ascii")
|
||||
headers = { 'Authorization' : 'Basic %s' % idsecret }
|
||||
|
||||
data = {"grant_type": "refresh_token", "refresh_token": user_refresh_token}
|
||||
|
||||
req = requests.post('https://accounts.spotify.com/api/token', data = data, headers = headers )
|
||||
|
||||
if req.status_code == 200:
|
||||
user_access_token = req.json()['access_token']
|
3
spotframework/net/const.py
Normal file
3
spotframework/net/const.py
Normal file
@ -0,0 +1,3 @@
|
||||
|
||||
|
||||
api_url = 'https://api.spotify.com/v1/'
|
33
spotframework/net/playlist.py
Normal file
33
spotframework/net/playlist.py
Normal file
@ -0,0 +1,33 @@
|
||||
import requests
|
||||
from . import const
|
||||
|
||||
limit = 50
|
||||
|
||||
def getPlaylists(user, offset = 0):
|
||||
|
||||
headers = {'Authorization': 'Bearer ' + user.access_token}
|
||||
|
||||
playlists = []
|
||||
|
||||
params = {'offset': offset, 'limit': limit}
|
||||
req = requests.get(const.api_url + 'me/playlists', params = params, headers = headers)
|
||||
|
||||
print(req.text)
|
||||
|
||||
if req.status_code == 200:
|
||||
|
||||
print(req.text)
|
||||
|
||||
resp = req.json()
|
||||
|
||||
playlists = playlists + resp['items']
|
||||
|
||||
if resp['next']:
|
||||
playlists += getPlaylists(user, offset + limit)
|
||||
|
||||
print(req.text)
|
||||
|
||||
return playlists
|
||||
|
||||
else:
|
||||
return None
|
26
spotframework/net/user.py
Normal file
26
spotframework/net/user.py
Normal file
@ -0,0 +1,26 @@
|
||||
import os
|
||||
import requests
|
||||
from base64 import b64encode
|
||||
|
||||
client_id = os.environ['SPOTCLIENT']
|
||||
client_secret = os.environ['SPOTSECRET']
|
||||
|
||||
class User:
|
||||
|
||||
def __init__(self):
|
||||
self.access_token = os.environ['SPOTACCESS']
|
||||
self.refresh_token = os.environ['SPOTREFRESH']
|
||||
|
||||
def refreshToken(self):
|
||||
|
||||
idsecret = b64encode(bytes(client_id + ':' + client_secret, "utf-8")).decode("ascii")
|
||||
headers = { 'Authorization' : 'Basic %s' % idsecret }
|
||||
|
||||
data = {"grant_type": "refresh_token", "refresh_token": self.refresh_token}
|
||||
|
||||
req = requests.post('https://accounts.spotify.com/api/token', data = data, headers = headers )
|
||||
|
||||
print(req.status_code)
|
||||
print(req.text)
|
||||
|
||||
self.access_token = req.json()['access_token']
|
Loading…
Reference in New Issue
Block a user