const configManager = require('./configManager');
|
|
|
|
const recursive = require('./recursiveTraversal');
|
|
|
|
const filepreview = require('filepreview');
|
|
|
|
const fs = require('fs');
|
|
|
|
var privateVideos = null;
|
|
|
|
var publicVideos = null;
|
|
|
|
module.exports =
|
|
{
|
|
indexVideos: function(rootDir, videos, templateKey)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
recursive(rootDir, function (err, files)
|
|
{
|
|
console.log(files);
|
|
files.forEach(file =>
|
|
{
|
|
var splitArray = file.split('/');
|
|
var name = splitArray[splitArray.length -1];
|
|
const icon = './icon/' + templateKey + '/' + name + ".png";
|
|
if (!fs.existsSync(icon))
|
|
{
|
|
var options = {
|
|
width: 200,
|
|
quality: 50
|
|
};
|
|
|
|
filepreview.generate(file, icon, options,function(error) {
|
|
if (error) {
|
|
return console.log(error);
|
|
}
|
|
console.log('File preview is located ' + icon);
|
|
});
|
|
}
|
|
videos.push({name: file.replace(rootDir, '')});
|
|
});
|
|
resolve();
|
|
});
|
|
}).catch(function(error)
|
|
{
|
|
console.log(error);
|
|
})
|
|
},
|
|
|
|
getVideosForTemplate: function(templateContext, templateKey)
|
|
{
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
var videos, rootDir;
|
|
if(templateKey === "public")
|
|
{
|
|
videos = publicVideos;
|
|
rootDir = configManager.getPublicDirectory();
|
|
}
|
|
else
|
|
{
|
|
videos = privateVideos;
|
|
rootDir = configManager.getRootDirectory();
|
|
}
|
|
|
|
if(videos === null)
|
|
{
|
|
videos = [];
|
|
module.exports.indexVideos(rootDir, videos, templateKey)
|
|
.then(function()
|
|
{
|
|
templateContext[templateKey] = videos;
|
|
if(templateKey === "public")
|
|
publicVideos = videos;
|
|
else
|
|
privateVideos = videos;
|
|
resolve();
|
|
})
|
|
}
|
|
else
|
|
{
|
|
templateContext[templateKey] = videos;
|
|
resolve();
|
|
}
|
|
})
|
|
},
|
|
|
|
isPublicVideo: function(videoName)
|
|
{
|
|
if(publicVideos == null)
|
|
{
|
|
publicVideos = [];
|
|
rootDir = configManager.getPublicDirectory();
|
|
module.exports.indexVideos(rootDir, publicVideos, "public").then(function()
|
|
{
|
|
for(var i = 0; i < publicVideos.length; i++)
|
|
{
|
|
const splitArray = publicVideos[i].name.split('/');
|
|
const name = splitArray[splitArray.length -1];
|
|
|
|
if(name === videoName)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
}
|
|
else
|
|
{
|
|
for(var i = 0; i < publicVideos.length; i++)
|
|
{
|
|
const splitArray = publicVideos[i].name.split('/');
|
|
const name = splitArray[splitArray.length -1];
|
|
|
|
if(name === videoName)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
};
|