]> code.delx.au - notipod/blobdiff - syncitunes.py
Fixed playlist
[notipod] / syncitunes.py
index 0f507807bb7c602d2f3b5abdb4e68458cefa5af5..32ed08cbc16d288959bc0a01509e4fbe4bf72c65 100755 (executable)
@@ -23,17 +23,14 @@ def parse_options():
                action="store_true", dest="dry_run", default=False)
        parser.add_option("--itunes-library",
                action="store", dest="itunes_library", default=None)
-       parser.add_option("--drive-letter",
-               action="store", dest="drive_letter", default="E")
-       parser.add_option("--media-dir",
-               action="store", dest="media_dir", default="iTunes")
+       parser.add_option("--path-prefix",
+               action="store", dest="path_prefix", default="E:\\")
 
        opts, args = parser.parse_args(sys.argv[1:])
        if len(args) < 2:
                parser.print_usage()
                sys.exit(1)
-       opts.dest = args[0]
-       opts.full_dest = os.path.join(opts.dest, opts.media_dir)
+       opts.dest = args[0].decode("utf-8")
        opts.playlists = args[1:]
 
        return opts
@@ -42,11 +39,7 @@ def main():
        opts = parse_options()
 
        # Set up logging
-       try:
-               logging.basicConfig(format="%(levelname)s: %(message)s")
-       except TypeError:
-               # Support for Python 2.3
-               logging.basicConfig()
+       logging.basicConfig(format="%(levelname)s: %(message)s")
        if opts.quiet:
                logging.getLogger().setLevel(logging.CRITICAL)
        elif opts.verbose:
@@ -59,28 +52,28 @@ def main():
                sys.exit(1)
 
        logging.info("Loading library")
-       library = libsyncitunes.ITunesLibrary.alloc()
-       if opts.itunes_library:
-               library = library.initWithFilename_(opts.itunes_library)
-       else:
-               library = library.init()
+       library = libsyncitunes.ITunesLibrary.alloc().init()
+       gen = library.load_(opts.itunes_library)
+       for msg in gen:
+               logging.debug(msg)
 
        for playlist in opts.playlists:
-               if not library.has_playlist(playlist):
+               if not library.has_playlist_name(playlist):
                        logging.fatal("Could not find playlist: " + playlist)
                        sys.exit(1)
 
        logging.info("Loading playlists")
        all_tracks = []
        for playlist in opts.playlists:
-               tracks = list(library.get_playlist(playlist))
+               tracks = library.get_playlist_name(playlist).tracks
                all_tracks.extend(tracks)
-               libsyncitunes.export_m3u(opts.dry_run, opts.full_dest,
-                               opts.drive_letter, opts.media_dir,
-                               playlist, tracks)
+               libsyncitunes.export_m3u(opts.dry_run, opts.dest,
+                       opts.path_prefix, playlist, tracks)
 
        logging.info("Synchronising")
-       libsyncitunes.sync(opts.dry_run, library.folder, opts.full_dest, all_tracks)
+       gen = libsyncitunes.sync(opts.dry_run, library.folder, opts.dest, all_tracks)
+       for msg in gen:
+               logging.debug(msg)
 
 
 if __name__ == "__main__":