move
Diff
parser.js | 53 -----------------------------------------------------
src/parser.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
test/ffmpeg.js | 11 +++++++++++
test/parser_test.js | 2 +-
4 files changed, 65 insertions(+), 54 deletions(-)
@@ -1,53 +1,0 @@
var colors = require('mocha/lib/reporters/base').colors;
colors['pass'] = '30;42';
const TS_REGEX = /((\d{1,2}:)?\d{1,2}:\d{1,2})/;
const getArtistTitle = require('get-artist-title');
var _options = {};
var filterTimestamp = function(line) {
return TS_REGEX.test(line);
};
var parseTimeStamp = function(line) {
let matches = line.match(TS_REGEX);
return {
timestamp: matches[0],
text: matches.input,
};
};
var parseTitle = function(obj) {
let i = obj.text.indexOf(obj.timestamp);
let left = obj.text.substr(0, i);
let right = obj.text.substr(i + obj.timestamp.length);
let title = left.length > right.length ? left : right;
title = title.trim();
return Object.assign({ title: title }, obj);
};
var parseArtist = function(obj) {
let [artist, title] = getArtistTitle(obj.title, {
defaultArtist: _options.artist,
});
return Object.assign({ artist: artist, title: title }, obj);
};
module.exports = {
parse: function(text, options = { artist: 'Unknown' }) {
_options = options;
return text
.split('\n')
.filter(filterTimestamp)
.map(parseTimeStamp)
.map(parseTitle)
.map(parseArtist);
},
};
@@ -1,0 +1,53 @@
var colors = require('mocha/lib/reporters/base').colors;
colors['pass'] = '30;42';
const TS_REGEX = /((\d{1,2}:)?\d{1,2}:\d{1,2})/;
const getArtistTitle = require('get-artist-title');
var _options = {};
var filterTimestamp = function(line) {
return TS_REGEX.test(line);
};
var parseTimeStamp = function(line) {
let matches = line.match(TS_REGEX);
return {
timestamp: matches[0],
text: matches.input,
};
};
var parseTitle = function(obj) {
let i = obj.text.indexOf(obj.timestamp);
let left = obj.text.substr(0, i);
let right = obj.text.substr(i + obj.timestamp.length);
let title = left.length > right.length ? left : right;
title = title.trim();
return Object.assign({ title: title }, obj);
};
var parseArtist = function(obj) {
let [artist, title] = getArtistTitle(obj.title, {
defaultArtist: _options.artist,
});
return Object.assign({ artist: artist, title: title }, obj);
};
module.exports = {
parse: function(text, options = { artist: 'Unknown' }) {
_options = options;
return text
.split('\n')
.filter(filterTimestamp)
.map(parseTimeStamp)
.map(parseTitle)
.map(parseArtist);
},
};
@@ -1,0 +1,11 @@
var assert = require('assert');
var ffmpeg = require('../src/ffmpeg');
describe('ffmpeg', function() {
describe('setup', function() {
it('should figure out if ffmpeg is installed', function() {
assert.equal(parser.parse(TEXT).length, 3);
});
});
});
@@ -1,6 +1,6 @@
var assert = require('assert');
var parser = require('../parser');
var parser = require('../src/parser');
const TEXT = `
00:40 The Coders - Hello World