Пример #1
0
def googLoopMode():
    if not music_queue.loop():
        music_queue.loopOn(music_queue.current()['storeId'])
        return audio('Loop mode on.')
    else:
        music_queue.loopOff()
        return audio('Loop mode off.')
Пример #2
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)
Пример #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)
Пример #4
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']))
Пример #5
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)
Пример #6
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']))
Пример #7
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']))
Пример #8
0
def googArtistTitle():
    prePreSetup = client.get_track_info(music_queue.current()['nid'])
    artist = prePreSetup['artist']
    print(artist)
    return audio(artist)
Пример #9
0
def googMusicTitle():
    preSetup = client.get_track_info(music_queue.current()['nid'])
    title = preSetup['title']
    print(title)
    return audio(title)
Пример #10
0
def clearRating():
    sidss = client.get_track_info(music_queue.current()['nid'])
    sidss['rating'] = 0
    client.change_song_metadata(sidss)
    return audio("Rating cleared.")
Пример #11
0
def thumbsUp():
    sids = client.get_track_info(music_queue.current()['nid'])
    sids['rating'] = 5
    client.change_song_metadata(sids)
    return audio("Liked.")
Пример #12
0
def identify():
    song = music_queue.current()
    return audio("This is {} by {}".format(song['title'], song['artist']))