Initial commit: MISF VOB download and upload automation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
c2dec96b1f
43 files changed
+10944
No files matched your search
@@ -0,0 +1,68 @@
|
||||
"""Print config status (no browser). Run: python scripts/validate_config.py"""
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
sys.path.insert(0, str(ROOT / "src"))
|
||||
|
||||
from config import ( # noqa: E402
|
||||
CONFIG_FILE,
|
||||
DEFAULT_PLANNER_URL,
|
||||
EXPECTED_FACILITY_COUNT,
|
||||
credentials_setup_message,
|
||||
missing_onedrive_credentials,
|
||||
read_app_config,
|
||||
read_facility_list,
|
||||
)
|
||||
from totp_utils import validate_totp_secret # noqa: E402
|
||||
|
||||
|
||||
def main() -> int:
|
||||
path = CONFIG_FILE if CONFIG_FILE.exists() else ROOT / "Input" / "input.xlsx.example"
|
||||
if not path.exists():
|
||||
print(f"[FAIL] Missing {path}")
|
||||
print(" copy Input\\input.xlsx.example Input\\input.xlsx")
|
||||
return 1
|
||||
|
||||
cfg = read_app_config(path)
|
||||
missing = missing_onedrive_credentials(
|
||||
cfg.onedrive_username,
|
||||
cfg.onedrive_password,
|
||||
cfg.microsoft_totp_secret,
|
||||
)
|
||||
if missing and path == CONFIG_FILE:
|
||||
print("[FAIL] Credentials not configured:")
|
||||
print(credentials_setup_message(missing))
|
||||
return 1
|
||||
|
||||
try:
|
||||
validate_totp_secret(cfg.microsoft_totp_secret or "JBSWY3DPEHPK3PXP")
|
||||
except ValueError as exc:
|
||||
if cfg.microsoft_totp_secret:
|
||||
print(f"[FAIL] TOTP secret: {exc}")
|
||||
return 1
|
||||
print(f"[WARN] TOTP not set — format check skipped ({exc})")
|
||||
|
||||
facilities = read_facility_list(path, warn_if_not_expected_count=True)
|
||||
planner = cfg.planner_url or DEFAULT_PLANNER_URL
|
||||
if not planner.startswith("https://"):
|
||||
print(f"[FAIL] Planner URL must be https — got: {planner[:80]}")
|
||||
return 1
|
||||
|
||||
print(f"[OK] Config file: {path.name}")
|
||||
if cfg.onedrive_username:
|
||||
print(f"[OK] Credentials set for {cfg.onedrive_username}")
|
||||
else:
|
||||
print("[OK] Template mode (no credentials in example file)")
|
||||
print(f"[OK] Planner URL: {planner[:70]}...")
|
||||
print(f"[OK] PDF folder: {cfg.pdf_folder_path or '(default Input/PDFs)'}")
|
||||
print(f"[OK] {len(facilities)} facilities (expected {EXPECTED_FACILITY_COUNT})")
|
||||
if len(facilities) != EXPECTED_FACILITY_COUNT:
|
||||
print("[WARN] Facility count differs from expected 54 — verify Facilities sheet")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in new issue
Block a user