Merge pull request #219 from lukaswozniak/master

Fix for simple m3u playlists parsing
This commit is contained in:
Paul 2019-10-29 17:45:01 -04:00 committed by GitHub
commit f1121995d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 5 deletions

View File

@ -4,7 +4,7 @@ const fe = require("path");
const archiver = require('archiver');
const winston = require('winston');
const mkdirp = require('make-dir');
const m3uread = require('m3u8-reader');
const m3u8Parser = require('m3u8-parser');
const masterFileTypesArray = ["mp3", "flac", "wav", "ogg", "aac", "m4a", "opus", "m3u"];
@ -26,9 +26,15 @@ exports.setup = function(mstream, program) {
}
function readPlaylistSongs(pathString) {
return m3uread(fs.readFileSync(pathString))
.filter(function (item) { return typeof item === "string" })
.map(function (item) { return item.replace(/\\/g, fe.sep) }) // m3u path separated by \
const parser = new m3u8Parser.Parser();
const fileContents = fs.readFileSync(pathString).toString();
parser.push(fileContents);
parser.end();
let items = parser.manifest.segments.map(function (segment) { return segment.uri; });
if (items.length == 0) {
items = fileContents.split(/\r?\n/).filter(Boolean);
}
return items.map(function (item) { return item.replace(/\\/g, "/"); });
}
function handleError(error, res) {

View File

@ -89,7 +89,7 @@
"inquirer-select-directory": "^1.2.0",
"jsonwebtoken": "^8.5.1",
"lokijs": "^1.5.7",
"m3u8-reader": "^1.1.0",
"m3u8-parser": "^4.4.0",
"make-dir": "^3.0.0",
"mime-types": "^2.1.24",
"music-metadata": "^4.8.2",