Fix folder picker window focus and ensure auto-sync of embedded metadata on scan
This commit is contained in:
18
server.py
18
server.py
@@ -1779,7 +1779,7 @@ class Handler(BaseHTTPRequestHandler):
|
||||
|
||||
elif self.path == "/api/choose_folder":
|
||||
try:
|
||||
cmd = ["osascript", "-e", 'POSIX path of (choose folder with prompt "Select Photo Folder to Organize:")']
|
||||
cmd = ["osascript", "-e", 'tell application "System Events" to set frontmost of (first process whose background only is false) to true', "-e", 'POSIX path of (choose folder with prompt "Select Photo Folder to Organize:")']
|
||||
r = subprocess.run(cmd, capture_output=True, timeout=60)
|
||||
if r.returncode == 0:
|
||||
chosen = r.stdout.decode("utf-8").strip()
|
||||
@@ -1787,9 +1787,21 @@ class Handler(BaseHTTPRequestHandler):
|
||||
with S.lock:
|
||||
S.folder = chosen
|
||||
save_folder_config(chosen)
|
||||
self._json({"ok": True, "folder": chosen})
|
||||
images, videos, sidecars = scan_folder(chosen)
|
||||
done = sum(1 for p in images if p in S.done_paths)
|
||||
with S.lock:
|
||||
S.files = images
|
||||
S.total_images = len(images)
|
||||
S.video_files = videos
|
||||
S.skipped_videos = len(videos)
|
||||
S.skipped_sidecars = sidecars
|
||||
S.status = "idle"
|
||||
sync_metadata_from_folder(chosen)
|
||||
load_journal()
|
||||
push_stats()
|
||||
self._json({"ok": True, "folder": chosen, "images": len(images), "videos": len(videos), "alreadyDone": done})
|
||||
return
|
||||
self._json({"error": "No folder selected"}, 400)
|
||||
self._json({"error": "No folder selected or dialog cancelled"}, 400)
|
||||
except Exception as e:
|
||||
self._json({"error": str(e)}, 500)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user