Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @script jscript
- function zeroPad(num)
- {
- var numZeropad = num + '';
- while(numZeropad.length < 2){
- numZeropad = "0" + numZeropad;
- }
- return numZeropad;
- }
- function numberCDS(CD){
- var getCDNumber = zeroPad(CD);
- return getCDNumber;
- }
- function isAudio(extension)
- {
- switch (extension.toLowerCase()){
- case '.mp3':
- case '.wav':
- case '.ogg':
- case '.m4v':
- case '.flac':
- case '.wma':
- return true;
- }
- return false;
- }
- function OnClick(ClickData)
- {
- var objCmd = ClickData.Func.Command;
- var allFiles = objCmd.sourcetab.files;
- var objEnum = new Enumerator(allFiles);
- if (!objEnum.atEnd())
- {
- // build an array of the files so we can sort it
- var objFiles = new Array();
- i = 0;
- while (!objEnum.atEnd())
- {
- objFiles[i] = objEnum.item();
- if (isAudio(objFiles[i].ext) == false)
- {
- objFiles.splice (i, 1);
- }
- ++i;
- objEnum.moveNext();
- }
- objFiles.sort();
- ClickData.func.command.ClearFiles();
- audiobookFolderName = objCmd.sourcetab.path.filepart;
- var audiobookFolderPath = objCmd.sourcetab.path;
- var fso, f1;
- var ForWriting = 2;
- var totalNumberOfFiles = objCmd.sourcetab.stats.files;
- var Dopus = DOpus.CreateCommand;
- var dlg = Dopus.Dlg;
- dlg.window = DOpus.Listers(0);
- dlg.message = "Split audiobook every nth file:";
- dlg.title = "Audiobook M3U Generator";
- dlg.buttons = "OK|Cancel";
- dlg.choices = DOpus.NewVector("2", "3", "4", "5", "6", "7", "8", "9", "10")
- dlg.selection = 0
- ret = dlg.show;
- if (ret == 0)
- {
- return;
- }
- var chosenOutput = dlg.choices(dlg.selection);
- switch (chosenOutput){
- case '2':
- var chosenNumber = 2;
- break;
- case '3':
- var chosenNumber = 3;
- break;
- case '4':
- var chosenNumber = 4;
- break;
- case '5':
- var chosenNumber = 5;
- break;
- case '6':
- var chosenNumber = 6;
- break;
- case '7':
- var chosenNumber = 7;
- break;
- case '8':
- var chosenNumber = 8;
- break;
- case '9':
- var chosenNumber = 9;
- break;
- case '10':
- var chosenNumber = 10;
- break;
- }
- var x = totalNumberOfFiles / chosenNumber;
- var totalCDs = Math.floor(x);
- if ((totalNumberOfFiles % chosenNumber) !== 0)
- {
- totalCDs = Math.floor(x) + 1;
- totalNumberOfFiles = totalNumberOfFiles + 10;
- }
- var m3uName;
- function createCD(currentCDNumber)
- {
- var getCdNumber = numberCDS(currentCDNumber);
- if (currentCDNumber <= totalCDs)
- {
- m3uName = audiobookFolderName + "_CD" + getCdNumber + ".m3u";
- return m3uName;
- }
- }
- fso = new ActiveXObject("Scripting.FileSystemObject");
- var i = 0;
- var k = 1;
- do {
- for(incrementbyChosen = 0; incrementbyChosen <= totalNumberOfFiles; incrementbyChosen += chosenNumber)
- {
- createCD(k);
- if (k * chosenNumber == incrementbyChosen)
- {
- if (typeof m3uName !== "undefined")
- {
- f1 = fso.CreateTextFile(audiobookFolderPath + "\\" + m3uName, ForWriting);
- }
- for (i; i < objFiles.length && i < incrementbyChosen; i++)
- {
- if (objFiles[i] != null)
- {
- f1.Write((objFiles[i].name) + '\r');
- }
- }
- }
- }
- k++;
- } while (k <= totalCDs);
- {
- delete objFiles;
- }
- delete objEnum;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement