parent.children.append(self)
class ITunesLibrary(NSObject):
- def load_(self, filename):
+ def load_(self, filename=None):
if filename is None:
- filename = "~/Music/iTunes/iTunes Music Library.xml"
- filename = os.path.expanduser(filename)
+ filename = getattr(self, "filename", None)
+ if filename is None:
+ filename = os.path.expanduser("~/Music/iTunes/iTunes Music Library.xml")
+ self.filename = filename
+ self.mtime = os.stat(filename).st_mtime
yield "Reading library..."
plist = read_plist(os.path.expanduser(filename))
if plist is None:
self.playlists.append(playlist)
pl_lookup[playlist.pid] = playlist
+ def needs_reload(self):
+ return os.stat(self.filename).st_mtime > self.mtime
+
def loc2name(self, location):
return urllib.splithost(urllib.splittype(urllib.unquote(location))[1])[1]
def export_m3u(dry_run, dest, path_prefix, playlist_name, files):
if dry_run:
return
+ dest = os.path.join(dest, "-Playlists-")
if not path_prefix:
- path_prefix = "../"
- playlist_file = os.path.join(dest, "-Playlists-", playlist_name) + ".m3u"
+ try:
+ f = open(os.path.join(dest, ".path_prefix"))
+ path_prefix = f.read().strip()
+ except:
+ path_prefix = "../"
+ playlist_file = os.path.join(dest, playlist_name) + ".m3u"
playlist_file = encode_filename(playlist_file)
mkdirhier(os.path.dirname(playlist_file))
logging.info("Writing: " + playlist_file)