Matrix mxid lookup: paginate Cloudron users API (25/page) — was missing page 2+

This commit is contained in:
inference-bot committed 2026-10-02 13:03:14 -06:00
1 parent f86ead8653
commit 29823e87d5
1 file changed
+15 -4
+15 -4
View File
@@ -902,14 +902,25 @@ async def matrix_member_mxids(client: httpx.AsyncClient):
"""
extra = [m.strip() for m in os.environ.get("MATRIX_EXTRA_MXIDS", "").split(",") if m.strip()]
seen: set[str] = set()
# Cloudron paginates /api/v1/users at 25/page — walk every page.
users: dict[str, str] = {}
page = 1
while True:
r = await client.get(
f"{CLOUDRON_API}/api/v1/users",
params={"page": page},
headers=cloudron_headers(),
)
users = (
{u["email"].lower(): u["username"] for u in r.json().get("users", [])}
if r.status_code == 200 else {}
)
if r.status_code != 200:
logger.warning("Cloudron users lookup page %s failed: %s", page, r.status_code)
break
batch = r.json().get("users", [])
for u in batch:
if u.get("email") and u.get("username"):
users[u["email"].lower()] = u["username"]
if len(batch) < 25:
break
page += 1
for email in await get_active_member_emails():
username = users.get(email.lower())
if username: