12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- 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):
- title_list = await get_title_filter_word()
- title = video_obj.get("title")
- if not title:
- return
- contains_keyword = any(keyword in title for keyword in title_list)
- if contains_keyword:
- new_title = await GPT4oMini.get_ai_mini_title(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_feishu_data(sheet_id, values)
- async def insert_feishu_data(sheet_id: str,values: List):
- spreadsheet_token = "KsoMsyP2ghleM9tzBfmcEEXBnXg"
- async with FeishuDataAsync() as feishu:
- await feishu.insert_values(spreadsheet_token=spreadsheet_token, sheet_id=sheet_id,ranges="A2:Z2",values=values)
- import re
- def extract_variables(text: str, pattern: str = r"\{\{(\w+)\}\}") -> list:
- """
- 从文本中提取模板变量名
- 参数:
- text: 要分析的文本
- pattern: 正则表达式模式,默认为 "{{变量名}}" 格式
- 返回:
- 提取到的变量名列表
- """
- return re.findall(pattern, text)
- if __name__ == '__main__':
- filter_word = asyncio.run(insert_feishu_data())
- print(filter_word)
|