mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
feat(indexer): API 站点支持音乐搜索(馒头/杜比/海胆/Rousi Pro/SunnyPT)
- MTorrentSpider 新增音乐分类(406 Music(音樂)),音乐搜索不再误用电影分类 - HddolbySpider 新增音乐唱片分类(408),演唱会视频(406)不计入音乐 - HaiDanSpider 新增 HQ Audio 音乐分类(408),并修复解析时从响应顶层取 category 恒为空的既有问题 - RousiSpider 支持 music 分类参数与结果标记,分类 ID 映射补充 5->music - SunnyPTSpider 分类映射与结果解析通用支持 music 媒体类型 - 新增对应站点 spider 音乐搜索单测
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import pytest
|
||||
|
||||
from app.modules.indexer.spider import haidan as haidan_module
|
||||
from app.modules.indexer.spider.haidan import HaiDanSpider
|
||||
from app.schemas import MediaType
|
||||
|
||||
|
||||
def _build_indexer() -> dict:
|
||||
"""构造海胆 API Spider 所需的最小站点配置。"""
|
||||
return {
|
||||
"id": "haidan",
|
||||
"name": "海胆之家",
|
||||
"domain": "https://www.haidan.cc/",
|
||||
"cookie": "haidan-cookie",
|
||||
"ua": "MoviePilot-Test",
|
||||
"proxy": False,
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def haidan_spider(monkeypatch):
|
||||
"""构造不依赖真实数据库配置的 HaiDanSpider。"""
|
||||
monkeypatch.setattr(haidan_module, "SystemConfigOper", lambda: None)
|
||||
return HaiDanSpider(_build_indexer())
|
||||
|
||||
|
||||
def test_music_search_uses_music_categories(haidan_spider):
|
||||
"""音乐搜索应只提交海胆 HQ Audio 分区分类。"""
|
||||
params = haidan_spider._HaiDanSpider__get_params("张学友", MediaType.MUSIC)
|
||||
|
||||
assert "cat=408" in params
|
||||
assert "401" not in params
|
||||
|
||||
|
||||
def test_movie_search_keeps_movie_categories(haidan_spider):
|
||||
"""电影搜索行为不受音乐分类新增影响。"""
|
||||
params = haidan_spider._HaiDanSpider__get_params("流浪地球", MediaType.MOVIE)
|
||||
|
||||
assert "cat=401%2C404%2C405" in params or "cat=401,404,405" in params
|
||||
|
||||
|
||||
def test_parse_result_reads_item_category(haidan_spider):
|
||||
"""分类字段取自每条种子,音乐分区应标记为音乐媒体类型。"""
|
||||
result = {
|
||||
"code": 0,
|
||||
"data": {
|
||||
"1": {"name": "张学友 - 他在那里 FLAC", "category": 408, "size": "1024"},
|
||||
"2": {"name": "流浪地球", "category": 401, "size": "1024"},
|
||||
"3": {"name": "剧集 S01", "category": 402, "size": "1024"},
|
||||
},
|
||||
}
|
||||
|
||||
torrents = haidan_spider._HaiDanSpider__parse_result(result)
|
||||
|
||||
assert [torrent["category"] for torrent in torrents] == [
|
||||
MediaType.MUSIC.value,
|
||||
MediaType.MOVIE.value,
|
||||
MediaType.TV.value,
|
||||
]
|
||||
Reference in New Issue
Block a user