diff --git a/controllers/debug.js b/controllers/debug.js index 1a256b4..1cf5aa0 100644 --- a/controllers/debug.js +++ b/controllers/debug.js @@ -12,9 +12,9 @@ exports.debugQuery = function(req, res) { if (!req.body || !req.body.json) return server.renderView(req, res, 200, 'debug.jade', {}); - var code, codeVer; + var json, code, codeVer; try { - var json = JSON.parse(req.body.json)[0]; + json = JSON.parse(req.body.json)[0]; code = json.code; codeVer = json.metadata.version.toString(); } catch (err) { @@ -25,7 +25,17 @@ exports.debugQuery = function(req, res) { return server.renderView(req, res, 500, 'debug.jade', { err: 'Unrecognized input' }); } - + + if (req.body.Ingest) { + delete req.body.json; + req.body.code = code; + req.body.version = codeVer; + req.body.track = json.metadata.title; + req.body.length = json.metadata.duration; + req.body.artist = json.metadata.artist; + return require('./api').ingest(req, res); + } + fingerprinter.decodeCodeString(code, function(err, fp) { if (err) { log.error('Failed to decode codes for debug query: ' + err); diff --git a/controllers/fingerprinter.js b/controllers/fingerprinter.js index 7718385..41cca71 100644 --- a/controllers/fingerprinter.js +++ b/controllers/fingerprinter.js @@ -308,7 +308,7 @@ function ingest(fp, callback) { '", ' + fp.length + ' seconds, ' + fp.codes.length + ' codes (v' + fp.codever + ')'); - if (!fp.codes.length || !fp.length || !fp.codever) + if (!fp.codes.length || typeof fp.length !== 'number' || !fp.codever) return callback('Missing required track fields', null); fp = cutFPLength(fp, MAX_DURATION); diff --git a/views/debug.jade b/views/debug.jade index a6798ef..fae6d10 100644 --- a/views/debug.jade +++ b/views/debug.jade @@ -37,6 +37,7 @@ html(lang="en") | !{input} br input(type='submit', name='Lookup', value='Lookup') + input(type='submit', name='Ingest', value='Ingest') h2#status table#matches(border=1)