mirror of
https://github.com/zadam/trilium.git
synced 2025-01-31 03:19:11 +08:00
sync fixes etc., push/pull sync is now working in basic form
This commit is contained in:
parent
297da47b34
commit
a2f0a372a5
6 changed files with 38 additions and 17 deletions
2
app.js
2
app.js
|
@ -48,7 +48,7 @@ app.use((req, res, next) => {
|
|||
next();
|
||||
});
|
||||
|
||||
app.use(bodyParser.json());
|
||||
app.use(bodyParser.json({limit: '50mb'}));
|
||||
app.use(bodyParser.urlencoded({extended: false}));
|
||||
app.use(cookieParser());
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
|
|
|
@ -10,11 +10,14 @@ router.get('/:full_load_time', auth.checkApiAuth, async (req, res, next) => {
|
|||
|
||||
const browserId = req.get('x-browser-id');
|
||||
|
||||
const count = await sql.getSingleResult("SELECT COUNT(*) AS 'count' FROM audit_log WHERE browser_id != ? " +
|
||||
"AND date_modified >= ?", [browserId, fullLoadTime])['count'];
|
||||
const row = await sql.getSingleResult("SELECT COUNT(*) AS 'count' FROM audit_log WHERE (browser_id IS NULL OR browser_id != ?) " +
|
||||
"AND date_modified >= ?", [browserId, fullLoadTime]);
|
||||
|
||||
console.log("SELECT COUNT(*) AS 'count' FROM audit_log WHERE (browser_id IS NULL OR browser_id != ?) " +
|
||||
"AND date_modified >= ?");
|
||||
|
||||
res.send({
|
||||
'changed': count > 0
|
||||
'changed': row.count > 0
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -9,5 +9,6 @@ module.exports = {
|
|||
CHANGE_PARENT: 'PARENT',
|
||||
ENCRYPTION: 'ENCRYPTION',
|
||||
CHANGE_PASSWORD: 'PASSWORD',
|
||||
SETTINGS: 'SETTINGS'
|
||||
SETTINGS: 'SETTINGS',
|
||||
SYNC: 'SYNC'
|
||||
};
|
|
@ -6,6 +6,10 @@ const fs = require('fs-extra');
|
|||
const dataDir = require('./data_dir');
|
||||
const log = require('./log');
|
||||
|
||||
if (!fs.existsSync(dataDir.BACKUP_DIR)) {
|
||||
fs.mkdirSync(dataDir.BACKUP_DIR, 0o700);
|
||||
}
|
||||
|
||||
async function regularBackup() {
|
||||
const now = utils.nowTimestamp();
|
||||
const last_backup_date = parseInt(await sql.getOption('last_backup_date'));
|
||||
|
@ -22,10 +26,6 @@ async function backupNow() {
|
|||
|
||||
const date_str = new Date().toISOString().substr(0, 19);
|
||||
|
||||
if (!fs.existsSync(dataDir.BACKUP_DIR)) {
|
||||
fs.mkdirSync(dataDir.BACKUP_DIR, 0o700);
|
||||
}
|
||||
|
||||
const backupFile = dataDir.BACKUP_DIR + "/" + "backup-" + date_str + ".db";
|
||||
|
||||
fs.copySync(dataDir.DOCUMENT_PATH, backupFile);
|
||||
|
|
|
@ -82,8 +82,10 @@ async function addAudit(category, req=null, noteId=null, changeFrom=null, change
|
|||
log.info("audit: " + category + ", browserId=" + browserId + ", noteId=" + noteId + ", from=" + changeFrom
|
||||
+ ", to=" + changeTo + ", comment=" + comment);
|
||||
|
||||
await execute("INSERT INTO audit_log (date_modified, category, browser_id, note_id, change_from, change_to, comment)"
|
||||
+ " VALUES (?, ?, ?, ?, ?, ?, ?)", [now, category, browserId, noteId, changeFrom, changeTo, comment]);
|
||||
const id = utils.randomToken(14);
|
||||
|
||||
await execute("INSERT INTO audit_log (id, date_modified, category, browser_id, note_id, change_from, change_to, comment)"
|
||||
+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?)", [id, now, category, browserId, noteId, changeFrom, changeTo, comment]);
|
||||
}
|
||||
|
||||
async function deleteRecentAudits(category, req, noteId) {
|
||||
|
|
|
@ -5,8 +5,10 @@ const rp = require('request-promise');
|
|||
const sql = require('./sql');
|
||||
const migration = require('./migration');
|
||||
const utils = require('./utils');
|
||||
const config = require('./config');
|
||||
const audit_category = require('./audit_category');
|
||||
|
||||
const SYNC_SERVER = 'http://localhost:3000';
|
||||
const SYNC_SERVER = config['Sync']['syncServerHost'];
|
||||
|
||||
|
||||
let syncInProgress = false;
|
||||
|
@ -81,7 +83,7 @@ async function pushSync() {
|
|||
});
|
||||
}
|
||||
|
||||
await sql.setOption('last_synced_pull', syncStarted);
|
||||
await sql.setOption('last_synced_push', syncStarted);
|
||||
}
|
||||
|
||||
async function sync() {
|
||||
|
@ -139,12 +141,16 @@ async function putChanged(changed) {
|
|||
|
||||
log.info("Update/sync audit_log for noteId=" + audit.note_id);
|
||||
}
|
||||
|
||||
if (changed.tree.length > 0 || changed.audit_log.length > 0) {
|
||||
await sql.addAudit(audit_category.SYNC);
|
||||
}
|
||||
}
|
||||
|
||||
async function putNote(note) {
|
||||
await sql.insert("notes", note.detail, true);
|
||||
|
||||
await sql.remove("images", node.detail.note_id);
|
||||
await sql.remove("images", note.detail.note_id);
|
||||
|
||||
for (const image of note.images) {
|
||||
await sql.insert("images", image);
|
||||
|
@ -156,13 +162,22 @@ async function putNote(note) {
|
|||
await sql.insert("notes_history", history);
|
||||
}
|
||||
|
||||
await sql.addAudit(audit_category.SYNC);
|
||||
|
||||
log.info("Update/sync note " + note.detail.note_id);
|
||||
}
|
||||
|
||||
setInterval(sync, 60000);
|
||||
if (SYNC_SERVER) {
|
||||
log.info("Setting up sync");
|
||||
|
||||
// kickoff initial sync immediately
|
||||
setTimeout(sync, 1000);
|
||||
setInterval(sync, 60000);
|
||||
|
||||
// kickoff initial sync immediately
|
||||
setTimeout(sync, 1000);
|
||||
}
|
||||
else {
|
||||
log.info("Sync server not configured, sync timer not running.")
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getChangedSince,
|
||||
|
|
Loading…
Reference in a new issue