]> code.delx.au - notipod/blobdiff - libnotipod.py
category
[notipod] / libnotipod.py
index 30a6a08c625afcc39d679a466e18e1195d104e22..2053b749dc984a9c53c8845b8818b9ebab863d50 100644 (file)
@@ -190,23 +190,44 @@ def mkdirhier(path):
                except OSError:
                        pass
 
-def export_m3u(dry_run, dest, path_prefix, playlist_name, files):
-       if dry_run:
+def delete_playlists(dry_run, dest):
+       dest = os.path.join(dest, "-Playlists-")
+       try:
+               filenames = os.listdir(dest)
+       except OSError:
                return
+
+       for filename in filenames:
+               if not filename.lower().endswith(".m3u"):
+                       continue
+               filename = os.path.join(dest, filename)
+               logging.info("Deleting: " + filename)
+               if not dry_run:
+                       try:
+                               os.unlink(filename)
+                       except OSError:
+                               pass
+
+def export_m3u(dry_run, dest, path_prefix, playlist_name, files):
        dest = os.path.join(dest, "-Playlists-")
-       if not path_prefix:
-               try:
-                       f = open(os.path.join(dest, ".path_prefix"))
-                       path_prefix = f.read().strip()
-               except:
-                       path_prefix = "../"
+       mkdirhier(dest)
+       playlist_name = playlist_name.replace("/", "-")
        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)
+
+       if dry_run:
+               return
+
+       sep = "/"
+       if path_prefix.find("\\") > 0:
+               sep = "\\"
+       if path_prefix[-1] != sep:
+               path_prefix += sep
+
        f = open(playlist_file, "w")
        for filename in files:
-               if path_prefix.find("\\") > 0:
+               if sep == "\\":
                        filename = filename.replace("/", "\\")
                filename = encode_filename(filename)
                f.write("%s%s\n" % (path_prefix, filename))