def ui_invoke(self): """ Runs authorisation process and invokes the UI. """ try: print(f"{colors.BLUE}Starting auth process...{colors.RESET} \n\n ") self.oauth = self.config.get_oauth() self.token_info = self.oauth.get_access_token(as_dict=True) self.spotify = Spotify(auth=self.token_info["access_token"]) self.init_tray() self.listener_thread.start() self.song_queue = SongQueue() self.image_queue = ImageQueue() self.cache_manager = CacheManager(self.spotify, self.song_queue, self.image_queue) self.spotlight = SpotlightUI(self.spotify, self.song_queue) self.show_spotlight() while True: self.app.exec_() except Exception as ex: print(ex)
def run(self): print(self.config.username) if not self.config.is_valid(): app = QApplication([]) app.setQuitOnLastWindowClosed(True) auth = AuthUI() # ADD TUTORIAL WEBSITE webbrowser.open("https://alfred-spotify-mini-player.com/setup/", 2) while not self.config.is_valid(): auth.show() app.exec_() if auth.isCanceled: sys.exit() try: print("Starting auth process") self.oauth = self.config.get_oauth() self.token_info = self.oauth.get_access_token(as_dict=True) self.spotify = Spotify(auth=self.token_info["access_token"]) self.init_tray() self.listener_thread.start() self.song_queue = SongQueue() self.image_queue = ImageQueue() self.cache_manager = CacheManager(self.spotify, self.song_queue, self.image_queue) self.spotlight = SpotlightUI(self.spotify, self.song_queue) self.show_spotlight() while True: self.app.exec_() except Exception as ex: print(ex)
def __init__(self, addonhandle, addonname, addonbaseurl, parameters, settings): self.addonname = addonname self.baseurl = 'http://www.laola1.tv/' + settings.language( ) + '-' + settings.location() + '/' self.addonhandle = addonhandle self.addonbaseurl = addonbaseurl self.settings = settings self.cacheManager = CacheManager( xbmc.translatePath('special://home/userdata/addon_data/' + self.addonname + '/cache')) self.type = self.get_param(parameters, 'type') self.url = self.get_param(parameters, 'url') id = self.get_param(parameters, 'id') if id is None: self.idParts = [] else: self.idParts = self.split_id_parts(id)
def __init__(self, addonhandle, addonname, addonbaseurl, parameters, settings): self.addonname = addonname self.baseurl = 'http://www.laola1.tv/' + settings.language() + '-' + settings.location() + '/' self.addonhandle = addonhandle self.addonbaseurl = addonbaseurl self.settings = settings self.cacheManager = CacheManager(xbmc.translatePath('special://home/userdata/addon_data/' + self.addonname + '/cache')) self.type = self.get_param(parameters, 'type') self.url = self.get_param(parameters, 'url') id = self.get_param(parameters, 'id') if id is None: self.idParts = [] else: self.idParts = self.split_id_parts(id)
def run(self): print(self.config.username) if not self.config.is_valid(): app = QApplication([]) app.setQuitOnLastWindowClosed(True) auth = AuthUI() # ADD TUTORIAL WEBSITE webbrowser.open("https://alfred-spotify-mini-player.com/setup/", 2) while not self.config.is_valid(): auth.show() app.exec_() if auth.isCanceled: sys.exit() try: print("Starting auth process") # sets up a Spotify username env var which is referenced elsewhere environ["SPOTIFY_USERNAME"] = self.config.username # TODO Change this to something permanent self.oauth = self.config.get_oauth() self.token_info = self.oauth.get_access_token(as_dict=True) SpotifySingleton(self.token_info["access_token"]) # Instantiate Singleton Object self.spotify = SpotifySingleton.get_instance() self.init_tray() self.listener_thread.start() self.song_queue = SongQueue() self.image_queue = ImageQueue() self.cache_manager = CacheManager(self.spotify, self.song_queue, self.image_queue) self.spotlight = SpotlightUI(self.spotify, self.song_queue, self.spotifyclient) self.show_spotlight() while True: self.app.exec_() except Exception as ex: print(ex)
class RequestHandler: def __init__(self, addonhandle, addonname, addonbaseurl, parameters, settings): self.addonname = addonname self.baseurl = 'http://www.laola1.tv/' + settings.language() + '-' + settings.location() + '/' self.addonhandle = addonhandle self.addonbaseurl = addonbaseurl self.settings = settings self.cacheManager = CacheManager(xbmc.translatePath('special://home/userdata/addon_data/' + self.addonname + '/cache')) self.type = self.get_param(parameters, 'type') self.url = self.get_param(parameters, 'url') id = self.get_param(parameters, 'id') if id is None: self.idParts = [] else: self.idParts = self.split_id_parts(id) def build_url(self, query): return self.addonbaseurl + '?' + urllib.urlencode(query) def split_id_parts(self, id): sIds = id.split('-') return [int(i) for i in sIds] def join_id_parts(self, idParts): return '-'.join(str(e) for e in idParts) def full_id(self, id): return self.join_id_parts(self.idParts + [id]) def get_param(self, parameters, key): return parameters.get(key, [None])[0] def add_folder(self, folder, id): image = 'DefaultFolder.png' if 'image' in folder: image = folder['image'] if 'resource:' in image: image = xbmc.translatePath('special://home/addons/' + self.addonname + '/resources/' + image[9:]) li = xbmcgui.ListItem(folder['label'], thumbnailImage=image, iconImage='DefaultFolder.png') parameters = { 'type': folder['type'], 'id': self.full_id(id) } if 'url' in folder: parameters['url'] = folder['url'] xbmcplugin.addDirectoryItem(handle=self.addonhandle, url=self.build_url(parameters), listitem=li, isFolder=True) def add_video(self, video): image = 'DefaultVideo.png' if 'image' in video: image = video['image'] li = xbmcgui.ListItem(video['label'], thumbnailImage=image, iconImage='DefaultVideo.png') li.setProperty("IsPlayable","true") xbmcplugin.addDirectoryItem(handle=self.addonhandle, url=self.build_url({ 'type': 'video', 'url': video['url'] }), listitem=li, isFolder=False) def add_all_entries(self, entries): id = 0 for entry in entries: if entry['type'] == 'video': self.add_video(entry) else: self.add_folder(entry, id) id = id + 1 def cache_clear(self): self.cacheManager.clear() def cache_load(self): return self.cacheManager.load(self.idParts) def cache_store(self, obj): self.cacheManager.store(obj, self.idParts) def handle(self): logger.error('handle() method not overridden!') def finish(self): xbmcplugin.endOfDirectory(self.addonhandle, True, False, True)
class RequestHandler: def __init__(self, addonhandle, addonname, addonbaseurl, parameters, settings): self.addonname = addonname self.baseurl = 'http://www.laola1.tv/' + settings.language( ) + '-' + settings.location() + '/' self.addonhandle = addonhandle self.addonbaseurl = addonbaseurl self.settings = settings self.cacheManager = CacheManager( xbmc.translatePath('special://home/userdata/addon_data/' + self.addonname + '/cache')) self.type = self.get_param(parameters, 'type') self.url = self.get_param(parameters, 'url') id = self.get_param(parameters, 'id') if id is None: self.idParts = [] else: self.idParts = self.split_id_parts(id) def build_url(self, query): return self.addonbaseurl + '?' + urllib.urlencode(query) def split_id_parts(self, id): sIds = id.split('-') return [int(i) for i in sIds] def join_id_parts(self, idParts): return '-'.join(str(e) for e in idParts) def full_id(self, id): return self.join_id_parts(self.idParts + [id]) def get_param(self, parameters, key): return parameters.get(key, [None])[0] def add_folder(self, folder, id): image = 'DefaultFolder.png' if 'image' in folder: image = folder['image'] if 'resource:' in image: image = xbmc.translatePath('special://home/addons/' + self.addonname + '/resources/' + image[9:]) li = xbmcgui.ListItem(folder['label'], thumbnailImage=image, iconImage='DefaultFolder.png') parameters = {'type': folder['type'], 'id': self.full_id(id)} if 'url' in folder: parameters['url'] = folder['url'] xbmcplugin.addDirectoryItem(handle=self.addonhandle, url=self.build_url(parameters), listitem=li, isFolder=True) def add_video(self, video): image = 'DefaultVideo.png' if 'image' in video: image = video['image'] li = xbmcgui.ListItem(video['label'], thumbnailImage=image, iconImage='DefaultVideo.png') li.setProperty("IsPlayable", "true") xbmcplugin.addDirectoryItem(handle=self.addonhandle, url=self.build_url({ 'type': 'video', 'url': video['url'] }), listitem=li, isFolder=False) def add_all_entries(self, entries): id = 0 for entry in entries: if entry['type'] == 'video': self.add_video(entry) else: self.add_folder(entry, id) id = id + 1 def cache_clear(self): self.cacheManager.clear() def cache_load(self): return self.cacheManager.load(self.idParts) def cache_store(self, obj): self.cacheManager.store(obj, self.idParts) def handle(self): logger.error('handle() method not overridden!') def finish(self): xbmcplugin.endOfDirectory(self.addonhandle, True, False, True)