mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-27 23:36:24 +08:00
fix: avoid none search keyword for haidan
This commit is contained in:
@@ -97,10 +97,11 @@ class HaiDanSpider:
|
|||||||
else:
|
else:
|
||||||
search_area = '0'
|
search_area = '0'
|
||||||
|
|
||||||
|
# urllib.urlencode 会把 None 编码成字面量 "None",空关键词浏览时必须显式传空字符串。
|
||||||
return __dict_to_query({
|
return __dict_to_query({
|
||||||
"isapi": "1",
|
"isapi": "1",
|
||||||
"search_area": search_area, # 0-标题 1-简介(较慢)3-发种用户名 4-IMDb
|
"search_area": search_area, # 0-标题 1-简介(较慢)3-发种用户名 4-IMDb
|
||||||
"search": keyword,
|
"search": keyword or "",
|
||||||
"search_mode": "0", # 0-与 1-或 2-精准
|
"search_mode": "0", # 0-与 1-或 2-精准
|
||||||
"cat": categories
|
"cat": categories
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from urllib.parse import parse_qs, urlparse
|
from urllib.parse import parse_qs, urlparse
|
||||||
|
|
||||||
from app.modules.indexer.spider import SiteSpider
|
from app.modules.indexer.spider import SiteSpider
|
||||||
|
from app.modules.indexer.spider.haidan import HaiDanSpider
|
||||||
from app.schemas.types import MediaType
|
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()
|
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():
|
def test_eastgame_imdb_search_uses_imdb_area():
|
||||||
"""
|
"""
|
||||||
TLF 支持 IMDb ID 搜索时应使用站点配置的 IMDb 搜索区域。
|
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)
|
query = parse_qs(urlparse(_get_search_url(indexer, "The Movie", MediaType.MOVIE)).query)
|
||||||
|
|
||||||
assert query["search_field"] == ["The Movie 分类:电影DVDRip"]
|
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