Example #1
0
def archive(opt):
    t = opt['trackURI']
    abs_path = ''
    if (t.find('spotify:local:') != -1):
        info = local.getLocalTrackInfo(t)
        dst_path = config.local_archive_folder
        split = os.path.split(info['location'])
        src_path, fname = split[0], split[1]
        abs_path = os.path.join(dst_path, fname)
        if not os.path.isdir(config.local_archive_folder):
            os.makedirs(config.local_archive_folder)
        log("thumbsDown",
            "Moving '" + fname + "' to '" + dst_path + "'")

        try:
            os.rename(os.path.join(src_path, fname), abs_path)
        except WindowsError:
            pass

    conn = sql.connect(config.db)
    c = conn.cursor()
    c.execute('CREATE TABLE IF NOT EXISTS archive' +
              '(track TEXT,spURI TEXT, playlists TEXT,' +
              ' date TEXT, path TEXT);')
    c.execute('''INSERT INTO ARCHIVE VALUES(?,?,?,date('now'),?);''',
              (opt['name'], opt['trackURI'], opt['plURIs'], abs_path))
    conn.commit()
    conn.close()
Example #2
0
def trackUpdate(d):
    """
        Calling trackUpdate with dict with data POSTed to /trackinfo
        Server copy of now playing info is updated
        with data from this dict and some other sources
        Includes:
            - song
            - artist
            - album
            - starred
            - year
            - arturl
            - playlist name
            - play/pause state
            - sonos connected state
            - spotify uris for artist, album
            - flag indicating if track is local
            - local track path (if local)

    """
    global trackInfo, tid
    log("trackUpdate",
        "for '" + urllib.unquote(d.song) +
        "' -> Received 'Now Playing' information")
    trackInfo['song'] = d.song
    trackInfo['artist'] = d.artist
    trackInfo['album'] = d.album
    trackInfo['starred'] = d.starred
    trackInfo['playing'] = d.playing
    trackInfo['playlist'] = d.playlist
    # trackInfo['sonos_connected'] = isSonosConnected()
    if (d.local == 'false'):
        trackInfo['year'] = d.year
        trackInfo['artURL'] = getArt(d.spotifyURI)
        trackInfo['artistURI'] = d.artistURI
        trackInfo['albumURI'] = d.albumURI
    elif (d.local == 'true'):
        lt = local.getLocalTrackInfo(d.spotifyURI)
        if lt is not None:
            trackInfo['artURL'] = lt['img']
            trackInfo['year'] = lt['year']
            trackInfo['artistURI'] = "local"
            trackInfo['albumURI'] = "local"
        else:
            trackInfo['artURL'] = '/static/artwork/no_art.png'
            trackInfo['year'] = '2048'
            trackInfo['artistURI'] = "local"
            trackInfo['albumURI'] = "local"
    trackInfo['id'] += 1
    tid = trackInfo['id']
    log('Now Playing',
        '\'' + urllib.unquote(d.song) +
        '\' by \'' + urllib.unquote(d.artist) +
        '\' on \'' + urllib.unquote(d.album) + '\'')