From ee4eca33d402a0fc872eb160f104102f4146eb48 Mon Sep 17 00:00:00 2001 From: azivner Date: Thu, 5 Oct 2017 21:43:39 -0400 Subject: [PATCH] basic backup implementation (in progress) --- TODO | 1 + src/backup.py | 22 ++++++++++++++++++++++ src/tree_api.py | 5 +++-- src/utils.py | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 src/backup.py diff --git a/TODO b/TODO index 8f60bd71f..fdab14966 100644 --- a/TODO +++ b/TODO @@ -12,6 +12,7 @@ New features: - javascript editor - persisted recent notes (is wiped out after reload) - sync of current page? +- create new subnote from inside the editor - possibly with selection of text Refactorings: - modularize frontend diff --git a/src/backup.py b/src/backup.py new file mode 100644 index 000000000..7ac14c31d --- /dev/null +++ b/src/backup.py @@ -0,0 +1,22 @@ +from datetime import datetime + +import utils +from sql import getOption, setOption +import config_provider +from shutil import copyfile + +def backup(): + now = utils.nowTimestamp() + last_backup_date = int(getOption('last_backup_date')) + + if now - last_backup_date > 43200: + config = config_provider.getConfig() + + document_path = config['Document']['documentPath'] + backup_directory = config['Backup']['backupDirectory'] + + date_str = datetime.utcnow().strftime("%Y-%m-%d %H:%M") + + copyfile(document_path, backup_directory + "/" + "backup-" + date_str + ".db") + + setOption('last_backup_date', now) \ No newline at end of file diff --git a/src/tree_api.py b/src/tree_api.py index 44509c37a..6368b9e2b 100644 --- a/src/tree_api.py +++ b/src/tree_api.py @@ -1,19 +1,20 @@ import base64 import os -import math -import time from flask import Blueprint, jsonify from flask_login import login_required from sql import getResults, getSingleResult, getOption import utils +import backup tree_api = Blueprint('tree_api', __name__) @tree_api.route('/api/tree', methods = ['GET']) @login_required def getTree(): + backup.backup() + notes = getResults("select " "notes_tree.*, " "COALESCE(clone.note_title, notes.note_title) as note_title, " diff --git a/src/utils.py b/src/utils.py index 3bbdf40e1..31e7dcbb4 100644 --- a/src/utils.py +++ b/src/utils.py @@ -2,4 +2,4 @@ from datetime import datetime import time def nowTimestamp(): - return time.mktime(datetime.utcnow().timetuple()) + return int(time.mktime(datetime.utcnow().timetuple()))