43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
"""python -m webapp — launch the Photo Analyzer web UI.
|
|
|
|
Defaults come from photo_analyzer's env (photo_analyzer.env: DB, LIBRARY), so in
|
|
the common case you can just run `python -m webapp`.
|
|
"""
|
|
import argparse
|
|
import os
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
from .server import serve
|
|
|
|
DEFAULT_DB = "photo_analysis.db"
|
|
|
|
|
|
def _env(name, fallback=None):
|
|
v = os.environ.get(name)
|
|
return v if v not in (None, "") else fallback
|
|
|
|
|
|
def main():
|
|
# Reuse photo_analyzer's .env loader so DB/LIBRARY defaults match the CLI.
|
|
try:
|
|
import photo_analyzer as pa
|
|
pa.load_env_file()
|
|
except Exception:
|
|
pass
|
|
|
|
ap = argparse.ArgumentParser(description="Web UI for the photo_analyzer pipeline.")
|
|
ap.add_argument("--db", default=_env("DB", DEFAULT_DB), help=f"SQLite DB (default {DEFAULT_DB})")
|
|
ap.add_argument("--library", default=_env("LIBRARY"), help="Photo library root (for album grouping + run default)")
|
|
ap.add_argument("--no-open", action="store_true", help="Don't open a browser")
|
|
args = ap.parse_args()
|
|
|
|
if not Path(args.db).exists():
|
|
sys.exit(f"DB not found: {args.db} — run photo_analyzer first, or pass --db.")
|
|
|
|
serve(args.db, args.library, open_browser=not args.no_open)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|