返回 douyin-downloader
mix_strategy.py
根目录 / core / user_modes / mix_strategy.py
1 from __future__ import annotations
2
3 from typing import Any, Dict, List
4
5 from core.user_modes.base_strategy import BaseUserModeStrategy
6
7
8 class MixUserModeStrategy(BaseUserModeStrategy):
9 mode_name = "mix"
10 api_method_name = "get_user_mix"
11
12 async def collect_items(self, sec_uid: str, user_info: Dict[str, Any]) -> List[Dict[str, Any]]:
13 raw_items = await self._collect_paged_aweme(sec_uid, user_info)
14 aweme_items = [
15 a for item in raw_items if (a := self._extract_aweme_from_item(item)) is not None
16 ]
17 if aweme_items:
18 return aweme_items
19
20 return await self._expand_metadata_items(
21 raw_items,
22 id_field="mix_id",
23 id_aliases=["mixId"],
24 fetch_method_name="get_mix_aweme",
25 )
26
26 lines PYTHON