From b89e0e04821db952de4e0b30c415e327b7caac93 Mon Sep 17 00:00:00 2001 From: TheSmallHanCat Date: Sun, 14 Dec 2025 17:28:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=85=8D=E7=BD=AE=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=8C=96=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 17 +----- src/core/database.py | 120 ++----------------------------------------- 2 files changed, 6 insertions(+), 131 deletions(-) diff --git a/README.md b/README.md index bbc0e05..d944b70 100644 --- a/README.md +++ b/README.md @@ -13,18 +13,6 @@ --- -## 📋 目录 - -- [功能特性](#功能特性) -- [快速开始](#快速开始) -- [使用指南](#使用指南) - - [快速参考](#快速参考) - - [管理后台](#管理后台) - - [API 调用](#api-调用) - - [视频角色功能](#视频角色功能) -- [许可证](#许可证) - ---- ## ✨ 功能特性 @@ -36,6 +24,7 @@ - 📊 **多尺寸支持** - 横屏、竖屏等多种规格 - 🎭 **视频角色功能** - 创建角色,生成角色视频 - 🎬 **Remix 功能** - 基于已有视频继续创作 +- 🎥 **分镜功能** - 支持生成分镜视频 ### 高级特性 - 🔐 **Token 管理** - 支持多 Token 管理和轮询负载均衡 @@ -435,7 +424,3 @@ for line in response.iter_lines(): --- **⭐ 如果这个项目对你有帮助,请给个 Star!** - -## Star History - -[![Star History Chart](https://api.star-history.com/svg?repos=TheSmallHanCat/sora2api&type=date&legend=top-left)](https://www.star-history.com/#TheSmallHanCat/sora2api&type=date&legend=top-left) diff --git a/src/core/database.py b/src/core/database.py index 260143f..3669b28 100644 --- a/src/core/database.py +++ b/src/core/database.py @@ -440,126 +440,16 @@ class Database: Args: config_dict: Configuration dictionary from setting.toml - is_first_startup: If True, only update if row doesn't exist. If False, always update. + is_first_startup: If True, initialize all config rows from setting.toml. + If False (upgrade mode), only ensure missing config rows exist with default values. """ async with aiosqlite.connect(self.db_path) as db: - # On first startup, ensure all config rows exist with values from setting.toml if is_first_startup: + # First startup: Initialize all config tables with values from setting.toml await self._ensure_config_rows(db, config_dict) - - # Initialize admin config - admin_config = config_dict.get("admin", {}) - error_ban_threshold = admin_config.get("error_ban_threshold", 3) - - # Get admin credentials from global config - global_config = config_dict.get("global", {}) - admin_username = global_config.get("admin_username", "admin") - admin_password = global_config.get("admin_password", "admin") - api_key = global_config.get("api_key", "han1234") - - if not is_first_startup: - # On upgrade, update the configuration - await db.execute(""" - UPDATE admin_config - SET admin_username = ?, admin_password = ?, api_key = ?, error_ban_threshold = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (admin_username, admin_password, api_key, error_ban_threshold)) - - # Initialize proxy config - proxy_config = config_dict.get("proxy", {}) - proxy_enabled = proxy_config.get("proxy_enabled", False) - proxy_url = proxy_config.get("proxy_url", "") - # Convert empty string to None - proxy_url = proxy_url if proxy_url else None - - if is_first_startup: - await db.execute(""" - INSERT OR IGNORE INTO proxy_config (id, proxy_enabled, proxy_url) - VALUES (1, ?, ?) - """, (proxy_enabled, proxy_url)) else: - await db.execute(""" - UPDATE proxy_config - SET proxy_enabled = ?, proxy_url = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (proxy_enabled, proxy_url)) - - # Initialize watermark-free config - watermark_config = config_dict.get("watermark_free", {}) - watermark_free_enabled = watermark_config.get("watermark_free_enabled", False) - parse_method = watermark_config.get("parse_method", "third_party") - custom_parse_url = watermark_config.get("custom_parse_url", "") - custom_parse_token = watermark_config.get("custom_parse_token", "") - - # Convert empty strings to None - custom_parse_url = custom_parse_url if custom_parse_url else None - custom_parse_token = custom_parse_token if custom_parse_token else None - - if is_first_startup: - await db.execute(""" - INSERT OR IGNORE INTO watermark_free_config (id, watermark_free_enabled, parse_method, custom_parse_url, custom_parse_token) - VALUES (1, ?, ?, ?, ?) - """, (watermark_free_enabled, parse_method, custom_parse_url, custom_parse_token)) - else: - await db.execute(""" - UPDATE watermark_free_config - SET watermark_free_enabled = ?, parse_method = ?, custom_parse_url = ?, - custom_parse_token = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (watermark_free_enabled, parse_method, custom_parse_url, custom_parse_token)) - - # Initialize cache config - cache_config = config_dict.get("cache", {}) - cache_enabled = cache_config.get("enabled", False) - cache_timeout = cache_config.get("timeout", 600) - cache_base_url = cache_config.get("base_url", "") - # Convert empty string to None - cache_base_url = cache_base_url if cache_base_url else None - - if is_first_startup: - await db.execute(""" - INSERT OR IGNORE INTO cache_config (id, cache_enabled, cache_timeout, cache_base_url) - VALUES (1, ?, ?, ?) - """, (cache_enabled, cache_timeout, cache_base_url)) - else: - await db.execute(""" - UPDATE cache_config - SET cache_enabled = ?, cache_timeout = ?, cache_base_url = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (cache_enabled, cache_timeout, cache_base_url)) - - # Initialize generation config - generation_config = config_dict.get("generation", {}) - image_timeout = generation_config.get("image_timeout", 300) - video_timeout = generation_config.get("video_timeout", 1500) - - if is_first_startup: - await db.execute(""" - INSERT OR IGNORE INTO generation_config (id, image_timeout, video_timeout) - VALUES (1, ?, ?) - """, (image_timeout, video_timeout)) - else: - await db.execute(""" - UPDATE generation_config - SET image_timeout = ?, video_timeout = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (image_timeout, video_timeout)) - - # Initialize token refresh config - token_refresh_config = config_dict.get("token_refresh", {}) - at_auto_refresh_enabled = token_refresh_config.get("at_auto_refresh_enabled", False) - - if is_first_startup: - await db.execute(""" - INSERT OR IGNORE INTO token_refresh_config (id, at_auto_refresh_enabled) - VALUES (1, ?) - """, (at_auto_refresh_enabled,)) - else: - await db.execute(""" - UPDATE token_refresh_config - SET at_auto_refresh_enabled = ?, updated_at = CURRENT_TIMESTAMP - WHERE id = 1 - """, (at_auto_refresh_enabled,)) + # Upgrade mode: Only ensure missing config rows exist (with default values, not from TOML) + await self._ensure_config_rows(db, config_dict=None) await db.commit()