Spaces:
Running on Zero
Running on Zero
| """Usage telemetry, written as one event per file to the billingsmoore/stui-usage | |
| HuggingFace dataset (private). Tracks uploads, translations, and edits so we can | |
| study how the app is actually used; users can opt out per-session in Settings. | |
| Each event is an independent commit (no shared index to read-modify-write), | |
| so concurrent sessions never race each other. Fails open (returns False / | |
| no-op and logs a warning) if HF_TOKEN isn't set, the dataset repo doesn't | |
| exist yet, or the network call fails — usage logging must never break the | |
| translation workflow. | |
| """ | |
| import json | |
| import os | |
| import uuid | |
| from datetime import datetime, timezone | |
| DATASET_REPO_ID = "billingsmoore/stui-usage" | |
| def _hf_token() -> str | None: | |
| return os.environ.get("HF_TOKEN") or None | |
| def _ensure_dataset(token: str) -> None: | |
| from huggingface_hub import HfApi | |
| HfApi(token=token).create_repo( | |
| repo_id=DATASET_REPO_ID, repo_type="dataset", private=True, exist_ok=True, | |
| ) | |
| def log_event(event_type: str, session_id: str, payload: dict) -> bool: | |
| """Write one usage event. Returns True on success, False if skipped/failed.""" | |
| token = _hf_token() | |
| if not token or not session_id: | |
| return False | |
| try: | |
| from huggingface_hub import CommitOperationAdd, HfApi | |
| _ensure_dataset(token) | |
| now = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") | |
| record = { | |
| "event": event_type, | |
| "session_id": session_id, | |
| "timestamp": now, | |
| **payload, | |
| } | |
| path_in_repo = f"events/{session_id}/{now}_{event_type}_{uuid.uuid4().hex[:8]}.json" | |
| HfApi(token=token).create_commit( | |
| repo_id=DATASET_REPO_ID, | |
| repo_type="dataset", | |
| operations=[ | |
| CommitOperationAdd( | |
| path_in_repo=path_in_repo, | |
| path_or_fileobj=json.dumps(record, ensure_ascii=False, indent=2).encode("utf-8"), | |
| ), | |
| ], | |
| commit_message=f"{event_type} event ({session_id})", | |
| ) | |
| return True | |
| except Exception as e: | |
| print(f"[WARN] Could not log usage event {event_type!r}: {e}") | |
| return False | |