feat: extend target parsing to support recommendation URLs

This commit is contained in:
wangshaoqing 2026-05-06 17:16:26 +08:00
parent f7374d2088
commit c56c54d35d
2 changed files with 9 additions and 0 deletions

View File

@ -77,6 +77,8 @@ def build_video_page_url(aweme_id: str) -> str:
def parse_target_input(value: str, source: str) -> ResolvedTarget:
normalized = value.strip()
if is_recommendation_url(normalized):
return ResolvedTarget(kind="recommendation", value=normalized, source=source)
if is_creator_url(normalized):
return ResolvedTarget(kind="creator", value=normalized, source=source)
if is_video_url(normalized):

View File

@ -144,6 +144,13 @@ class DouyinModuleTests(unittest.TestCase):
self.assertTrue(module.is_aweme_id("7619989983668240802"))
self.assertFalse(module.is_aweme_id("not-an-aweme-id"))
def test_parse_target_input_classifies_recommendation_url(self) -> None:
module = importlib.import_module("Douyin")
target = module.parse_target_input("https://www.douyin.com/", source="manual")
self.assertEqual(target.kind, "recommendation")
self.assertEqual(target.value, "https://www.douyin.com/")
self.assertEqual(target.source, "manual")
def test_parse_target_input_classifies_creator_url(self) -> None:
module = importlib.import_module("Douyin")
target = module.parse_target_input(