codimd-to-gitlab-sync/src/db.py

64 lines
1.4 KiB
Python

import json
from os.path import exists
from typing import List
db_filename = "db.json"
def init_db():
file_exists = exists(db_filename)
if not file_exists:
print("Initializing json file database")
with open(db_filename, "w") as db_file:
db_file.write("{}")
init_db()
def _load_db():
with open(db_filename, "r") as db_file:
db = json.loads(db_file.read())
return db
def _save_db(db):
with open(db_filename, "w") as db_file:
db_file.write(json.dumps(db))
def get_latest_sync_time() -> int:
db = _load_db()
return db.get("latest_sync_time", 0)
def set_latest_sync_time(le_date) -> None:
db = _load_db()
db["latest_sync_time"] = le_date
_save_db(db)
def add_discovered_file(file_url) -> List[str]:
db = _load_db()
discovered_files = set(db.get("discovered_files", []))
discovered_files.add(file_url)
discovered_files = list(discovered_files)
db["discovered_files"] = discovered_files
_save_db(db)
return discovered_files
def get_discovered_files() -> List[str]:
db = _load_db()
discovered_files = set(db.get("discovered_files", []))
return discovered_files
def add_valid_file(filename, metadata):
db = _load_db()
valid_files = db.get("valid_files", {})
valid_files[filename] = metadata
db["valid_files"] = valid_files
_save_db(db)
return valid_files