def sync(ipod, playlists): for mpd_playlist, ipod_playlist in playlists: tracks = [] for filename in mpdutils.get_filenames(mpd_playlist, MPD_CONNECTION, MP3_ROOT): track = ipod.track_factory(filename) if track: tracks.append(track) if not ipod.check_freespace(tracks): raise FreeSpaceException("Not enough free space!") ipod.sync_playlist(ipod_playlist, tracks) return True
def main(): filenames = [] for playlist in playlists: print "Playlist: %s" % playlist androidDir = "%s/mp3s/%s" % (options.mountPoint, playlist) tmpDir = "/tmp/mp3s/%s" % playlist if not os.path.isdir(androidDir): os.makedirs(androidDir) os.system("rm -fr '%s'" % tmpDir) os.makedirs(tmpDir) plFname = "%s/000-%s.m3u" % (androidDir, playlist) plFH = open(plFname, 'w') filenames = mpdutils.get_filenames(playlist, MPD_CONNECTION, MP3_ROOT) for f in filenames: basename = os.path.basename(f) destname = re.sub(r'[\\/:\*\?\"\<\>\|]', '_', "%s - %s" % (os.path.basename(os.path.dirname(f)), basename)) print " %s -> %s" % (basename, destname) try: os.symlink(f, "%s/%s" % (tmpDir, destname)) plFH.write(destname + "\n") except Exception as e: print e.message plFH.close() syncCmd = "rsync -aLP --no-o --no-p --no-g --modify-window 1 '%s/' '%s/'" % (tmpDir, androidDir) # syncCmd = "cp -rL '%s/*' '%s'" % (tmpDir, androidDir) print syncCmd os.system(syncCmd)