Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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
Esempio n. 5
0
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)
Esempio n. 6
0
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']))
Esempio n. 7
0
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)
Esempio n. 8
0
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)
Esempio n. 9
0
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']))
Esempio n. 10
0
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']))
Esempio n. 11
0
def googPrev():
    prev_ids = music_queue.prev()['nid']
    streamss = client.get_stream_url(prev_ids)
    return audio().play(streamss)
Esempio n. 12
0
def amznSkip():
    next_ids = music_queue.next()['nid']
    streams = client.get_stream_url(next_ids)
    return audio().play(streams)