diff --git a/.gitignore b/.gitignore index 15e38b0..b04e522 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ __pycache__/** tracks/** cache_xevioni/** .cache-* -auth.py +auth.json export/** # Byte-compiled / optimized / DLL files diff --git a/auth.py b/auth.py new file mode 100644 index 0000000..6c57d92 --- /dev/null +++ b/auth.py @@ -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']) \ No newline at end of file diff --git a/main.py b/main.py index c4b2a73..f847ace 100644 --- a/main.py +++ b/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: diff --git a/pull.py b/pull.py index d833001..da4e202 100644 --- a/pull.py +++ b/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')