fix: write empty index.json for new users at registration so shard resolves immediately
This commit is contained in:
+10
-3
@@ -286,11 +286,18 @@ async def register(request: Request) -> JSONResponse:
|
|||||||
|
|
||||||
# Create per-user directories
|
# Create per-user directories
|
||||||
dd = _get_data_dir()
|
dd = _get_data_dir()
|
||||||
(dd / handle / "activities").mkdir(parents=True, exist_ok=True)
|
user_dir = dd / handle
|
||||||
(dd / handle / "edits").mkdir(parents=True, exist_ok=True)
|
(user_dir / "activities").mkdir(parents=True, exist_ok=True)
|
||||||
|
(user_dir / "edits").mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
# Write an empty index.json so the shard URL resolves immediately,
|
||||||
|
# even before the user uploads any activities.
|
||||||
|
from bincio.extract.writer import write_index
|
||||||
|
index_path = user_dir / "index.json"
|
||||||
|
if not index_path.exists():
|
||||||
|
write_index([], user_dir, {"handle": handle, "display_name": display or handle})
|
||||||
|
|
||||||
# Update root manifest so the new user's shard is discoverable immediately
|
# Update root manifest so the new user's shard is discoverable immediately
|
||||||
# (Astro dev re-evaluates getStaticPaths() on each request from this file)
|
|
||||||
from bincio.render.cli import _write_root_manifest
|
from bincio.render.cli import _write_root_manifest
|
||||||
_write_root_manifest(dd)
|
_write_root_manifest(dd)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user