helpers.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import asyncio
  2. from typing import List, Dict
  3. from datetime import datetime
  4. from core.utils.feishu_data_async import FeishuDataAsync
  5. from core.utils.gpt4o_mini_help import GPT4oMini
  6. async def get_title_filter_word() -> List[str]:
  7. """
  8. 获取飞书表配置的标题过滤词
  9. https://w42nne6hzg.feishu.cn/sheets/KsoMsyP2ghleM9tzBfmcEEXBnXg?sheet=BS9uyu
  10. :return:
  11. """
  12. spreadsheet_token = "KsoMsyP2ghleM9tzBfmcEEXBnXg"
  13. sheet_id = "BS9uyu"
  14. async with FeishuDataAsync() as feishu:
  15. feishu_data = await feishu.get_values(spreadsheet_token=spreadsheet_token, sheet_id=sheet_id)
  16. return feishu_data[1]
  17. async def generate_titles(sheet_id: str,video_obj: Dict):
  18. title_list = await get_title_filter_word()
  19. title = video_obj.get("title")
  20. if not title:
  21. return
  22. contains_keyword = any(keyword in title for keyword in title_list)
  23. if contains_keyword:
  24. new_title = await GPT4oMini.get_ai_mini_title(title)
  25. current_time = datetime.now()
  26. formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
  27. values = [
  28. video_obj["v_url"],
  29. video_obj["url"],
  30. title,
  31. new_title,
  32. formatted_time,
  33. ]
  34. await insert_feishu_data(sheet_id, values)
  35. async def insert_feishu_data(sheet_id: str,values: List):
  36. spreadsheet_token = "KsoMsyP2ghleM9tzBfmcEEXBnXg"
  37. async with FeishuDataAsync() as feishu:
  38. await feishu.insert_values(spreadsheet_token=spreadsheet_token, sheet_id=sheet_id,ranges="A2:Z2",values=values)
  39. if __name__ == '__main__':
  40. filter_word = asyncio.run(insert_feishu_data())
  41. print(filter_word)