mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-30 18:05:55 +01:00 
			
		
		
		
	some tweaks mainly for electron support
This commit is contained in:
		
							
								
								
									
										16
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								app.js
									
									
									
									
									
								
							| @@ -10,6 +10,7 @@ const os = require('os'); | ||||
| const options = require('./services/options'); | ||||
| const log = require('./services/log'); | ||||
| const utils = require('./services/utils'); | ||||
| const sql = require('./services/sql'); | ||||
|  | ||||
| const dataDir = require('./services/data_dir'); | ||||
| const sessionSecret = require('./services/session_secret'); | ||||
| @@ -17,6 +18,15 @@ const sessionSecret = require('./services/session_secret'); | ||||
| const db = require('sqlite'); | ||||
|  | ||||
| db.open(dataDir.DOCUMENT_PATH, { Promise }).then(async () => { | ||||
|     const tableResults = await sql.getResults("SELECT name FROM sqlite_master WHERE type='table' AND name='notes'"); | ||||
|  | ||||
|     console.log(tableResults); | ||||
|  | ||||
|     if (tableResults.length !== 1) { | ||||
|         console.log("No connection to initialized DB."); | ||||
|         process.exit(1); | ||||
|     } | ||||
|  | ||||
|     if (!await options.getOption('document_id')) { | ||||
|         await options.setOption('document_id', utils.randomString(32)); | ||||
|     } | ||||
| @@ -24,7 +34,11 @@ db.open(dataDir.DOCUMENT_PATH, { Promise }).then(async () => { | ||||
|     if (!await options.getOption('document_secret')) { | ||||
|         await options.setOption('document_secret', utils.randomSecureToken(32)); | ||||
|     } | ||||
| }); | ||||
| }) | ||||
|     .catch(e => { | ||||
|         console.log("Error connecting to DB.", e); | ||||
|         process.exit(1); | ||||
|     }); | ||||
|  | ||||
| const app = express(); | ||||
|  | ||||
|   | ||||
							
								
								
									
										5
									
								
								build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								build.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| ./node_modules/.bin/electron-packager . --out=dist --platform=linux,win32 --overwrite | ||||
