def nearly_finished(): if len(music_queue) > 0: if music_queue.loop(): current_id = music_queue.getSongID() current_stream = client.get_stream_url(current_id) return audio().enqueue(current_stream) else: next_id = music_queue.next()['nid'] stream = client.get_stream_url(next_id) return audio().enqueue(stream)
def nearly_finished(): if len(music_queue) > 0: next_id = music_queue.next()['nid'] stream = client.get_stream_url(next_id) return audio().enqueue(stream)
def thumbsDown(): sid = client.get_track_info(music_queue.current()['nid']) sid['rating'] = 1 client.change_song_metadata(sid) next_ids = music_queue.next()['nid'] streams = client.get_stream_url(next_ids) return audio("Disliked.").play(streams)
def _get_and_enqueue(song): nid = song['nid'] app.logger.debug("Finding song with id{}".format(nid)) stream = client.get_stream_url(nid) s3_url = s3.ensure_file_exists(nid, stream) app.logger.debug("Got s3_url: {} for stream url: {}".format(s3_url, stream)) return s3_url
def restartIntent(): restart_id = client.get_track_info(music_queue.current()['nid']) artist = restart_id['artist'] title = restart_id['title'] song = musicman.get_song(title, artist) reStream = client.get_stream_url(song['storeId']) return audio.play(reStream)
def play_search_radio(query): stations = musicman._search('station', query) station = None key = query split = ' by ' if split in key: key = key.split(split)[0] station_name = '{} Radio'.format(key) for s in stations: quality = fuzz.ratio(key, s['name']) print("{} vs {}, quality {}".format(s['name'], key, quality)) if quality > 70: station = s break if station is None: return statement('Sorry, no results for %s' % query) matcher = [key for key in station['seed'].keys() if 'Id' in key][0] if matcher is None: return statement('Sorry, no results for %s' % query) id_kwargs = {matcher.replace('Id', '_id'): station['seed'][matcher]} station_id = client.create_station(station_name, **id_kwargs) tracks = client.get_station_tracks(station_id, num_tracks=200) music_queue.clear() for track in tracks: music_queue.enqueue(track) return audio('Playing %s radio' % station['name']).play( client.get_stream_url(music_queue.current()['storeId']))
def play_song(song_name, artist_name): print('Fetching song %s by %s' % (song_name, artist_name)) song = musicman.get_song(song_name, artist_name) if song is False: return statement('Sorry, I couldn\' find that song') music_queue.clear() print('storeId', song['storeId']) track_info = client.get_track_info(song['storeId']) music_queue.enqueue(track_info) stream_url = client.get_stream_url(music_queue.current()['storeId']) print(stream_url) return audio('Playing %s' % song_name).play(stream_url)
def play_song(song_name, artist_name): print('Fetching song %s by %s' % (song_name, artist_name)) song = musicman.get_song(song_name, artist_name) if song is False: return statement('Sorry, I couldn\' find that song') print('storeId', song['storeId']) stream_url = client.get_stream_url(song['storeId']) print(stream_url) return audio('Playing %s' % song_name).play(stream_url)
def play_artist(artist_name): print('Fetching songs by artist: %s' % artist_name) artist = musicman.get_artist(artist_name) artist_info = client.get_artist_info(artist, include_albums = False, max_top_tracks=25, max_rel_artist=0) top_tracks = artist_info['topTracks'] if not top_tracks: return statement('I\'m sorry, I couldn\'t find that artist') music_queue.clear() for track in top_tracks: music_queue.enqueue(track) return audio('Playing top 25 tracks by %s' % artist_info['name']).play(client.get_stream_url(music_queue.current()['storeId']))
def play_genre_radio(genre_name): genres = client.get_genres() g_id = None for g in genres: if fuzz.partial_ratio(genre_name, g['name']) > 75: g_id = g['id'] if g_id == None: return statement('Sorry, I couldn\'t find that genre') station = client.create_station(genre_name, genre_id=g_id) tracks = client.get_station_tracks(station, num_tracks=50) music_queue.clear() for track in tracks: music_queue.enqueue(track) #print(track['nid']) return audio('You have selected %s radio' % str(g_id)).play(client.get_stream_url(music_queue.current()['storeId']))
def googPrev(): prev_ids = music_queue.prev()['nid'] streamss = client.get_stream_url(prev_ids) return audio().play(streamss)
def amznSkip(): next_ids = music_queue.next()['nid'] streams = client.get_stream_url(next_ids) return audio().play(streams)