|
|
- 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;
- }
- }
- };
|