Accept full wiki URLs, URL slugs, or UUIDs in project monitor config

This commit is contained in:
2026-04-13 15:07:56 +00:00
parent 1ddc2a009c
commit ad06fa2d70
+26 -6
View File
@@ -60,14 +60,34 @@ Things to consider — improvements, risks, opportunities.
"""
def parse_wiki_id(raw_id):
"""Extract a wiki doc/collection ID from a UUID, URL slug, or full URL.
Accepts:
ae11e785-b110-4a86-985d-804f35bf3d7c (UUID)
bVLzs4hbbS (URL slug)
https://wiki.jfamily.io/doc/title-bVLzs4hbbS (full URL)
https://wiki.jfamily.io/collection/name-bVLzs4hbbS (full collection URL)
"""
raw_id = raw_id.strip()
if "/" in raw_id:
# Full URL — grab the last segment after the last dash
last_segment = raw_id.rstrip("/").split("/")[-1]
# URL format is "title-slug" — the slug is after the last dash
if "-" in last_segment:
return last_segment.split("-")[-1]
return last_segment
return raw_id
def fetch_wiki_docs(collection_id=None, doc_ids=None):
"""Fetch wiki documents. Returns combined text content."""
"""Fetch wiki documents recursively. Returns combined text content."""
headers = wiki_headers()
texts = []
if doc_ids:
for doc_id in doc_ids:
doc_id = doc_id.strip()
for raw_id in doc_ids:
doc_id = parse_wiki_id(raw_id)
if not doc_id:
continue
try:
@@ -83,15 +103,15 @@ def fetch_wiki_docs(collection_id=None, doc_ids=None):
texts.append(f"### [Error fetching doc {doc_id}: {e}]")
elif collection_id:
collection_id = parse_wiki_id(collection_id)
try:
result = api_request(
f"{WIKI_API}/documents.list",
data={"collectionId": collection_id, "limit": 25},
data={"collectionId": collection_id, "limit": 50},
headers=headers,
method="POST",
)
for doc in result.get("data", [])[:15]:
# Fetch full content for each (up to limit)
for doc in result.get("data", [])[:25]:
try:
full = api_request(
f"{WIKI_API}/documents.info",