|  | ||||
| #./node_modules/.bin/electron-installer-debian --src dist/trilium-linux-x64/ --dest dist/installers/ --arch amd64 | ||||
							
								
								
									
										56
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,20 +1,28 @@ | ||||
| { | ||||
|   "name": "trilium", | ||||
|   "description": "Trilium", | ||||
|   "version": "0.0.1", | ||||
|   "private": true, | ||||
|   "scripts": { | ||||
|     "start": "node ./bin/www", | ||||
|     "test-electron": "xo", | ||||
|     "start-electron": "electron .", | ||||
|     "build-electron": "electron-packager . --out=dist --asar --overwrite --all" | ||||
|     "build-electron": "electron-packager . --out=dist --asar --overwrite --all", | ||||
|     "start-forge": "electron-forge start", | ||||
|     "package-forge": "electron-forge package", | ||||
|     "make-forge": "electron-forge make", | ||||
|     "publish-forge": "electron-forge publish" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "electron-compile": "^6.4.2", | ||||
|     "electron-squirrel-startup": "^1.0.0", | ||||
|     "body-parser": "~1.18.2", | ||||
|     "cookie-parser": "~1.4.3", | ||||
|     "debug": "~3.1.0", | ||||
|     "ejs": "~2.5.7", | ||||
|     "electron": "^1.7.9", | ||||
|     "electron": "^1.8.2-beta.1", | ||||
|     "electron-debug": "^1.0.0", | ||||
|     "electron-forge": "^4.1.2", | ||||
|     "electron-rebuild": "^1.6.0", | ||||
|     "express": "~4.16.2", | ||||
|     "express-session": "^1.15.6", | ||||
| @@ -34,7 +42,49 @@ | ||||
|     "devtron": "^1.1.0", | ||||
|     "electron-packager": "^8.0.0", | ||||
|     "electron": "^1.6.6", | ||||
|     "xo": "^0.18.0" | ||||
|     "xo": "^0.18.0", | ||||
|     "babel-plugin-transform-async-to-generator": "^6.24.1", | ||||
|     "babel-preset-env": "^1.6.1", | ||||
|     "babel-preset-react": "^6.24.1", | ||||
|     "electron-forge": "^4.1.2", | ||||
|     "electron-prebuilt-compile": "1.7.9", | ||||
|     "eslint": "^3.19.0", | ||||
|     "eslint-config-airbnb": "^15.1.0", | ||||
|     "eslint-plugin-import": "^2.8.0", | ||||
|     "eslint-plugin-jsx-a11y": "^5.1.1", | ||||
|     "eslint-plugin-react": "^7.4.0" | ||||
|   }, | ||||
|   "config": { | ||||
|     "forge": { | ||||
|       "make_targets": { | ||||
|         "win32": [ | ||||
|           "squirrel" | ||||
|         ], | ||||
|         "darwin": [ | ||||
|           "zip" | ||||
|         ], | ||||
|         "linux": [ | ||||
|           "deb", | ||||
|           "rpm" | ||||
|         ] | ||||
|       }, | ||||
|       "electronPackagerConfig": { | ||||
|         "packageManager": "npm" | ||||
|       }, | ||||
|       "electronWinstallerConfig": { | ||||
|         "name": "trilium" | ||||
|       }, | ||||
|       "electronInstallerDebian": {}, | ||||
|       "electronInstallerRedhat": {}, | ||||
|       "github_repository": { | ||||
|         "owner": "", | ||||
|         "name": "" | ||||
|       }, | ||||
|       "windowsStoreConfig": { | ||||
|         "packageName": "", | ||||
|         "name": "trilium" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "xo": { | ||||
|     "envs": [ | ||||
|   | ||||
| @@ -1,9 +1,10 @@ | ||||
| "use strict"; | ||||
|  | ||||
| const migration = require('./migration'); | ||||
| const utils = require('./utils'); | ||||
|  | ||||
| async function checkAuth(req, res, next) { | ||||
|     if (!req.session.loggedIn) { | ||||
|     if (!req.session.loggedIn && !utils.isElectron()) { | ||||
|         res.redirect("login"); | ||||
|     } | ||||
|     else if (await migration.isDbUpToDate()) { | ||||
| @@ -15,7 +16,7 @@ async function checkAuth(req, res, next) { | ||||
| } | ||||
|  | ||||
| async function checkAuthWithoutMigration(req, res, next) { | ||||
|     if (!req.session.loggedIn) { | ||||
|     if (!req.session.loggedIn && !utils.isElectron()) { | ||||
|         res.redirect("login"); | ||||
|     } | ||||
|     else { | ||||
| @@ -24,7 +25,7 @@ async function checkAuthWithoutMigration(req, res, next) { | ||||
| } | ||||
|  | ||||
| async function checkApiAuth(req, res, next) { | ||||
|     if (!req.session.loggedIn) { | ||||
|     if (!req.session.loggedIn && !utils.isElectron()) { | ||||
|         res.status(401).send("Not authorized"); | ||||
|     } | ||||
|     else if (await migration.isDbUpToDate()) { | ||||
| @@ -36,7 +37,7 @@ async function checkApiAuth(req, res, next) { | ||||
| } | ||||
|  | ||||
| async function checkApiAuthWithoutMigration(req, res, next) { | ||||
|     if (!req.session.loggedIn) { | ||||
|     if (!req.session.loggedIn && !utils.isElectron()) { | ||||
|         res.status(401).send("Not authorized"); | ||||
|     } | ||||
|     else { | ||||
|   | ||||
| @@ -170,4 +170,4 @@ module.exports = { | ||||
|     updateNote, | ||||
|     addNoteAudits, | ||||
|     deleteNote | ||||
| } | ||||
| }; | ||||
| @@ -225,7 +225,22 @@ async function sync() { | ||||
|             }; | ||||
|         } | ||||
|  | ||||
|         const syncContext = await login(); | ||||
|         try { | ||||
|             const syncContext = await login(); | ||||
|         } | ||||
|         catch (e) { | ||||
|             if (e.message.indexOf('ECONNREFUSED') !== -1) { | ||||
|                 logSync("No connection to sync server."); | ||||
|  | ||||
|                 return { | ||||
|                     success: false, | ||||
|                     message: "No connection to sync server." | ||||
|                 }; | ||||
|             } | ||||
|             else { | ||||
|                 throw e; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         await pushSync(syncContext); | ||||
|  | ||||
| @@ -261,8 +276,6 @@ function logSyncError(message, e) { | ||||
|         completeMessage += ", inner exception: " + e.stack; | ||||
|     } | ||||
|  | ||||
|     log.info(completeMessage); | ||||
|  | ||||
|     throw new Error(completeMessage); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -44,6 +44,10 @@ function browserId(req) { | ||||
|     return req.get('x-browser-id'); | ||||
| } | ||||
|  | ||||
| function isElectron() { | ||||
|     return !!process.versions['electron']; | ||||
| } | ||||
|  | ||||
| module.exports = { | ||||
|     randomSecureToken, | ||||
|     randomString, | ||||
| @@ -52,5 +56,6 @@ module.exports = { | ||||
|     toBase64, | ||||
|     fromBase64, | ||||
|     hmac, | ||||
|     browserId | ||||
|     browserId, | ||||
|     isElectron | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user