Compare commits

...

5 Commits

Author SHA1 Message Date
xiaoxia f1cc1bdcad style: 修复sticker_engine.py格式问题
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 30s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m6s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m21s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m32s
AI Code Review / AI Code Review (pull_request) Successful in 1m10s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m15s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m16s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m4s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m17s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 7m57s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 29s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m17s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m17s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) 失败: CI/CD Pipeline / Validate - Code Quality (pull_request), CI/CD Pipeline / Frontend Unit Tests (pull_request) [fullstack]
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 25s
2026-07-27 07:40:10 +08:00
xiaoxia da0d930a15 style: 修复ProductEmptyState.tsx格式问题 2026-07-27 07:40:08 +08:00
xiaoxia 684638cb23 style: 修复index.ts格式问题 2026-07-27 07:40:06 +08:00
xiaoxia ef26b35869 style: 修复EditingPlanner.tsx格式问题 2026-07-27 07:40:03 +08:00
xiaoxia 62b6f245f0 style: 修复ai_service.py格式问题 2026-07-27 07:40:02 +08:00
5 changed files with 20 additions and 36 deletions
+4 -6
View File
@@ -16,12 +16,10 @@ import json
import logging
from typing import Any, Dict, List, Optional
from packages.domain.ai_parsing import (
generate_titles_fallback as _generate_titles_fallback_base,
keyword_match_fallback as _semantic_match_fallback_base,
parse_semantic_match_response as _parse_semantic_match_base,
parse_titles_from_response as _parse_titles_from_response,
)
from packages.domain.ai_parsing import generate_titles_fallback as _generate_titles_fallback_base
from packages.domain.ai_parsing import keyword_match_fallback as _semantic_match_fallback_base
from packages.domain.ai_parsing import parse_semantic_match_response as _parse_semantic_match_base
from packages.domain.ai_parsing import parse_titles_from_response as _parse_titles_from_response
from packages.shared.ai_client import get_doubao_client
logger = logging.getLogger(__name__)
@@ -90,8 +90,11 @@ const EditingPlanner: React.FC = () => {
}
/* ── 配音素材 ── */
const { voiceMaterials, loading: voiceMaterialsLoading, refetch: refetchVoiceMaterials } =
useVoiceMaterials()
const {
voiceMaterials,
loading: voiceMaterialsLoading,
refetch: refetchVoiceMaterials,
} = useVoiceMaterials()
/* ── 派生计算 ── */
const totalDuration = clips.reduce((sum, c) => sum + c.duration, 0)
@@ -4,21 +4,13 @@
*/
/* 转场 */
export {
type TransitionType,
type TransitionConfig,
DEFAULT_TRANSITION,
} from "./transition"
export { type TransitionType, type TransitionConfig, DEFAULT_TRANSITION } from "./transition"
/* 调速 */
export { type SpeedConfig, DEFAULT_SPEED } from "./speed"
/* TTS 配音 */
export {
type TtsMode,
type TtsConfig,
DEFAULT_TTS_CONFIG,
} from "./tts"
export { type TtsMode, type TtsConfig, DEFAULT_TTS_CONFIG } from "./tts"
/* 裁剪 */
export { type TrimConfig } from "./trim"
@@ -80,11 +72,7 @@ export {
} from "./sticker"
/* 封面 */
export {
type CoverMode,
type CoverConfig,
DEFAULT_COVER_CONFIG,
} from "./cover"
export { type CoverMode, type CoverConfig, DEFAULT_COVER_CONFIG } from "./cover"
/* 片段数据 */
export { type ClipType, type ClipData } from "./clip"
@@ -93,7 +81,4 @@ export { type ClipType, type ClipData } from "./clip"
export { type TitleSettings } from "./title"
/* 字幕样式 */
export {
type SubtitleStyleConfig,
DEFAULT_SUBTITLE_STYLE,
} from "./subtitle"
export { type SubtitleStyleConfig, DEFAULT_SUBTITLE_STYLE } from "./subtitle"
@@ -78,11 +78,7 @@ export const ProductEmptyState: React.FC<ProductEmptyStateProps> = ({
<VideoCameraOutlined />
</div>
<p></p>
<Button
buttonType="primary"
buttonSize="sm"
onClick={() => message.info("跳转到生成页面")}
>
<Button buttonType="primary" buttonSize="sm" onClick={() => message.info("跳转到生成页面")}>
</Button>
</div>
@@ -14,14 +14,16 @@ import logging
from pathlib import Path
from typing import Any
from packages.domain.sticker_config import ( # noqa: F401 向后兼容导出
ImageStickerConfig,
from packages.domain.sticker_config import (
POSITION_PRESETS,
STICKER_CATEGORIES,
ImageStickerConfig,
StickerOverlayResult,
TextStickerConfig,
get_sticker_categories as _get_sticker_categories_base,
parse_stickers_from_config as _parse_stickers_base,
)
from packages.domain.sticker_config import get_sticker_categories as _get_sticker_categories_base # noqa: F401 向后兼容导出
from packages.domain.sticker_config import parse_stickers_from_config as _parse_stickers_base
from packages.domain.sticker_config import (
resolve_sticker_position,
)