diff --git a/services/API/v1.js b/services/API/v1.js index f831bae7..3cf4182c 100644 --- a/services/API/v1.js +++ b/services/API/v1.js @@ -122,7 +122,7 @@ app.get(/^\/api\/scene\/(.*)$/, (req,res,next)=>{ */ app.get("/api/scenes/", function(req,res,next){ - res.send( Core.maat.getPublicScenes() ); + res.send( Core.Maat.getPublicScenes() ); //next(); }); @@ -136,7 +136,7 @@ app.get("/api/scenes/", function(req,res,next){ * @apiSuccess {Array} list List of scenes */ app.get("/api/keywords", (req,res)=>{ - let kk = Core.maat.getScenesKeywords(); + let kk = Core.Maat.getScenesKeywords(); res.send(kk); }); @@ -151,7 +151,7 @@ app.get("/api/keywords", (req,res)=>{ app.get("/api/keyword/:kw", (req,res)=>{ let kw = req.params.kw; - let R = Core.maat.getScenesByKeyword(kw); + let R = Core.Maat.getScenesByKeyword(kw); res.send(R); }); @@ -173,7 +173,7 @@ app.get("/api/keyword/:kw/own", (req,res)=>{ let uid = req.user.username; let kw = req.params.kw; - let R = Core.maat.getScenesByKeyword(kw, uid); + let R = Core.Maat.getScenesByKeyword(kw, uid); res.send(R); }); @@ -483,13 +483,13 @@ app.get("/api/scenes/own/", (req,res,next)=>{ } /* if (req.user.admin){ - res.send( Core.maat.getAllScenes() ); + res.send( Core.Maat.getAllScenes() ); return; } */ let uname = req.user.username; - res.send( Core.maat.getUserScenes(uname) ); + res.send( Core.Maat.getUserScenes(uname) ); //next(); }); @@ -516,7 +516,7 @@ app.get("/api/c/models/", (req,res,next)=>{ let uname = req.user.username; - res.send( Core.maat.getUserModels(uname) ); + res.send( Core.Maat.getUserModels(uname) ); //next(); }); @@ -538,7 +538,7 @@ app.get("/api/c/panoramas/", (req,res,next)=>{ let uname = req.user.username; - res.send( Core.maat.getUserPanoramas(uname) ); + res.send( Core.Maat.getUserPanoramas(uname) ); //next(); }); @@ -559,7 +559,7 @@ app.get("/api/c/media/", (req,res,next)=>{ let uname = req.user.username; - res.send( Core.maat.getUserMedia(uname) ); + res.send( Core.Maat.getUserMedia(uname) ); //next(); }); @@ -578,7 +578,7 @@ app.get("/api/c/media/", (req,res,next)=>{ * @apiSuccess {Array} list List of web-apps */ app.get("/api/wapps/", (req,res,next)=>{ - let wapps = Core.maat.getApps(); + let wapps = Core.Maat.getApps(); res.send(wapps); }); @@ -768,7 +768,7 @@ app.get("/api/stats", (req,res)=>{ return; } - res.send( Core.maat.getStats() ); + res.send( Core.Maat.getStats() ); }); }; diff --git a/services/API/v2.js b/services/API/v2.js index 79dbfc70..2cde188e 100644 --- a/services/API/v2.js +++ b/services/API/v2.js @@ -45,8 +45,8 @@ API.init = (app)=>{ let keyword = req.query.k; let R; - if (keyword) R = Core.maat.getScenesByKeyword(keyword); - else R = Core.maat.getPublicScenes(); + if (keyword) R = Core.Maat.getScenesByKeyword(keyword); + else R = Core.Maat.getPublicScenes(); res.send( R ); // TODO: handle pagination }); @@ -69,8 +69,8 @@ API.init = (app)=>{ let keyword = req.query.k; let R; - if (keyword) R = Core.maat.getScenesByKeyword(keyword, uname); - else R = Core.maat.getUserScenes(uname); + if (keyword) R = Core.Maat.getScenesByKeyword(keyword, uname); + else R = Core.Maat.getUserScenes(uname); res.send( R ); }); @@ -233,7 +233,7 @@ API.init = (app)=>{ return; } - res.send( Core.maat.getUserModels(uname) ); + res.send( Core.Maat.getUserModels(uname) ); }); // Asset Injector (TODO) @@ -267,7 +267,7 @@ API.init = (app)=>{ let uname = req.user.username; - res.send( Core.maat.getUserPanoramas(uname) ); + res.send( Core.Maat.getUserPanoramas(uname) ); }); // Media list @@ -279,7 +279,7 @@ API.init = (app)=>{ let uname = req.user.username; - res.send( Core.maat.getUserMedia(uname) ); + res.send( Core.Maat.getUserMedia(uname) ); }); /*=============================== diff --git a/services/Auth.js b/services/Auth.js index d7e4d3a5..b0eedb81 100644 --- a/services/Auth.js +++ b/services/Auth.js @@ -85,7 +85,7 @@ Auth.setupPassport = ()=>{ Auth._findByUsername = (username, cb)=>{ process.nextTick( function(){ // Load - Core.users = Core.maat.getUsers(); //Core.loadConfigFile("users.json", Core.CONF_USERS); + Core.users = Core.Maat.getUsers(); //Core.loadConfigFile("users.json", Core.CONF_USERS); let numUsers = Core.users.length; @@ -102,7 +102,7 @@ Auth._findByUsername = (username, cb)=>{ // Passport utility Auth._findById = (id, cb)=>{ process.nextTick(()=>{ - Core.users = Core.maat.getUsers(); //Core.loadConfigFile("users.json", Core.CONF_USERS); + Core.users = Core.Maat.getUsers(); //Core.loadConfigFile("users.json", Core.CONF_USERS); if (Core.users[id]) cb(null, Core.users[id]); else cb( new Error('User ' + id + ' does not exist') ); diff --git a/services/Core.js b/services/Core.js index 1170166e..92ee7b45 100644 --- a/services/Core.js +++ b/services/Core.js @@ -56,9 +56,10 @@ Core.DIR_SCENES = path.join(Core.DIR_DATA,"scenes/"); //path.join(Core.D Core.DIR_EXAMPLES = path.join(Core.DIR_PUBLIC,"examples/"); Core.DIR_FLARES = path.join(Core.DIR_CONFIG,"flares/"); //path.join(Core.DIR_PUBLIC,"custom/flares/"); Core.STD_SCENEFILE = "scene.json"; -Core.STD_PUBFILE = "pub.txt"; +Core.STD_PUBFILE = "pub.txt"; // deprecated Core.STD_COVERFILE = "cover.png"; +// Unused Core.STATUS_COMPLETE = "complete"; Core.STATUS_PROCESSING = "processing"; @@ -79,7 +80,7 @@ Core.COLLECTIONS_GLOB_OPTS = { // Modules setup Core.realizeBaseAPI = BaseAPI; //Core.passport = passport; // set configured passport -Core.maat = Maat; +Core.Maat = Maat; // LOG Utils Core.logGreen = (str)=>{ @@ -284,7 +285,7 @@ Core.init = ()=>{ } } - Core.maat.init(); + Core.Maat.init(); // Directly from config Core.FEScripts = []; @@ -478,12 +479,12 @@ Core.getSceneJSONPath = (sid)=>{ let jsonfile = path.join( Core.getSceneFolder(sid), Core.STD_SCENEFILE); return jsonfile; }; -/* + +// Deprecated Core.getPubFilePath = (sid)=>{ let pubfile = path.join( Core.getSceneFolder(sid), Core.STD_PUBFILE); return pubfile; }; -*/ // Check if scene exists on disk Core.existsScene = (sid)=>{; diff --git a/services/processors/SceneProcessor.js b/services/processors/SceneProcessor.js new file mode 100644 index 00000000..8936c19f --- /dev/null +++ b/services/processors/SceneProcessor.js @@ -0,0 +1,66 @@ +/*! + @preserve + + Scene Processor + Utilities for batch processing scenes + + @author Bruno Fanini + VHLab, CNR ISPC + +==================================================================================*/ +const fs = require('fs'); +const fsExtra = require('fs-extra'); + +const fg = require("fast-glob"); + +const deleteKey = require('key-del'); +const commandLineArgs = require('command-line-args'); +const path = require('path'); + +let Core = require("../Core.js"); + + +// Command-line +const optDefs = [ + { name: 'fixvis', type: Boolean } +]; + + +let SceneProcessor = {}; + +SceneProcessor.args = commandLineArgs(optDefs); + +SceneProcessor.run = ()=>{ + if (!SceneProcessor.args) return; + + Core.Maat.init(); + + if (SceneProcessor.args.fixvis) SceneProcessor.fixVisibilityForAllScenes(); + +}; + +// Use to upgrade visibility from old (pubfile) to new approach +SceneProcessor.fixVisibilityForAllScenes = ()=>{ + let scenes = Core.Maat.getAllScenes(); + //console.log(scenes); + + for (let s in scenes){ + let S = scenes[s]; + + let pubfile = Core.getPubFilePath(S.sid); + if (fs.existsSync(pubfile)){ + console.log(S) + let J = Core.applySceneEdit(S.sid, { visibility: 1 }, "ADD"); + } + } +}; + +//TODO: bulk scenes from items +SceneProcessor.createFromModelsFolder = (user, folder)=>{ + let fullpath = Core.DIR_COLLECTIONS + user + "/" + folder; + +}; + +SceneProcessor.run(); + +module.exports = SceneProcessor; \ No newline at end of file