mirror of
https://github.com/Xevion/spotify-explicit.git
synced 2025-12-05 23:16:24 -06:00
update auth.py to use a auth.json file instead, with functional default file
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,7 +2,7 @@ __pycache__/**
|
||||
tracks/**
|
||||
cache_xevioni/**
|
||||
.cache-*
|
||||
auth.py
|
||||
auth.json
|
||||
export/**
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
|
||||
32
auth.py
Normal file
32
auth.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import logging, sys, os, json
|
||||
|
||||
# Open the file and get keys
|
||||
PATH = os.path.join(sys.path[0], 'auth.json')
|
||||
|
||||
# Ensure the file exists, if not, generate one and error with a reason
|
||||
if not os.path.exists(PATH):
|
||||
with open(PATH, 'w') as file:
|
||||
# Dump a pretty-printed dictionary with default values
|
||||
json.dump(
|
||||
{
|
||||
'USERNAME' : 'Your Username Here',
|
||||
'CLIENT_ID' : 'Your Client ID Here',
|
||||
'CLIENT_SECRET' : 'Your Client Secret Here',
|
||||
'REDIRECT_URI' : 'Your Redirect URI Callback Here',
|
||||
'SCOPE' : ['Your Scopes Here']
|
||||
},
|
||||
file,
|
||||
indent=3
|
||||
)
|
||||
# Error critically, then exit
|
||||
logging.critical("No \'auth.json\' file detected, one has been created for you")
|
||||
logging.critical("Please fill out with your Spotify credentials, and then restart the program")
|
||||
sys.exit()
|
||||
FILE = json.load(open(PATH, 'r'))
|
||||
|
||||
# Load all configuration variables
|
||||
USERNAME = FILE['USERNAME']
|
||||
CLIENT_ID = FILE['CLIENT_ID']
|
||||
CLIENT_SECRET = FILE['CLIENT_SECRET']
|
||||
REDIRECT_URI = FILE['REDIRECT_URI']
|
||||
SCOPE = ' '.join(FILE['SCOPE'])
|
||||
5
main.py
5
main.py
@@ -13,14 +13,13 @@ def main():
|
||||
refresh()
|
||||
process.main()
|
||||
|
||||
|
||||
# Refreshes tracks from files if the token from Spotipy has expired,
|
||||
# thus keeping us up to date in most cases while keeping rate limits
|
||||
def refresh():
|
||||
file_path = os.path.join(sys.path[0], f'.cache-{auth.username}')
|
||||
file_path = os.path.join(sys.path[0], f'.cache-{auth.USERNAME}')
|
||||
if os.path.exists(file_path):
|
||||
cache = json.load(open(file_path, 'r'))
|
||||
if time.time() > cache['expires_at']:
|
||||
if True or time.time() > cache['expires_at']:
|
||||
logging.info('Refreshing Spotify data by pulling tracks, this may take a moment.')
|
||||
pull.main()
|
||||
else:
|
||||
|
||||
10
pull.py
10
pull.py
@@ -15,11 +15,11 @@ def main():
|
||||
logging.info('Authorizing with Spotify via Spotipy')
|
||||
logging.warning('May require User Interaction to authenticate properly!')
|
||||
token = util.prompt_for_user_token(
|
||||
username=auth.username,
|
||||
scope=auth.scope,
|
||||
client_id=auth.client_id,
|
||||
client_secret=auth.client_secret,
|
||||
redirect_uri=auth.redirect_uri
|
||||
username=auth.USERNAME,
|
||||
scope=auth.SCOPE,
|
||||
client_id=auth.CLIENT_ID,
|
||||
client_secret=auth.CLIENT_SECRET,
|
||||
redirect_uri=auth.REDIRECT_URI
|
||||
)
|
||||
sp = spotipy.Spotify(auth=token)
|
||||
logging.info('Authorized with Spotify via Spotipy')
|
||||
|
||||
Reference in New Issue
Block a user