1
0

main.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/node
  2. const CONFIG = require('./src/config.js');
  3. const path = require('path');
  4. const fs = require('fs');
  5. const Router = require('node-simple-router');
  6. const http = require('http');
  7. const Security = require('./src/security.js');
  8. const RouterUtils = require('./src/routerUtils.js').RouterUtils;
  9. const UPDATE_INTERVAL = 1800000; // 30 min
  10. function App() {
  11. this.router = new Router({ static_route: __dirname+"/static/" });
  12. this.routerUtils = new RouterUtils(this);
  13. this.databaseHelper = require('craftlabhttpserver/src/databaseHelper').DatabaseHelper;
  14. this.libraryManager = require('./src/libraryManager.js').LibraryManager;
  15. }
  16. App.prototype.init = async function() {
  17. [
  18. "./router/bootstrap.js",
  19. "./router/api.js",
  20. "./router/index.js"
  21. ].forEach(i => require(i).register(this));
  22. await this.databaseHelper.init([
  23. require('./model/session.js').SessionModel,
  24. require('./model/mediaItem.js').MediaFileModel,
  25. require('./model/mediaItemMeta.js').MediaFileMetaModel,
  26. require('./model/mediaItemTag.js').MediaFileTagModel,
  27. require('./model/access.js').AccessModel
  28. ]);
  29. }
  30. App.prototype.run = async function() {
  31. http.createServer(this.router).listen(CONFIG.port);
  32. this.libraryManager.updateLibraries(this.databaseHelper);
  33. setInterval(() => { this.libraryManager.updateLibraries(this.databaseHelper); }, UPDATE_INTERVAL);
  34. }
  35. console.info = () => {};
  36. let app = new App();
  37. app.init().then(() => app.run());