by Guest » Fri Nov 13, 2009 7:45 am
Ok, here we go again
1.) Copy FixZenMXPlaylist.js to C:\<PRG>\MediaMonkey\Scripts. Set OutDrive to your ZenMX Drive Letter !!!
2.) Edit script.ini in C:\<PRG>\MediaMonkey\Scripts. Add:
[FixZenMXPlaylist]
FileName=FixZenMXPlaylist.js
ProcName=FixZenMXPlaylist
Order=1
DisplayName=Fix dumb ZEN MX playlist
Description=Fix dumb ZEN MX playlist
Language=JScript
ScriptType=0
4.) Restart MM
3.) Run Script from Tools > Scripts submenu.
Have fun
------------------------------------------
FixZenMXPlaylist.js:
// Fix stupid ZEN MX Bug: Playlists must defined their tracks in 8.3 DOS style
// Convert every playlist <name> found in /playlist to <name>_mx
var OutDrive = "D:", // Your Drive letter here!
OutDir = "\\Playlist",
Scriptname = "FixZenMXPlaylist.js",
objFso = new ActiveXObject("Scripting.FileSystemObject"),
fc,
fin,
fout,
re = /\.m3u$/,
re2 = /_mx\.m3u$/,
re3 = /^#/,
newsuff = "_mx",
nrfiles = 0,
C_ForReading = 1;
// some utillity functions
function JS2VBArray(objJSArray) {
var dictionary = new ActiveXObject( "Scripting.Dictionary" ),
i = 0;
for ( ; i < objJSArray.length; i++ ) {
dictionary.add(i,objJSArray
);
}
return dictionary.Items();
}
function getShortPath(filespec, nodrive) {
var f = objFso.GetFile(filespec),
ret = f.ShortPath;
if (nodrive) ret = ret.substr(2);
return(ret);
}
function convColltoArr(col) {
var ret = new Array();
for (var e = new Enumerator(col), i = 0; !e.atEnd(); e.moveNext(), i++) {
ret = e.item();
}
return ret;
}
function getPath(fn) {
var stop = fn.lastIndexOf("\\");
if (stop==-1) return "";
return fn.slice(0,stop);
}
function getFilename(fn) {
var start = fn.lastIndexOf("\\");
return fn.slice(++start);
}
function getFilenamePrefix(fn) {
var ret = getFilename(fn);
var stop = ret.lastIndexOf(".");
if (stop==-1) return ret;
return ret.slice(0,stop);
}
function getFilenameSuffix(fn) {
var ret = getFilename(fn);
var start = ret.lastIndexOf(".");
if (start==-1) return "";
return ret.slice(++start);
}
function genNewPlaylistname(filespec) {
return getPath(filespec) + "\\" + getFilenamePrefix(filespec) + newsuff + "." + getFilenameSuffix(filespec);
}
// ---
function FixZenMXPlaylist() {
objDir = objFso.GetFolder(OutDrive + OutDir);
for (fc = new Enumerator(objDir.files); !fc.atEnd(); fc.moveNext()) {
ele = fc.item();
if (re.test(ele.Name) && !re2.test(ele.Name)) {
nrfiles++;
// WScript.Echo("File: " + ele.Path);
fin = objFso.OpenTextFile(ele.Path, C_ForReading, false);
fout = objFso.CreateTextFile(genNewPlaylistname(ele.Path), true);
while (!fin.AtEndOfLine) {
l = fin.ReadLine();
if (!re3.test(l)) {
sn = getShortPath(OutDrive + l, true);
l = sn;
}
fout.WriteLine(l);
}
fin.Close();
fout.Close();
}
}
SDB.MessageBox(Scriptname + " : " + nrfiles + " Playlists converted to short Tacknames.", mtInformation, JS2VBArray( new Array(mbOk) ));
}
Ok, here we go again ;-)
1.) Copy FixZenMXPlaylist.js to C:\<PRG>\MediaMonkey\Scripts. Set OutDrive to your ZenMX Drive Letter !!!
2.) Edit script.ini in C:\<PRG>\MediaMonkey\Scripts. Add:
[FixZenMXPlaylist]
FileName=FixZenMXPlaylist.js
ProcName=FixZenMXPlaylist
Order=1
DisplayName=Fix dumb ZEN MX playlist
Description=Fix dumb ZEN MX playlist
Language=JScript
ScriptType=0
4.) Restart MM
3.) Run Script from Tools > Scripts submenu.
Have fun ;-)
------------------------------------------
FixZenMXPlaylist.js:
// Fix stupid ZEN MX Bug: Playlists must defined their tracks in 8.3 DOS style
// Convert every playlist <name> found in /playlist to <name>_mx
var OutDrive = "D:", // Your Drive letter here!
OutDir = "\\Playlist",
Scriptname = "FixZenMXPlaylist.js",
objFso = new ActiveXObject("Scripting.FileSystemObject"),
fc,
fin,
fout,
re = /\.m3u$/,
re2 = /_mx\.m3u$/,
re3 = /^#/,
newsuff = "_mx",
nrfiles = 0,
C_ForReading = 1;
// some utillity functions
function JS2VBArray(objJSArray) {
var dictionary = new ActiveXObject( "Scripting.Dictionary" ),
i = 0;
for ( ; i < objJSArray.length; i++ ) {
dictionary.add(i,objJSArray[i]);
}
return dictionary.Items();
}
function getShortPath(filespec, nodrive) {
var f = objFso.GetFile(filespec),
ret = f.ShortPath;
if (nodrive) ret = ret.substr(2);
return(ret);
}
function convColltoArr(col) {
var ret = new Array();
for (var e = new Enumerator(col), i = 0; !e.atEnd(); e.moveNext(), i++) {
ret[i] = e.item();
}
return ret;
}
function getPath(fn) {
var stop = fn.lastIndexOf("\\");
if (stop==-1) return "";
return fn.slice(0,stop);
}
function getFilename(fn) {
var start = fn.lastIndexOf("\\");
return fn.slice(++start);
}
function getFilenamePrefix(fn) {
var ret = getFilename(fn);
var stop = ret.lastIndexOf(".");
if (stop==-1) return ret;
return ret.slice(0,stop);
}
function getFilenameSuffix(fn) {
var ret = getFilename(fn);
var start = ret.lastIndexOf(".");
if (start==-1) return "";
return ret.slice(++start);
}
function genNewPlaylistname(filespec) {
return getPath(filespec) + "\\" + getFilenamePrefix(filespec) + newsuff + "." + getFilenameSuffix(filespec);
}
// ---
function FixZenMXPlaylist() {
objDir = objFso.GetFolder(OutDrive + OutDir);
for (fc = new Enumerator(objDir.files); !fc.atEnd(); fc.moveNext()) {
ele = fc.item();
if (re.test(ele.Name) && !re2.test(ele.Name)) {
nrfiles++;
// WScript.Echo("File: " + ele.Path);
fin = objFso.OpenTextFile(ele.Path, C_ForReading, false);
fout = objFso.CreateTextFile(genNewPlaylistname(ele.Path), true);
while (!fin.AtEndOfLine) {
l = fin.ReadLine();
if (!re3.test(l)) {
sn = getShortPath(OutDrive + l, true);
l = sn;
}
fout.WriteLine(l);
}
fin.Close();
fout.Close();
}
}
SDB.MessageBox(Scriptname + " : " + nrfiles + " Playlists converted to short Tacknames.", mtInformation, JS2VBArray( new Array(mbOk) ));
}