Files
photoanalyzer/webapp/__main__.py

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()