2022-10-06 20:44:04 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2022-10-06 21:07:26 +00:00
|
|
|
def add_valid_file(filename, metadata) -> bool:
|
|
|
|
"""
|
|
|
|
Returns: Boolean that indicates if the file is newly identified as valid.
|
|
|
|
"""
|
2022-10-06 20:44:04 +00:00
|
|
|
db = _load_db()
|
|
|
|
valid_files = db.get("valid_files", {})
|
2022-10-06 21:07:26 +00:00
|
|
|
new_file = False
|
|
|
|
if filename not in valid_files:
|
|
|
|
new_file = True
|
2022-10-06 20:44:04 +00:00
|
|
|
valid_files[filename] = metadata
|
|
|
|
db["valid_files"] = valid_files
|
|
|
|
_save_db(db)
|
2022-10-06 21:07:26 +00:00
|
|
|
|
|
|
|
return new_file
|