Last active
August 29, 2015 14:27
-
-
Save maimainoue/7c22eeff3c197998ff89 to your computer and use it in GitHub Desktop.
mediatoolsから toc 読み取り
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
MEDIATOOLS.readMediaTools = function(drive,cb) { | |
var command = 'mediatools.exe drive '+drive+' toc upc isrc'; | |
exec(command,function(err,stdout,stderr){ | |
//if (!err) throw err; // mediatoolsは成功時にerrorcodeを返す? | |
if( stdout.match( /Unable to retrieve TOC/ ) ) { | |
throw err; | |
} | |
MEDIATOOLS.parseMediaTools(stdout,cb); | |
}); | |
return ; | |
} | |
/* | |
parse | |
*/ | |
MEDIATOOLS.parseMediaTools = function(rawdata,cb) { | |
var discInfo = {}; | |
mtdata = rawdata.replace(/\r/g, ''); | |
var TOCs = mtdata | |
.findString('TOC START\n','\nTOC END','') | |
.replace(/\n/g, '\r\n','') | |
; | |
discInfo.track = new Array(); | |
TOCs.split('\r\n').forEach( function (value) { | |
var toc = value.split('\t'); | |
var track = {}; | |
track.start = toc[1].toInt(); | |
track.len = toc[2].toInt(); | |
track.time = toc[3]; | |
discInfo.track.push(track); | |
}); | |
discInfo.trackCount = discInfo.track.length; | |
var ISRCs = mtdata | |
.replace(/\r/g, '','') | |
.findString('ISRCS STARTS\n','\nISRCS END','') | |
.replace(/\n/g, '\r\n','') | |
; | |
ISRCs.split('\r\n').forEach( function (value) { | |
var toc = value.split('\t'); | |
var trackindex = toc[1].toInt(); | |
discInfo.track[--trackindex].isrc = toc[2]; | |
}); | |
var EAN = mtdata | |
.replace(/\r/g, '','') | |
.findString('UPC STARTS','UPC ENDS','') | |
.replace(/\n/g, '','') | |
.replace(/\r/g, '','') | |
; | |
if( EAN != '' ) { | |
discInfo.catalog = EAN; | |
} | |
cb(discInfo,rawdata); | |
return ; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment