mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	basic backup implementation (in progress)
This commit is contained in:
		
							parent
							
								
									9abb97627c
								
							
						
					
					
						commit
						ee4eca33d4
					
				
							
								
								
									
										1
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								src/backup.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/backup.py
									
									
									
									
									
										Normal file
									
								
							@ -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)
 | 
			
		||||
@ -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, "
 | 
			
		||||
 | 
			
		||||
@ -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()))
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user