feat: add AAZ音乐 playback support

This commit is contained in:
Harold
2026-04-25 09:02:51 +08:00
parent 713c5d98af
commit f9e563d6ad
2 changed files with 51 additions and 0 deletions
+17
View File
@@ -97,6 +97,9 @@ FOLDER_DETAIL_HTML = """
</body></html>
"""
PLAY_JSON = '{"url":"https://cdn.example.com/aaz/song2001.mp3","pic":"https://cdn.example.com/cover.jpg"}'
EMPTY_PLAY_JSON = '{"url":""}'
class TestAAZMusicSpider(unittest.TestCase):
def setUp(self):
@@ -191,6 +194,20 @@ class TestAAZMusicSpider(unittest.TestCase):
def test_detail_content_returns_empty_list_for_invalid_vod_id(self):
self.assertEqual(self.spider.detailContent(["bad"])["list"], [])
@patch.object(Spider, "fetch")
def test_player_content_resolves_song_id_to_direct_url(self, mock_fetch):
mock_fetch.return_value = SimpleNamespace(status_code=200, text=PLAY_JSON)
result = self.spider.playerContent("AAZ音乐", "song:2001", {})
self.assertEqual(result["parse"], 0)
self.assertEqual(result["url"], "https://cdn.example.com/aaz/song2001.mp3")
self.assertEqual(result["header"]["Referer"], "https://www.aaz.cx/")
@patch.object(Spider, "fetch")
def test_player_content_returns_empty_url_for_invalid_or_empty_payload(self, mock_fetch):
mock_fetch.return_value = SimpleNamespace(status_code=200, text=EMPTY_PLAY_JSON)
self.assertEqual(self.spider.playerContent("AAZ音乐", "song:2001", {})["url"], "")
self.assertEqual(self.spider.playerContent("AAZ音乐", "bad", {})["url"], "")
if __name__ == "__main__":
unittest.main()