Merge pull request #394 from cbcoutinho/news-link
feat(vector-viz): add news_item support for links and chunk expansion
This commit is contained in:
@@ -203,6 +203,8 @@ function vizApp() {
|
|||||||
return `${baseUrl}/apps/contacts`;
|
return `${baseUrl}/apps/contacts`;
|
||||||
case 'deck':
|
case 'deck':
|
||||||
return `${baseUrl}/apps/deck`;
|
return `${baseUrl}/apps/deck`;
|
||||||
|
case 'news_item':
|
||||||
|
return `${baseUrl}/apps/news/item/${result.id}`;
|
||||||
default:
|
default:
|
||||||
return `${baseUrl}`;
|
return `${baseUrl}`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,10 @@
|
|||||||
<input type="checkbox" x-model="docTypes" value="deck" style="margin-right: 4px;">
|
<input type="checkbox" x-model="docTypes" value="deck" style="margin-right: 4px;">
|
||||||
<span>Deck</span>
|
<span>Deck</span>
|
||||||
</label>
|
</label>
|
||||||
|
<label style="display: flex; align-items: center; cursor: pointer; font-weight: normal;">
|
||||||
|
<input type="checkbox" x-model="docTypes" value="news_item" style="margin-right: 4px;">
|
||||||
|
<span>News</span>
|
||||||
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -524,6 +524,26 @@ async def _fetch_document_text(
|
|||||||
f"Error fetching file content for {doc_id}: {e}", exc_info=True
|
f"Error fetching file content for {doc_id}: {e}", exc_info=True
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
elif doc_type == "news_item":
|
||||||
|
# Fetch news item by ID
|
||||||
|
from nextcloud_mcp_server.vector.html_processor import html_to_markdown
|
||||||
|
|
||||||
|
item = await nc_client.news.get_item(int(doc_id))
|
||||||
|
# Reconstruct full content as indexed: title + source + URL + body
|
||||||
|
# This ensures chunk offsets align with indexed content structure
|
||||||
|
body_markdown = html_to_markdown(item.get("body", ""))
|
||||||
|
item_title = item.get("title", "")
|
||||||
|
item_url = item.get("url", "")
|
||||||
|
feed_title = item.get("feedTitle", "")
|
||||||
|
|
||||||
|
content_parts = [item_title]
|
||||||
|
if feed_title:
|
||||||
|
content_parts.append(f"Source: {feed_title}")
|
||||||
|
if item_url:
|
||||||
|
content_parts.append(f"URL: {item_url}")
|
||||||
|
content_parts.append("") # Blank line
|
||||||
|
content_parts.append(body_markdown)
|
||||||
|
return "\n".join(content_parts)
|
||||||
else:
|
else:
|
||||||
logger.warning(f"Unsupported doc_type for context expansion: {doc_type}")
|
logger.warning(f"Unsupported doc_type for context expansion: {doc_type}")
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user