微观短剧

This commit is contained in:
Harold
2026-04-29 14:18:36 +08:00
parent d2094f5016
commit b1449c242e
3 changed files with 81 additions and 7 deletions
+61 -2
View File
@@ -18,15 +18,15 @@ class TestDuanjuYouxuanSpider(unittest.TestCase):
def test_home_content_has_active_platforms(self):
content = self.spider.homeContent(False)
ids = [c["type_id"] for c in content["class"]]
self.assertEqual(ids, ["七猫", "星芽", "星星", "西饭", "锦鲤", "红果", "短剧网"])
self.assertEqual(ids, ["七猫", "星芽", "星星", "西饭", "锦鲤", "红果", "微观", "短剧网"])
self.assertNotIn("七星", ids)
self.assertNotIn("围观", ids)
def test_home_content_has_filters(self):
content = self.spider.homeContent(False)
self.assertIn("七猫", content["filters"])
self.assertIn("星星", content["filters"])
self.assertIn("锦鲤", content["filters"])
self.assertIn("微观", content["filters"])
self.assertIn("短剧网", content["filters"])
self.assertEqual(content["filters"]["锦鲤"][0]["key"], "area")
@@ -49,6 +49,11 @@ class TestDuanjuYouxuanSpider(unittest.TestCase):
self.assertEqual(result["parse"], 0)
self.assertEqual(result["url"], "push://pan.quark.cn/abc")
def test_player_weiguan_passthrough(self):
result = self.spider.playerContent("1080P", "https://media.example.com/1080.mp4", {})
self.assertEqual(result["parse"], 0)
self.assertEqual(result["url"], "https://media.example.com/1080.mp4")
@patch.object(Spider, "_post_json")
def test_category_jinli(self, mock_post_json):
mock_post_json.return_value = {
@@ -98,6 +103,25 @@ class TestDuanjuYouxuanSpider(unittest.TestCase):
self.assertEqual(result["list"][0]["vod_id"], "红果@b1")
self.assertEqual(result["page"], 1)
@patch.object(Spider, "_post_json")
def test_category_weiguan(self, mock_post_json):
mock_post_json.return_value = {
"data": [
{
"oneId": "wg1",
"title": "重生后我爆锤渣男",
"horzPoster": "http://pic/w1.jpg",
"episodeCount": "72集",
}
]
}
result = self.spider.categoryContent("微观", "1", False, {"area": "逆袭"})
self.assertEqual(len(result["list"]), 1)
self.assertEqual(result["list"][0]["vod_id"], "微观@wg1")
self.assertEqual(result["list"][0]["vod_pic"], "http://pic/w1.jpg")
self.assertIn("version_code=1500", mock_post_json.call_args.args[0])
self.assertEqual(mock_post_json.call_args.kwargs["body"]["subject"], "逆袭")
@patch.object(Spider, "_get_text")
def test_category_duanjuwang(self, mock_get_text):
mock_get_text.return_value = """
@@ -168,6 +192,40 @@ class TestDuanjuYouxuanSpider(unittest.TestCase):
self.assertIn("第1集$v1", vod["vod_play_url"])
self.assertIn("第2集$v2", vod["vod_play_url"])
@patch.object(Spider, "_get_json")
def test_detail_weiguan(self, mock_get_json):
mock_get_json.return_value = {
"title": "重生后我爆锤渣男",
"vertPoster": "http://pic/wg.jpg",
"description": "剧情简介",
"data": [
{
"playOrder": "第1集",
"videoClarityList": [
{"name": "1080P", "url": "https://media.example.com/1-1080.mp4"},
{"name": "720P", "url": "https://media.example.com/1-720.mp4"},
],
},
{
"playOrder": "第2集",
"videoClarityList": [
{"name": "1080P", "url": "https://media.example.com/2-1080.mp4"},
],
},
],
}
result = self.spider.detailContent(["微观@wg1"])
vod = result["list"][0]
self.assertEqual(vod["vod_name"], "重生后我爆锤渣男")
self.assertEqual(vod["vod_play_from"], "1080P$$$720P")
self.assertEqual(
vod["vod_play_url"],
"第1集$https://media.example.com/1-1080.mp4#第2集$https://media.example.com/2-1080.mp4"
"$$$第1集$https://media.example.com/1-720.mp4",
)
self.assertIn("oneId=wg1", mock_get_json.call_args.args[0])
self.assertIn("queryAll=true", mock_get_json.call_args.args[0])
@patch.object(Spider, "_get_text")
def test_detail_duanjuwang(self, mock_get_text):
mock_get_text.return_value = """
@@ -214,6 +272,7 @@ class TestDuanjuYouxuanSpider(unittest.TestCase):
def test_filter_defaults(self):
self.assertEqual(self.spider.filter_defaults["锦鲤"]["area"], "")
self.assertEqual(self.spider.filter_defaults["星星"]["area"], "1287")
self.assertEqual(self.spider.filter_defaults["微观"]["area"], "")
self.assertEqual(self.spider.filter_defaults["短剧网"]["area"], "1")
def test_identify_disk(self):