import sys import spotipy import spotipy.util as util import config as cfg from PIL import Image import asyncio from rgbmatrix import RGBMatrix, RGBMatrixOptions import threading import requests from io import BytesIO import time client_id = cfg.client_id client_secret = cfg.client_secret redirect_uri = cfg.redirect_uri username = cfg.username scope = 'user-read-currently-playing' options = RGBMatrixOptions() options.rows = 32 options.cols = 64 options.chain_length = 6 options.parallel = 2 options.hardware_mapping = 'regular' options.pixel_mapper_config = 'U-mapper' options.limit_refresh_rate_hz = 240 options.gpio_slowdown = 4 screen = RGBMatrix(options = options) #pygame.display.set_mode(self.size, self.flags) token = util.prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri) def get_track(): print('getting info') sp = spotipy.Spotify(auth=token) track = sp.currently_playing() print(track['is_playing']) print(track['item']['name'] + ' - ' + track['item']['artists'][0]['name']) print('getting image') with urllib.request.urlopen(track['item']['album']['images'][0]['url']) as url: f = io.BytesIO(url.read()) #imageString = requests.get(track['item']['album']['images'][0]['url']) image = Image.open(f) print('resizing image') image = image.resize((32,32)) #return image #image.save("thumbnail.jpg","JPEG") print('set image') screen.SetImage(image.convert('RGB')) print('image set') #if token: # sp = spotipy.Spotify(auth=token) # track = sp.currently_playing() # print(track['is_playing']) # print(track['item']['name'] + ' - ' + track['item']['artists'][0]['name']) # imageString = requests.get(track['item']['album']['images'][0]['url']) # image = Image.open(BytesIO(imageString.content)) # image = image.resize((32,32)) # #image.save("thumbnail.jpg","JPEG") #else: print("Can't get token for", username) def main(): x = threading.Thread(target=get_track) x.start() if __name__ == "__main__": main() print('text') while True: time.sleep(10) print('timed')