mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-01 13:40:54 +08:00
fix: avoid none search keyword for haidan
This commit is contained in:
@@ -97,10 +97,11 @@ class HaiDanSpider:
|
||||
else:
|
||||
search_area = '0'
|
||||
|
||||
# urllib.urlencode 会把 None 编码成字面量 "None",空关键词浏览时必须显式传空字符串。
|
||||
return __dict_to_query({
|
||||
"isapi": "1",
|
||||
"search_area": search_area, # 0-标题 1-简介(较慢)3-发种用户名 4-IMDb
|
||||
"search": keyword,
|
||||
"search": keyword or "",
|
||||
"search_mode": "0", # 0-与 1-或 2-精准
|
||||
"cat": categories
|
||||
})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from urllib.parse import parse_qs, urlparse
|
||||
|
||||
from app.modules.indexer.spider import SiteSpider
|
||||
from app.modules.indexer.spider.haidan import HaiDanSpider
|
||||
from app.schemas.types import MediaType
|
||||
|
||||
|
||||
@@ -30,6 +31,15 @@ def _get_search_url(indexer: dict, keyword: str | list[str], mtype: MediaType =
|
||||
return spider._SiteSpider__get_search_url()
|
||||
|
||||
|
||||
def _get_haidan_params(keyword: str | None, mtype: MediaType = None) -> dict:
|
||||
"""
|
||||
调用 HaiDanSpider 私有参数构造逻辑,避免真实请求站点。
|
||||
"""
|
||||
spider = HaiDanSpider(indexer={"domain": "https://www.haidan.video/", "name": "海胆"})
|
||||
params = parse_qs(spider._HaiDanSpider__get_params(keyword, mtype), keep_blank_values=True)
|
||||
return {key: values[0] for key, values in params.items()}
|
||||
|
||||
|
||||
def test_eastgame_imdb_search_uses_imdb_area():
|
||||
"""
|
||||
TLF 支持 IMDb ID 搜索时应使用站点配置的 IMDb 搜索区域。
|
||||
@@ -154,3 +164,13 @@ def test_ttg_title_search_does_not_format_keyword():
|
||||
query = parse_qs(urlparse(_get_search_url(indexer, "The Movie", MediaType.MOVIE)).query)
|
||||
|
||||
assert query["search_field"] == ["The Movie 分类:电影DVDRip"]
|
||||
|
||||
|
||||
def test_haidan_empty_keyword_uses_blank_search_value():
|
||||
"""
|
||||
海胆空关键词浏览不能把 Python None 编码进 search 参数。
|
||||
"""
|
||||
params = _get_haidan_params(None)
|
||||
|
||||
assert params["search"] == ""
|
||||
assert params["search_area"] == "0"
|
||||
|
||||
Reference in New Issue
Block a user