def Match(self, query: str): query, page = parseSearchQuery(query) query = "artist:" + query trackOffset = int(getSetting("MAX_RESULTS")) * (page - 1) results = self.spotify.search(query, int(getSetting("MAX_RESULTS")), trackOffset, "track") return parseTracks(results)
def Match(self, query: str): query, page = parseSearchQuery(query) user = self.spotify.current_user() playlistOffset = int(getSetting("MAX_RESULTS")) * (page - 1) playlists = self.spotify.user_playlists( user["id"], int(getSetting("MAX_RESULTS")), playlistOffset) return parsePlaylists(playlists)
def Match(self, query: str): query, page = parseSearchQuery(query) playlistOffset = int(getSetting("MAX_RESULTS")) * (page - 1) searchResults = self.spotify.search(query, int(getSetting("MAX_RESULTS")), playlistOffset, "playlist") return parsePlaylists(searchResults["playlists"])
def Match(self, query: str): query, page = parseSearchQuery(query) trackOffset = int(getSetting("MAX_RESULTS")) * (page - 1) results = self.spotify.search(q=query, limit=int(getSetting("MAX_RESULTS")), offset=trackOffset, type="show") return self.ParsePodcasts(results)
def Match(self, query: str): searchResults = [] if (query != ""): query, page = parseSearchQuery(query) trackOffset = int(getSetting("MAX_RESULTS")) * (page - 1) searchResults = self.spotify.search(query, int(getSetting("MAX_RESULTS")), trackOffset, "track") else: searchResults = { "tracks": self.spotify.current_user_top_tracks( offset=0, limit=int(getSetting("MAX_RESULTS"))) } return parseTracks(searchResults)
def Match(self, query: str): query, page = parseSearchQuery(query) searchResults = [] if (query != ""): query = "artist:" + query trackOffset = int(getSetting("MAX_RESULTS")) * (page - 1) searchResults = self.spotify.search(query, int(getSetting("MAX_RESULTS")), trackOffset, "track") else: topArtist = self.spotify.current_user_top_artists(limit=1) result = self.spotify.artist_top_tracks( topArtist['items'][0]['id']) searchResults = {"tracks": {"items": result["tracks"]}} return parseTracks(searchResults)
def Match(self, query: str): query = " a " + query query, page = parseSearchQuery(query) savedShowsOffset = int(getSetting("MAX_RESULTS")) * (page - 1) savedShows = self.spotify.current_user_saved_shows( offset=savedShowsOffset, limit=int(getSetting("MAX_RESULTS"))) shows = [] for show in savedShows['items']: name = show['show']['name'] uri = show['show']['uri'] shows.append((uri, name, "Spotify", 100, 100, { "actions": ["asdf"] })) if (len(shows) > 0): return shows return [("", "No podcasts found!", "Spotify", 100, 100, {})]
def __init__(self, command, spotify): self.spotify = spotify self.command = command if (not os.path.isfile(getSetting("CACHE_PATH"))): raise RuntimeError("Not logged in!") if (not self.spotify.current_playback()): raise RuntimeError("No playback device available!")
def executeCommand(self, command: str): if (getSetting("CASE_SENSITIVE") == "False"): command = command.upper() if (command == getCommandName("PLAY_SONG_COMMAND")): return Song(self.spotify) elif (command == getCommandName("PLAY_SONG_BY_ARTIST_COMMAND")): return ArtistSong(self.spotify) raise RuntimeError("Incorrect command")
def executeCommand(self, command: str): if (getSetting("CASE_SENSITIVE") == "False"): command = command.upper() if (command == getCommandName('PLAY_SONG_COMMAND')): return Song(self.spotify) elif (command == getCommandName('PLAY_SONG_BY_ARTIST_COMMAND')): return ArtistSong(self.spotify) elif (command == getCommandName('PLAY_FEATURED_PLAYLIST_COMMAND')): return FeaturedPlaylist(self.spotify) elif (command == getCommandName('PLAY_PLAYLIST_COMMAND')): return Playlist(self.spotify) elif (command == getCommandName('PLAY_MY_PLAYLIST_COMMAND')): return MyPlaylist(self.spotify) raise RuntimeError("Incorrect command")
def Match(self, query: str): if (getSetting("CASE_SENSITIVE") == "False"): query = query.lower() if (query in ["track", "context", "off"]): return [ (self.command + " " + query, "Set repeat mode to: " + query + ".", "Spotify", 100, 100, {}) ] else: return [(self.command + " off", "Set repeat mode to: off.", "Spotify", 100, 100, {}), (self.command + " context", "Set repeat mode to: context.", "Spotify", 100, 100, {}), (self.command + " track", "Set repeat mode to: track.", "Spotify", 100, 100, {})]
def Match(self, query: str): query, page = parseSearchQuery(query) episodeOffset = int(getSetting("MAX_RESULTS")) * (page - 1) playbackDetails = self.spotify.currently_playing( additional_types="episode") if(playbackDetails["item"]["type"] == "episode"): episodes = self.spotify.show_episodes( playbackDetails["item"]["show"]['id'], offset=episodeOffset, limit=int(getSetting("MAX_RESULTS"))) episodeResults = [] relevance = 100 for episode in episodes['items']: icon = self.GetIcon(episode, playbackDetails) episodeResults.append((episode["uri"], episode["name"], icon, relevance, 100, {})) relevance = relevance - 1 return episodeResults else: return [("", "No podcast is being played!", "Spotify", 100, 100, {})]
def IncreaseByPlusCharacter(self, query): plusDifference = len(query) - IncreaseVolume.plusCount IncreaseVolume.plusCount = len(query) if (0 == abs(plusDifference) or abs(plusDifference) == 1): if (plusDifference == 0): plusDifference = 1 IncreaseVolume.currentVolume = IncreaseVolume.currentVolume + int( getSetting("VOLUME_STEP")) * plusDifference if (IncreaseVolume.currentVolume > 100): IncreaseVolume.currentVolume = 100 return [("", "Volume is already 100%", "Spotify", 100, 100, {}) ] if (IncreaseVolume.currentVolume < 0): IncreaseVolume.currentVolume = 0 return [("", "Volume is already 0%", "Spotify", 100, 100, {})] else: return [("", "Volume is now set to: " + str(IncreaseVolume.currentVolume), "Spotify", 100, 100, {})] return []
def DecreaseByMinusCharacter(self, query): minusDifference = len(query) - DecreaseVolume.minusCount DecreaseVolume.minusCount = len(query) if (0 == abs(minusDifference) or abs(minusDifference) == 1): if (minusDifference == 0): minusDifference = 1 DecreaseVolume.currentVolume = DecreaseVolume.currentVolume - int( getSetting("VOLUME_STEP")) * minusDifference if (DecreaseVolume.currentVolume > 100): DecreaseVolume.currentVolume = 100 return [("", "Volume is already 100%", "Spotify", 100, 100, {}) ] if (DecreaseVolume.currentVolume < 0): DecreaseVolume.currentVolume = 0 return [("", "Volume is already 0%", "Spotify", 100, 100, {})] else: return [("", "Volume is now set to: " + str(DecreaseVolume.currentVolume), "Spotify", 100, 100, {})] return []
def Match(self, query: str): if (DecreaseVolume.minusCount == 0): DecreaseVolume.currentVolume = self.spotify.current_playback( )["device"]["volume_percent"] if (self.spotify.current_playback()["device"]["type"] in DEVICES_WITHOUT_VOLUME_CONTROL): return [("", "Volume cannot be controlled on the current device", "Spotify", 100, 100, {})] query = query.strip(" ") returnOptions = [] if (query.isnumeric() and len(query) > 0): returnOptions = self.DecreaseByValue(query) elif (len(query) > 0 and query[0] == getSetting("DECREASE_VOLUME_CHARACTER") and query == len(query) * query[0]): returnOptions = self.DecreaseByMinusCharacter(query) self.spotify.volume(DecreaseVolume.currentVolume) return returnOptions if returnOptions != [] else self.DecreaseByChoice( )
def Run(self, data: str): os.system(getSetting("CONFIG_EDITOR") + " " + CONFIG_FILE_LOCATION + "&")
def Run(self, data: str): webbrowser.open(getSetting("SPOTIFY_URL"))
def Run(self, data: str): if(os.path.isfile(getSetting("CACHE_PATH"))): os.remove(getSetting("CACHE_PATH"))
def Match(self, query: str): if(os.path.isfile(getSetting("CACHE_PATH"))): return [(self.command, "Log out from spotify", "Spotify", 100, 100, {})] else: return [("", "Not logged in", "Spotify", 100, 100, {})]
def Match(self, query: str): if(os.path.isfile(getSetting("CONFIG_EDITOR"))): return [(self.command, "Edit configuration", "Spotify", 100, 100, {}), ] else: return [(self.command, "Given editor: " + getSetting("CONFIG_EDITOR") + " not found!", "Spotify", 100, 100, {}), ]
def Match(self, query: str): if (not os.path.isfile(getSetting("CACHE_PATH"))): return [(getCommandName("LOGIN_COMMAND"), "Log into Spotify", "Spotify", 100, 100, {})] else: return [("", "Already logged in", "Spotify", 100, 100, {})]