const markdownInclude = require('markdown-include') const path = require('path') const glob = require('glob') const fs = require('fs') const rootPath = path.resolve(__dirname) + '/../../' const file = {} file.list = function (include = [], exclude = []) { return new Promise(resolve => { glob('channels/**/*.m3u', function (err, files) { if (include.length) { include = include.map(filename => `channels/${filename}.m3u`) files = files.filter(filename => include.includes(filename)) } if (exclude.length) { exclude = exclude.map(filename => `channels/${filename}.m3u`) files = files.filter(filename => !exclude.includes(filename)) } resolve(files) }) }) } file.getFilename = function (filename) { return path.parse(filename).name } file.createDir = function (dir) { if (!fs.existsSync(dir)) { fs.mkdirSync(dir) } } file.read = function (filename) { return fs.readFileSync(rootPath + filename, { encoding: 'utf8' }) } file.append = function (filename, data) { fs.appendFileSync(rootPath + filename, data) } file.create = function (filename, data = '') { fs.writeFileSync(rootPath + filename, data) } file.compileMarkdown = function (filename) { markdownInclude.compileFiles(rootPath + filename) } module.exports = file