mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-16 03:23:54 +08:00
- MTorrentSpider 新增音乐分类(406 Music(音樂)),音乐搜索不再误用电影分类 - HddolbySpider 新增音乐唱片分类(408),演唱会视频(406)不计入音乐 - HaiDanSpider 新增 HQ Audio 音乐分类(408),并修复解析时从响应顶层取 category 恒为空的既有问题 - RousiSpider 支持 music 分类参数与结果标记,分类 ID 映射补充 5->music - SunnyPTSpider 分类映射与结果解析通用支持 music 媒体类型 - 新增对应站点 spider 音乐搜索单测
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
# -*- 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,
|
|
]
|