Files
autoclip/backend/schemas/bilibili.py
T
Kris Ka 8ee2d50044 修复WebSocket进度更新和前端状态自动更新问题
- 修复WebSocketNotificationService.send_processing_progress方法参数不匹配问题
- 修复前端RealTimeStatus组件WebSocket消息处理逻辑
- 修复Celery Worker队列配置,确保任务正确路由到processing队列
- 修复Celery应用导入冲突,统一使用正确的celery_app配置
- 添加实时项目状态更新功能,前端无需手动刷新即可看到处理进度
- 完善系统启动脚本,修复PYTHONPATH未绑定变量错误
- 优化流水线处理逻辑,确保所有6个步骤正常执行
- 添加完整的项目文档和启动指南

测试结果:
- WebSocket进度更新正常工作(16%, 33%, 100%)
- 流水线处理完全正常(6个步骤全部成功)
- 前端状态自动更新正常
- 项目状态正确同步到数据库
2025-09-08 17:21:31 +08:00

85 lines
2.1 KiB
Python

"""
B站相关Schema
"""
from pydantic import BaseModel, Field
from typing import Optional, List
from uuid import UUID
from datetime import datetime
class BilibiliAccountCreate(BaseModel):
"""创建B站账号"""
username: str = Field(default="qr_login", description="用户名")
password: str = Field(default="", description="密码")
nickname: Optional[str] = Field(None, description="昵称")
cookie_content: str = Field(..., description="cookie文件内容")
class BilibiliAccountResponse(BaseModel):
"""B站账号响应"""
id: UUID
username: str
nickname: Optional[str]
status: str
is_default: bool
created_at: datetime
class Config:
from_attributes = True
class QRLoginRequest(BaseModel):
"""二维码登录请求"""
nickname: Optional[str] = Field(None, description="昵称")
class QRLoginResponse(BaseModel):
"""二维码登录响应"""
session_id: str
status: str
message: str
class UploadRequest(BaseModel):
"""投稿请求"""
clip_ids: List[str] = Field(..., description="要投稿的切片ID列表")
account_id: UUID = Field(..., description="使用的账号ID")
title: str = Field(..., description="标题")
description: str = Field(..., description="描述")
tags: List[str] = Field(default=[], description="标签列表")
partition_id: int = Field(..., description="分区ID")
sub_partition_id: Optional[int] = Field(None, description="子分区ID(可选)")
class UploadRecordResponse(BaseModel):
"""投稿记录响应"""
id: UUID
project_id: UUID
account_id: UUID
clip_id: str
title: str
description: str
tags: str
partition_id: int
bvid: Optional[str]
status: str
error_message: Optional[str]
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
class UploadStatusResponse(BaseModel):
"""投稿状态响应"""
id: UUID
status: str
bvid: Optional[str]
error_message: Optional[str]
created_at: datetime
class Config:
from_attributes = True