mirror of
https://github.com/JefferyHcool/BiliNote.git
synced 2026-05-07 06:22:45 +08:00
- 新增 Celery 配置文件 celery_app.py - 创建 note_tasks.py 文件,定义生成笔记的 Celery 任务 - 修改 note_router,使用 Celery 任务异步处理笔记生成 - 重构 bili_downloader 和 youtube_downloader,支持多质量选择和错误处理 - 更新 .env.example,添加 Celery 配置项
28 lines
855 B
Python
28 lines
855 B
Python
# app/tasks/note_tasks.py
|
|
import os
|
|
import json
|
|
|
|
|
|
from app.services.note import NoteGenerator
|
|
from app.core.celery_app import celery_app
|
|
from dataclasses import asdict
|
|
from app.enmus.note_enums import DownloadQuality
|
|
from app.utils.note_helper import save_note_to_file
|
|
|
|
NOTE_OUTPUT_DIR = "note_results"
|
|
|
|
@celery_app.task(name="generate_note_task")
|
|
def generate_note_task(task_id: str, video_url: str, platform: str, quality: str, link: bool = False, screenshot: bool = False):
|
|
try:
|
|
note = NoteGenerator().generate(
|
|
video_url=video_url,
|
|
platform=platform,
|
|
quality=DownloadQuality(quality),
|
|
task_id=task_id,
|
|
link=link,
|
|
screenshot=screenshot
|
|
)
|
|
save_note_to_file(task_id, note)
|
|
except Exception as e:
|
|
save_note_to_file(task_id, {"error": str(e)})
|