mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-14 18:24:42 +08:00
- MTorrentSpider 新增音乐分类(406 Music(音樂)),音乐搜索不再误用电影分类 - HddolbySpider 新增音乐唱片分类(408),演唱会视频(406)不计入音乐 - HaiDanSpider 新增 HQ Audio 音乐分类(408),并修复解析时从响应顶层取 category 恒为空的既有问题 - RousiSpider 支持 music 分类参数与结果标记,分类 ID 映射补充 5->music - SunnyPTSpider 分类映射与结果解析通用支持 music 媒体类型 - 新增对应站点 spider 音乐搜索单测
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
import pytest
|
|
|
|
from app.modules.indexer.spider import rousi as rousi_module
|
|
from app.modules.indexer.spider.rousi import RousiSpider
|
|
from app.schemas import MediaType
|
|
|
|
|
|
def _build_indexer() -> dict:
|
|
"""构造 Rousi Pro API Spider 所需的最小站点配置。"""
|
|
return {
|
|
"id": "rousipro",
|
|
"name": "Rousi Pro",
|
|
"domain": "https://rousi.pro/",
|
|
"apikey": "rousi-secret",
|
|
"ua": "MoviePilot-Test",
|
|
"proxy": False,
|
|
}
|
|
|
|
|
|
@pytest.fixture()
|
|
def rousi_spider(monkeypatch):
|
|
"""构造不依赖真实数据库配置的 RousiSpider。"""
|
|
monkeypatch.setattr(rousi_module, "SystemConfigOper", lambda: None)
|
|
return RousiSpider(_build_indexer())
|
|
|
|
|
|
def test_music_search_uses_music_category(rousi_spider):
|
|
"""音乐搜索应提交 Rousi Pro 的 music 分类参数。"""
|
|
params = rousi_spider._RousiSpider__get_params("张学友", MediaType.MUSIC, None, 0)
|
|
|
|
assert params["category"] == "music"
|
|
|
|
|
|
def test_user_selected_music_category_maps_to_api_name(rousi_spider):
|
|
"""用户选择音乐分类 ID 时应映射为 API 的 music 分类名。"""
|
|
params = rousi_spider._RousiSpider__get_params("张学友", None, "5", 0)
|
|
|
|
assert params["category"] == "music"
|
|
|
|
|
|
def test_parse_result_marks_music_torrents(rousi_spider):
|
|
"""music 分类种子应标记为音乐媒体类型。"""
|
|
torrents = rousi_spider._RousiSpider__parse_result([
|
|
{"id": 1, "uuid": "u1", "title": "张学友 - 他在那里 FLAC", "category": "music"},
|
|
{"id": 2, "uuid": "u2", "title": "流浪地球", "category": "movie"},
|
|
{"id": 3, "uuid": "u3", "title": "剧集 S01", "category": {"slug": "tv"}},
|
|
])
|
|
|
|
assert [torrent["category"] for torrent in torrents] == [
|
|
MediaType.MUSIC.value,
|
|
MediaType.MOVIE.value,
|
|
MediaType.TV.value,
|
|
]
|