From 368e946cd16dfa07afea912e3effca3b1db547ec Mon Sep 17 00:00:00 2001 From: starmen1265 Date: Sun, 15 Mar 2026 18:15:32 +0800 Subject: [PATCH] fix(bilibili): avoid nested asyncio.run() in async context BilibiliAdapter._fetch_metadata_with_retry() now calls the underlying async methods directly instead of sync wrappers that use asyncio.run(). This prevents "asyncio.run() cannot be called from a running event loop" error when the adapter is called from within an already-running event loop. Co-Authored-By: Claude Opus 4.6 --- kb_pipeline/platforms/bilibili.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kb_pipeline/platforms/bilibili.py b/kb_pipeline/platforms/bilibili.py index e91acca..fc45196 100644 --- a/kb_pipeline/platforms/bilibili.py +++ b/kb_pipeline/platforms/bilibili.py @@ -170,9 +170,11 @@ class BilibiliAdapter(PlatformAdapter): ValueError: If content_type is not supported """ if content_type == "video": - return self._extractor.extract_video_metadata(content_id) + # Call async method directly to avoid nested asyncio.run() + return await self._extractor._extract_video_async(content_id) elif content_type == "article": - return self._extractor.extract_article_metadata(content_id) + # Call async method directly to avoid nested asyncio.run() + return await self._extractor._extract_article_async(content_id) else: raise ValueError(f"Unsupported content type: {content_type}")