12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import asyncio
- from typing import List, Dict
- from datetime import datetime
- from core.utils.feishu_data_async import FeishuDataAsync
- from core.utils.gpt4o_mini_help import GPT4oMini
- async def get_title_filter_word() -> List[str]:
- """
- 获取飞书表配置的标题过滤词
- https://w42nne6hzg.feishu.cn/sheets/KsoMsyP2ghleM9tzBfmcEEXBnXg?sheet=BS9uyu
- :return:
- """
- spreadsheet_token = "KsoMsyP2ghleM9tzBfmcEEXBnXg"
- sheet_id = "BS9uyu"
- async with FeishuDataAsync() as feishu:
- feishu_data = await feishu.get_values(spreadsheet_token=spreadsheet_token, sheet_id=sheet_id)
- return feishu_data[1]
- async def generate_titles(sheet_id: str,video_obj: Dict,logger,aliyun_log):
- title_filter_word = await get_title_filter_word()
- title = video_obj.get("video_title")
- if not title:
- return video_obj
- contains_keyword = any(keyword in title for keyword in title_filter_word)
- logger.info(f"【{title}】标题包含过滤关键词:{contains_keyword}")
- if contains_keyword:
- new_title = await GPT4oMini.get_ai_mini_title(title)
- logger.info(f"生成新的标题:{new_title}")
- video_obj["video_title"] = new_title
- current_time = datetime.now()
- formatted_time = current_time.strftime("%Y-%m-%d %H:%M:%S")
- values = [
- video_obj["v_url"],
- video_obj["url"],
- title,
- new_title,
- formatted_time,
- ]
- await insert_safe_data(sheet_id, values)
- return video_obj
- async def insert_safe_data(sheet_id: str, values: List):
- spreadsheet_token = "U5dXsSlPOhiNNCtEfgqcm1iYnpf"
- async with FeishuDataAsync() as feishu:
- await feishu.insert_values(spreadsheet_token=spreadsheet_token, sheet_id=sheet_id,ranges="A2:Z2",values=values)
- if __name__ == '__main__':
- asyncio.run(insert_safe_data("K0gA9Y", ["1","2","3","4","5"]))
-
|