From c41f3a028688910e1ccb4c6449c0be7f946321a4 Mon Sep 17 00:00:00 2001 From: venus Date: Wed, 4 Mar 2026 23:22:54 -0600 Subject: [PATCH] implemented public vault initialization --- app/__init__.py | 7 ++++--- app/build.py | 36 ++++++++++++++++++------------------ 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index bb5293a..344d23a 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -9,10 +9,11 @@ vault_path = os.getenv("VAULT_PATH", "/vault") # Optional default value app = Flask(__name__) -CONTENT_DIR = Path("/content") -VAULT_DIR = "/vault" +PRIVATE_VAULR_DIR = Path("/content") +PUBLIC_VAULT_DIR = "/vault" -build.obsidian_vault(VAULT_DIR) +build.obsidian_vault(VAULT_DIR) # initialize the private obsidian repo +build.public_vault(VAULT_DIR) # initialize the public notes from the private repo @app.route("/") def index(): diff --git a/app/build.py b/app/build.py index 69e4d8f..fd2ad7e 100644 --- a/app/build.py +++ b/app/build.py @@ -17,42 +17,42 @@ def html_file(filename: str, contentPath: Path): #renders markwown from filename htmlContent = markdown.markdown(textContent) return htmlContent + def obsidian_vault(dest = "/vault"): # makes sure there is a vault in dest from git import Repo url = os.getenv("OBSIDIAN_VAULT_URL") token = os.getenv("OBSIDIAN_VAULT_TOKEN") - - - if token: - print ("token found") + if not(token): + print ("token not found, cant build vault") + raise NameError("tokenNotFound") + return 0 url = f"https://{token}@{url}" - if os.path.exists(os.path.join(dest, '.git')): + #TODO handle merge conflictsjjj print (f"pulling vault from {url} in {dest}") repo = Repo(dest) origin = repo.remotes.origin - origin.pull() + origin.fetch() + origin.pull(strategy_option='theirs') + print ("vault updated") return 1 print (f"building vault from {url} in {dest}") Repo.clone_from(url, dest) - print("finished vault!") + print("cloned vault!") return 1 def public_notes(src: str): # return a list of notes tagged with public from an obsidian directory - # build vault from source + # build vault object from source vault = Vault(src) - if vault: - print ("found vault") - else: + if not(vault): print("could not find vault") + raise NameError("vaultNotFound") return [] - - # return a list ofnotes + # return a list of notes return vault.get_notes_with_tag("public") - -# def public_vault(dest: str, url = "", token = ""): # build the public vault in dest from an obsidian repo in src - # for note in public_notes(src): - # print(note.title) - # shutil.copy2(f"{note.path}", dest) +def public_vault(dest: str): # build the public vault in dest from an obsidian repo in src + for note in public_notes(src): + print(note.title) + shutil.copy2(f"{note.path}", dest)