douyin_search_tikhub.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. """通过 TikHub 搜索一页抖音视频并自动保存。"""
  2. from __future__ import annotations
  3. import asyncio
  4. import os as os
  5. import httpx as httpx
  6. from agents.find_agent.support.douyin_search_tikhub import (
  7. _douyin_search_tikhub_raw,
  8. _ensure_env_loaded as _ensure_env_loaded,
  9. _wait_rate_limit as _wait_rate_limit,
  10. )
  11. from agents.find_agent.support.search_persistence import persist_search_payload
  12. from supply_agent.tools import tool
  13. @tool
  14. async def douyin_search_tikhub(
  15. run_id: str,
  16. keyword: str,
  17. query_reason: str,
  18. source_type: str,
  19. source_value: str | None = None,
  20. parent_search_id: int | None = None,
  21. page_no: int = 1,
  22. content_type: str = "视频",
  23. sort_type: str = "综合排序",
  24. publish_time: str = "不限",
  25. cursor: int = 0,
  26. filter_duration: str = "不限",
  27. search_id: str = "",
  28. backtrace: str = "",
  29. min_duration_seconds: int = 0,
  30. timeout: float | None = None,
  31. ) -> str:
  32. """使用 TikHub 搜索一页抖音视频,返回基础信息、数据库 ID 和分页状态。"""
  33. result = await _douyin_search_tikhub_raw(
  34. keyword=keyword,
  35. content_type=content_type,
  36. sort_type=sort_type,
  37. publish_time=publish_time,
  38. cursor=cursor,
  39. filter_duration=filter_duration,
  40. search_id=search_id,
  41. backtrace=backtrace,
  42. min_duration_seconds=min_duration_seconds,
  43. timeout=timeout,
  44. )
  45. return await asyncio.to_thread(
  46. persist_search_payload,
  47. result,
  48. run_id=run_id,
  49. keyword=keyword,
  50. query_reason=query_reason,
  51. source_type=source_type,
  52. source_value=source_value,
  53. parent_search_id=parent_search_id,
  54. cursor=str(cursor),
  55. page_no=page_no,
  56. provider="tikhub",
  57. content_type=content_type,
  58. sort_type=sort_type,
  59. publish_time=publish_time,
  60. provider_state={"search_id": search_id, "backtrace": backtrace},
  61. )