mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-05 06:39:33 +08:00
fix(search): keep provider complexity within ratchet
This commit is contained in:
@@ -68,6 +68,24 @@ async def _async_wait_for_site_request(site: SiteIndexer) -> None:
|
||||
await asyncio.sleep(delay)
|
||||
|
||||
|
||||
def _search_site_page(
|
||||
owner: "SearchProviderOwner",
|
||||
*,
|
||||
site: SiteIndexer,
|
||||
keyword: str,
|
||||
media_type: Optional[MediaType],
|
||||
page: int,
|
||||
) -> List[TorrentInfo]:
|
||||
"""等待站点预约后执行一页同步搜索,避免增加 owner 的复杂度。"""
|
||||
_wait_for_site_request(site)
|
||||
return owner.search_site_torrents(
|
||||
site=site,
|
||||
keyword=keyword,
|
||||
mtype=media_type,
|
||||
page=page,
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class ProviderBatch:
|
||||
"""一次 provider 页完成后发布的统一事实。"""
|
||||
@@ -163,18 +181,11 @@ class SearchProviderOwner(_SearchOwnerBase):
|
||||
) -> None:
|
||||
"""向进程共享线程 owner 提交一页,并登记该站点的续页位置。"""
|
||||
page_number = search_pages[page_index]
|
||||
|
||||
def search_site_page() -> List[TorrentInfo]:
|
||||
_wait_for_site_request(site)
|
||||
return self.search_site_torrents(
|
||||
site=site,
|
||||
keyword=search_keyword,
|
||||
mtype=media_type,
|
||||
page=page_number,
|
||||
)
|
||||
|
||||
future = ThreadHelper().submit(
|
||||
search_site_page,
|
||||
_search_site_page,
|
||||
self,
|
||||
site=site, keyword=search_keyword,
|
||||
media_type=media_type, page=page_number,
|
||||
)
|
||||
pending[future] = (site, page_index, page_number)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user