From b77e2d8a7a6447455a6b34c218805311df0a4d0d Mon Sep 17 00:00:00 2001 From: yi <100551693+yi1108@users.noreply.github.com> Date: Mon, 18 May 2026 14:31:54 +0800 Subject: [PATCH] Update 2026-05-18 14:31:53 --- .dockerignore | 5 +- .github/workflows/docker-build.yml | 2 +- .gitignore | 6 +- Dockerfile | 56 +- README.md | 758 +++++------------- backend/.env.example | 12 +- backend/alembic-postgres.ini | 4 +- backend/alembic-sqlite.ini | 2 +- backend/alembic/README | 4 +- backend/app/api/changelog.py | 6 +- backend/app/config.py | 6 +- backend/app/main.py | 6 + backend/app/security.py | 2 +- backend/app/services/ai_service.py | 2 +- .../app/services/cover_generation_service.py | 6 +- backend/scripts/entrypoint.sh | 6 +- backend/scripts/init_postgres.sql | 2 +- backend/scripts/setup_postgres.py | 10 +- docker-compose.yml | 22 +- frontend/.env.example | 2 + frontend/index.html | 3 + frontend/src/App.tsx | 3 - frontend/src/components/AnnouncementModal.tsx | 246 ------ frontend/src/components/AppFooter.tsx | 288 ++----- frontend/src/components/CardStyles.tsx | 22 +- .../components/ChangelogFloatingButton.tsx | 38 - frontend/src/components/ChangelogModal.tsx | 306 ------- .../src/components/CharacterCareerCard.tsx | 2 +- frontend/src/config/version.ts | 9 +- frontend/src/index.css | 48 +- frontend/src/pages/About.tsx | 15 +- frontend/src/pages/AuthCallback.tsx | 176 +--- frontend/src/pages/BookshelfPage.tsx | 120 ++- frontend/src/pages/Login.tsx | 665 ++++----------- frontend/src/pages/ProjectDetail.tsx | 9 +- frontend/src/pages/ProjectList.tsx | 162 ++-- frontend/src/pages/PromptTemplates.tsx | 96 +-- frontend/src/pages/Settings.tsx | 89 +- frontend/src/services/changelogService.ts | 276 ------- frontend/src/services/versionService.ts | 6 +- frontend/src/theme/themeConfig.ts | 121 ++- frontend/src/theme/themeStorage.ts | 16 +- frontend/src/utils/sidebarState.ts | 19 +- images/image-20260518142402652.png | Bin 0 -> 224667 bytes images/image-20260518142411086.png | Bin 0 -> 343162 bytes images/image-20260518142620791.png | Bin 0 -> 171792 bytes images/image-20260518142641345.png | Bin 0 -> 291380 bytes images/image-20260518143108652.png | Bin 0 -> 587837 bytes images/image-20260518143113951.png | Bin 0 -> 221665 bytes images/image-20260518143117651.png | Bin 0 -> 165337 bytes images/image-20260518143121175.png | Bin 0 -> 211902 bytes images/image-20260518143125197.png | Bin 0 -> 193396 bytes images/image-20260518143134898.png | Bin 0 -> 199307 bytes install-termux.sh | 48 +- 54 files changed, 1003 insertions(+), 2699 deletions(-) create mode 100644 frontend/.env.example delete mode 100644 frontend/src/components/AnnouncementModal.tsx delete mode 100644 frontend/src/components/ChangelogFloatingButton.tsx delete mode 100644 frontend/src/components/ChangelogModal.tsx delete mode 100644 frontend/src/services/changelogService.ts create mode 100644 images/image-20260518142402652.png create mode 100644 images/image-20260518142411086.png create mode 100644 images/image-20260518142620791.png create mode 100644 images/image-20260518142641345.png create mode 100644 images/image-20260518143108652.png create mode 100644 images/image-20260518143113951.png create mode 100644 images/image-20260518143117651.png create mode 100644 images/image-20260518143121175.png create mode 100644 images/image-20260518143125197.png create mode 100644 images/image-20260518143134898.png diff --git a/.dockerignore b/.dockerignore index 1edccf1..1bf7efb 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,6 +6,7 @@ __pycache__/ .Python env/ venv/ +.venv/ ENV/ *.egg-info/ dist/ @@ -69,8 +70,8 @@ test/ frontend/dist/ frontend/build/ -# 后端静态文件(会从前端构建阶段复制) -backend/static/ +# 后端静态文件(将从宿主机复制) +# backend/static/ # 提示词工坊实例标识(每个容器需要独立生成) backend/.instance_id diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 3157d58..851faec 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: # 允许手动触发 env: - DOCKER_IMAGE: mumujie/mumuainovel + DOCKER_IMAGE: mumulingsi-project/mumulingsi FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true jobs: diff --git a/.gitignore b/.gitignore index f5830fe..c0d305c 100644 --- a/.gitignore +++ b/.gitignore @@ -81,6 +81,10 @@ backend/data/users.json backend/data/admins.json backend/storage/ +# Project analysis / intermediate docs (do not commit) +.claude/ +.work/ + # Temporary files *.bak *.swp @@ -108,7 +112,7 @@ dmypy.json BUILD_GUIDE.md launcher.py launcher.spec -mumuainovel.md +xinmi.md logo.ico .embed_cache dist_embed/ diff --git a/Dockerfile b/Dockerfile index 96c4bd7..c858b40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,37 +4,7 @@ # 构建参数 ARG USE_CN_MIRROR=false -# 阶段1: 构建前端 -FROM node:22-alpine AS frontend-builder - -ARG USE_CN_MIRROR - -WORKDIR /frontend - -# 复制前端依赖文件 -COPY frontend/package*.json ./ - -# 根据参数决定是否使用国内npm镜像 -RUN if [ "$USE_CN_MIRROR" = "true" ]; then \ - npm config set registry https://registry.npmmirror.com; \ - fi - -# 删除 package-lock.json 以避免因镜像源不一致导致的 404 错误 -RUN rm -f package-lock.json - -# 安装依赖 -RUN npm install - -# 复制前端源代码 -COPY frontend/ ./ - -# 临时修改vite配置,使其输出到dist目录(而不是../backend/static) -RUN sed -i "s|outDir: '../backend/static'|outDir: 'dist'|g" vite.config.ts - -# 构建前端 -RUN npm run build - -# 阶段2: 构建最终镜像 +# 阶段1: 最终镜像 FROM python:3.11-slim ARG USE_CN_MIRROR @@ -46,8 +16,8 @@ WORKDIR /app # 根据参数决定是否使用国内镜像源 RUN if [ "$USE_CN_MIRROR" = "true" ]; then \ - sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ - sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources; \ + sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources && \ + sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources; \ fi # 安装系统依赖(添加数据库工具) @@ -61,8 +31,6 @@ RUN apt-get update && apt-get install -y \ COPY backend/requirements.txt ./ # 安装 Python 依赖 -# 先安装 torch CPU版本(~200MB vs 完整版~2GB,节省90%下载时间) -# 对于embedding场景,CPU版本完全够用 RUN if [ "$USE_CN_MIRROR" = "true" ]; then \ pip install --no-cache-dir torch==2.8.0 --index-url https://mirrors.aliyun.com/pypi/simple/ --extra-index-url https://download.pytorch.org/whl/cpu && \ pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/; \ @@ -78,7 +46,6 @@ RUN mkdir -p /app/embedding ENV SENTENCE_TRANSFORMERS_HOME=/app/embedding # 下载 embedding 模型(从 HuggingFace) -# 使用 Python 脚本预下载模型,这样运行时不需要网络 RUN python -c "\ from sentence_transformers import SentenceTransformer; \ import os; \ @@ -88,11 +55,12 @@ model = SentenceTransformer('sentence-transformers/paraphrase-multilingual-MiniL print('Model downloaded successfully!'); \ " -# 复制后端代码(不包含embedding,因为已经下载了) +# 复制后端代码 COPY backend/ ./ -# 从前端构建阶段复制构建好的静态文件 -COPY --from=frontend-builder /frontend/dist ./static +# 复制宿主机预构建的静态文件 +# 这样可以避免 Docker 内部构建前端时的各种环境问题 +COPY backend/static/ ./static # 复制 Alembic 迁移配置和脚本(PostgreSQL) COPY backend/alembic-postgres.ini ./alembic.ini @@ -100,8 +68,8 @@ COPY backend/alembic/postgres ./alembic COPY backend/scripts/entrypoint.sh /app/entrypoint.sh COPY backend/scripts/migrate.py ./scripts/migrate.py -# 赋予执行权限 -RUN chmod +x /app/entrypoint.sh +# 修复 Windows CRLF 换行导致的启动失败,并赋予执行权限 +RUN sed -i 's/\r$//' /app/entrypoint.sh && chmod +x /app/entrypoint.sh # 创建必要的目录 RUN mkdir -p /app/data /app/logs @@ -114,7 +82,7 @@ ENV PYTHONUNBUFFERED=1 ENV APP_HOST=0.0.0.0 ENV APP_PORT=8000 -# 设置运行时为离线模式(模型已在构建时下载) +# 设置运行时为离线模式 ENV TRANSFORMERS_OFFLINE=1 ENV HF_DATASETS_OFFLINE=1 ENV HF_HUB_OFFLINE=1 @@ -123,5 +91,5 @@ ENV HF_HUB_OFFLINE=1 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')" || exit 1 -# 使用 entrypoint 脚本启动(自动执行迁移) -ENTRYPOINT ["/app/entrypoint.sh"] \ No newline at end of file +# 使用 entrypoint 脚本启动 +ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/README.md b/README.md index 8f59bff..0495741 100644 --- a/README.md +++ b/README.md @@ -1,643 +1,317 @@ -# 墨木灵思 📚✨ - -
+# 墨木灵思 ![Version](https://img.shields.io/badge/version-1.4.8-blue.svg) ![Python](https://img.shields.io/badge/python-3.11-blue.svg) -![FastAPI](https://img.shields.io/badge/FastAPI-0.109.0-green.svg) +![FastAPI](https://img.shields.io/badge/FastAPI-0.121.0-green.svg) ![React](https://img.shields.io/badge/react-18.3.1-blue.svg) -![License](https://img.shields.io/badge/license-GPL%20v3-blue.svg) -**基于 AI 的智能小说创作助手** +## 1. 项目简介 -[特性](#-特性) • [快速开始](#-快速开始) • [配置说明](#%EF%B8%8F-配置说明) • [项目结构](#-项目结构) +### 项目概述 -
+**墨木灵思**是一款基于大语言模型的智能小说创作平台,帮助作者从大纲、角色到章节一气呵成地完成创作,让 AI 成为可靠的写作搭档。 + +### 项目起源 + +长篇网文与原创小说创作往往面临设定繁杂、人物关系难梳理、章节衔接不连贯等问题。墨木灵思将 AI 能力融入创作全流程,把「灵感 → 大纲 → 角色 → 章节」串联为可管理的结构化工作流,降低创作门槛并提升产出效率。 + +### 项目定位 + +| 维度 | 说明 | +|------|------| +| **目标用户** | 网文作者、业余写作者、内容创作者、文学爱好者 | +| **适用场景** | 长篇连载、短篇创作、世界观搭建、同人续写、拆书仿写 | +| **部署形态** | 支持 Docker 一键部署,也可本地开发运行 | + +### 核心价值 + +- 用 AI 辅助完成大纲、角色、世界观等前期设定,缩短冷启动时间 +- 多模型灵活切换,适配不同文风与成本需求 +- 角色关系、伏笔、职业体系等结构化管理能力,保持长篇一致性 +- 多用户数据隔离,适合个人或小团队私有化部署 --- -
+## 2. 整体架构与技术栈 -## 💬 加入交流群 +### 系统架构 -欢迎扫码加入 QQ 交流群,一起交流 AI 小说创作心得、反馈问题、获取最新动态! +采用**前后端分离**架构:React 单页应用负责交互,FastAPI 提供 REST API,PostgreSQL 持久化业务数据;生产环境通过 Docker Compose 编排应用与数据库,前端构建产物由后端静态托管,统一对外暴露 HTTP 服务。 -QQ交流群二维码 +```mermaid +flowchart LR + subgraph Client + UI[React SPA] + end + subgraph Server + API[FastAPI] + AI[AI 服务层] + DB[(PostgreSQL)] + Vec[ChromaDB / Embedding] + end + UI -->|HTTP / API| API + API --> AI + API --> DB + API --> Vec + AI -->|OpenAI 兼容 API| Ext[外部 LLM] +``` -
+### 技术栈 + +| 分类 | 技术 | 版本 / 说明 | +|------|------|-------------| +| **后端** | Python | 3.11 | +| | FastAPI | 0.121.0 | +| | SQLAlchemy + Alembic | 2.0.25 / 1.14.0 | +| | Uvicorn | 0.38.0 | +| **前端** | React | 18.3.1 | +| | TypeScript + Vite | — | +| | Ant Design | 5.x | +| | Zustand | 5.x | +| **数据库** | PostgreSQL | 18(推荐) | +| | SQLite | 可选(开发 / 轻量场景) | +| **AI 与向量** | OpenAI / Anthropic SDK | 多模型接入 | +| | ChromaDB + Sentence Transformers | 长期记忆与语义检索 | +| **部署** | Docker + Docker Compose | 一键编排 | +| | GitHub Actions | 镜像构建与发布 | + +### 技术选型说明 + +- **FastAPI**:异步性能好,自带 OpenAPI 文档,适合 AI 类长耗时接口。 +- **PostgreSQL**:支持多用户、复杂关系与并发,满足生产级数据隔离。 +- **React + Ant Design**:组件丰富,适合复杂表单与可视化(关系图、时间线等)。 +- **Docker Compose**:降低部署成本,数据库与应用一键拉起。 --- -
+## 3. 项目目录概览 -## 💖 支持项目 +``` +MuMuAINovel/ +├── backend/ # 后端服务 +│ ├── app/ +│ │ ├── api/ # REST API 路由 +│ │ ├── models/ # 数据模型 +│ │ ├── services/ # 业务逻辑(含 AI 调用) +│ │ ├── middleware/ # 中间件 +│ │ ├── mcp/ # MCP 插件集成 +│ │ └── main.py # 应用入口 +│ ├── alembic/ # 数据库迁移 +│ ├── scripts/ # 初始化与运维脚本 +│ ├── static/ # 前端构建产物(生产) +│ └── requirements.txt +├── frontend/ # 前端应用 +│ ├── src/ +│ │ ├── pages/ # 页面 +│ │ ├── components/ # 通用组件 +│ │ ├── services/ # API 封装 +│ │ ├── store/ # 状态管理 +│ │ └── theme/ # 主题配置 +│ └── package.json +├── images/ # 文档与截图资源 +├── storage/ # 用户生成资源(如封面) +├── logs/ # 运行日志 +├── docker-compose.yml # 容器编排 +├── Dockerfile # 镜像构建 +└── README.md +``` -如果这个项目对你有帮助,欢迎通过以下方式支持开发: - -**[☕ 请我喝杯咖啡](https://mumuverse.space:1588/)** - -**[🌐 MuMuのAPI站点](https://api.mumuverse.space/register?aff=4NN8)** - -> 在 MuMu の API 站点充值满 50 元及以上,也可以获得下方赞助专属权益。 - -### 🎁 赞助专属权益 - -| 权益 | 说明 | +| 目录 | 作用 | |------|------| -| 📋 **优先需求响应** | 您的功能需求和问题反馈将获得优先处理 | -| 🚀 **Windows一键启动** | 获取免安装 EXE 程序,双击即可使用 | -| 💬 **专属技术支持** | 加入赞助者内部群,获得远程协助和配置指导 | - -### ☕ 赞助 / API 站点充值档位 - -| 金额 | 描述 | -|------|------| -| ¥5 | 🌶️ 一包辣条 | -| ¥10 | 🍱 一顿拼好饭 | -| ¥20 | 🧋 一杯咖啡 | -| ¥50 | 🍖 一次烧烤 | -| ¥99 | 🍲 一顿海底捞 | - -您的支持是我持续开发的动力!🙏 - -
+| `backend/app/api/` | 项目、章节、角色、提示词等业务接口 | +| `backend/app/services/` | AI 生成、润色、向量记忆等核心逻辑 | +| `frontend/src/pages/` | 书架、项目详情、设置、提示词模板等页面 | +| `backend/alembic/` | PostgreSQL / SQLite schema 迁移 | +| `backend/scripts/` | 数据库初始化、入口脚本 | --- -## ✨ 特性 +## 4. 核心业务功能 -- 🤖 **多 AI 模型** - 支持 OpenAI、Gemini、Claude 等主流模型 -- 📝 **智能向导** - AI 自动生成大纲、角色和世界观 -- 👥 **角色管理** - 人物关系、组织架构可视化管理 -- 📖 **章节编辑** - 支持创建、编辑、重新生成和润色 -- 🌐 **世界观设定** - 构建完整的故事背景 -- 🔐 **多种登录** - LinuxDO OAuth 或本地账户登录 -- 💾 **PostgreSQL** - 生产级数据库,多用户数据隔离 -- 🐳 **Docker 部署** - 一键启动,开箱即用 +- **智能创作向导**:根据题材与设定,AI 自动生成大纲、角色档案与世界观框架。 +- **多 AI 模型支持**:接入 OpenAI、Claude、Gemini 等,支持自定义 Base URL(兼容中转 API)。 +- **项目管理与书架**:多项目并行,支持导入导出,便于备份与迁移。 +- **角色与组织管理**:人物卡片、关系图谱、组织架构可视化编辑。 +- **职业等级体系**:可自定义修仙境界、魔法等级等成长体系。 +- **章节创作与润色**:章节生成、续写、重写、字数控制及 diff 对比。 +- **世界观与大纲**:结构化维护故事背景与情节脉络。 +- **伏笔管理**:追踪未回收伏笔,可视化时间线提醒。 +- **灵感模式**:快速生成创作点子与情节灵感。 +- **提示词工坊**:浏览、导入社区 Prompt 模板,可视化编辑自有模板。 +- **拆书功能**:分析既有作品结构,辅助仿写与续写。 +- **封面生成**:基于项目信息 AI 生成封面图。 +- **长期记忆**:基于 Embedding 的语义记忆,保持跨章节一致性。 +- **用户与认证**:本地账户、邮箱验证、LinuxDO OAuth;多用户数据隔离。 +- **系统设置**:SMTP、AI 密钥、主题等可在线配置。 -## 📸 项目预览 +--- -
+## 5. 实际应用场景示例 -多图预警 +### 适用行业与领域 -
+- 网络文学与自媒体连载 +- 游戏、动漫、影视衍生文案 +- 教育培训中的创意写作练习 +- 个人 IP 与世界观孵化 -### 登录界面 -![登录界面](images/1.png) +### 典型场景 -![登录界面](images/1-1.png) +**场景一:新人作者快速开书** +输入题材与基调后,由向导生成大纲与主要角色,再逐章扩写;适合从零起步、需要结构指引的作者。 -### 主界面 -![主界面](images/2.png) +**场景二:长篇连载一致性维护** +在数百章规模下,通过角色关系图、伏笔管理与向量记忆,减少人设崩坏与情节穿帮。 -![主界面(暗色)](images/2-1.png) +**场景三:拆书仿写与风格学习** +导入参考作品或章节,分析结构后结合自身设定续写,用于练笔或同人向创作。 -### 项目管理 -![项目管理](images/3.png) +--- -![项目管理](images/3-1.png) +## 6. 帮助解决的核心问题 -### 赞助我 💖 -![赞助我](images/4.png) +- **创作冷启动难**:自动生成大纲、角色与世界观,减少空白页焦虑。 +- **设定易混乱**:关系图、职业体系、伏笔追踪让长篇设定可检索、可维护。 +- **AI 调用分散**:统一配置多模型与 Prompt,降低切换成本。 +- **协作与部署复杂**:Docker 私有化部署,数据留在自有环境。 +- **章节质量不稳定**:润色、重写、分析建议一键应用,提升成稿效率。 +- **提示词难以沉淀**:模板工坊与可视化编辑,复用优质 Prompt。 -![赞助我](images/4-1.png) +--- -
+## 7. 快速开始 -
+### 环境要求 -## 📋 TODO List - -### ✅ 已完成功能 - -- [x] **灵感模式** - 创作灵感和点子生成 -- [x] **自定义写作风格** - 支持自定义 AI 写作风格 -- [x] **数据导入导出** - 项目数据的导入导出 -- [x] **Prompt 调整界面** - 可视化编辑 Prompt 模板 -- [x] **章节字数限制** - 用户可设置生成字数 -- [x] **思维链与章节关系图谱** - 可视化章节逻辑关系 -- [x] **根据分析一键重写** - 根据分析建议重新生成 -- [x] **Linux DO 自动创建账号** - OAuth 登录自动生成账号 -- [x] **职业等级体系** - 自定义职业和等级系统,支持修仙境界、魔法等级等多种体系 -- [x] **角色/组织卡片导入导出** - 单独导出角色和组织卡片,支持跨项目数据共享 -- [x] **伏笔管理** - 智能追踪剧情伏笔,提醒未回收线索,可视化伏笔时间线 -- [x] **提示词工坊** - 社区驱动的 Prompt 模板分享平台,一键导入优质提示词 -- [x] **拆书功能** - 目前呼声比较高的功能,一键拆书,给当年的ta一个圆满的结局 - -### 📝 规划中功能 - -...... - -> 💡 欢迎提交 Issue 或 Pull Request! - -## 💻 硬件配置要求 - -### 最低配置(个人使用/开发环境) - -| 组件 | 要求 | +| 方式 | 要求 | |------|------| -| **CPU** | 2 核 | -| **内存** | 2 GB RAM | -| **存储** | 10 GB 可用空间 | -| **网络** | 稳定互联网连接(用于调用 AI API) | +| **Docker 部署(推荐)** | Docker 20.10+、Docker Compose 2.0+;至少一个 LLM API Key | +| **本地开发** | Python 3.11、Node.js 18+、PostgreSQL 18(或 SQLite);稳定网络(调用外部 AI API) | -### 推荐配置(小型团队/生产环境) +**硬件建议(个人使用)**:2 核 CPU、2 GB 内存、10 GB 磁盘;生产或小团队建议 4 核 / 8 GB 内存。项目依赖外部 AI API,无需本地 GPU。 -| 组件 | 要求 | -|------|------| -| **CPU** | 4 核 | -| **内存** | 8 GB RAM | -| **存储** | 20 GB SSD | -| **网络** | 稳定互联网连接 | - -### 高并发配置(80-150 用户) - -| 组件 | 要求 | -|------|------| -| **CPU** | 8 核 | -| **内存** | 16 GB RAM | -| **存储** | 50 GB+ SSD | -| **网络** | 高带宽连接 | - -> **📌 说明** -> - **Embedding 模型**:约 400 MB 磁盘空间,运行时加载到内存 -> - **PostgreSQL**:默认配置使用 256 MB shared_buffers,1 GB effective_cache_size -> - **Docker 部署**:建议预留额外 1-2 GB 内存给容器运行时 -> - 本项目主要依赖外部 AI API(OpenAI/Claude/Gemini),不需要本地 GPU - -## 🚀 快速开始 - -### 前置要求 - -- Docker 和 Docker Compose -- 至少一个 AI 服务的 API Key(OpenAI/Gemini/Claude) - -### Docker Compose 部署(推荐) +### 安装步骤(Docker) ```bash -# 1. 克隆项目 -git clone https://github.com/xiamuceer-j/墨木灵思.git -cd 墨木灵思 +# 1. 获取项目代码 +git clone <你的仓库地址> +cd MuMuAINovel -# 2. 配置环境变量(必需) +# 2. 配置环境变量 cp backend/.env.example .env -# 编辑 .env 文件,填入必要配置(API Key、数据库密码等) +# 编辑 .env:至少配置 AI API Key、数据库密码等 -# 3. 确保文件准备完整 -# ⚠️ 重要:确保以下文件存在 -# - .env(配置文件,必需挂载到容器) -# - backend/scripts/init_postgres.sql(数据库初始化脚本) - -# 4. 启动服务 -docker-compose up -d - -# 5. 访问应用 -# 打开浏览器访问 http://localhost:8000 +# 3. 确认必要文件存在 +# - .env +# - backend/scripts/init_postgres.sql ``` -> **📌 注意事项** -> -> 1. **`.env` 文件挂载**: `docker-compose.yml` 会自动将 `.env` 挂载到容器,确保文件存在 -> 2. **数据库初始化**: `init_postgres.sql` 会在首次启动时自动执行,安装必要的PostgreSQL扩展 -> 3. **自行构建**: 如需从源码构建,请先下载 embedding 模型文件([加群获取](frontend/public/qq.jpg)) - -### 使用 Docker Hub 镜像(推荐新手) +### 运行步骤 ```bash -# 1. 拉取最新镜像(已包含模型文件) -docker pull mumujie/mumuainovel:latest +# 启动全部服务 +docker compose up -d -# 2. 创建 docker-compose.yml(点击下方展开查看完整配置) +# 查看状态与日志 +docker compose ps +docker compose logs -f ``` -
-📄 点击展开 docker-compose.yml 完整配置 +### 访问地址 -```yaml -services: - postgres: - image: postgres:18-alpine - container_name: mumuainovel-postgres - environment: - POSTGRES_DB: ${POSTGRES_DB:-mumuai_novel} - POSTGRES_USER: ${POSTGRES_USER:-mumuai} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-123456} - POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" - TZ: ${TZ:-Asia/Shanghai} - volumes: - - postgres_data:/var/lib/postgresql - - ./backend/scripts/init_postgres.sql:/docker-entrypoint-initdb.d/init.sql:ro - ports: - - "${POSTGRES_PORT:-5432}:5432" - restart: unless-stopped - healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mumuai} -d ${POSTGRES_DB:-mumuai_novel}"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 10s - networks: - - ai-story-network - command: - - postgres - - -c - - max_connections=${POSTGRES_MAX_CONNECTIONS:-200} - - -c - - shared_buffers=${POSTGRES_SHARED_BUFFERS:-256MB} - - -c - - effective_cache_size=${POSTGRES_EFFECTIVE_CACHE_SIZE:-1GB} - - -c - - maintenance_work_mem=${POSTGRES_MAINTENANCE_WORK_MEM:-64MB} - - -c - - checkpoint_completion_target=${POSTGRES_CHECKPOINT_COMPLETION_TARGET:-0.9} - - -c - - wal_buffers=${POSTGRES_WAL_BUFFERS:-16MB} - - -c - - default_statistics_target=${POSTGRES_DEFAULT_STATISTICS_TARGET:-100} - - -c - - random_page_cost=${POSTGRES_RANDOM_PAGE_COST:-1.1} - - -c - - effective_io_concurrency=${POSTGRES_EFFECTIVE_IO_CONCURRENCY:-200} - - -c - - work_mem=${POSTGRES_WORK_MEM:-4MB} - - -c - - min_wal_size=${POSTGRES_MIN_WAL_SIZE:-1GB} - - -c - - max_wal_size=${POSTGRES_MAX_WAL_SIZE:-4GB} +| 服务 | 默认地址 | +|------|----------| +| **Web 应用** | http://localhost:8000 | +| **API 文档(Swagger)** | http://localhost:8000/docs | +| **API 文档(ReDoc)** | http://localhost:8000/redoc | +| **PostgreSQL** | localhost:5432(容器内通过服务名 `postgres` 访问) | - mumuainovel: - image: mumujie/mumuainovel:latest - container_name: mumuainovel - depends_on: - postgres: - condition: service_healthy - ports: - - "${APP_PORT:-8000}:8000" - volumes: - - ./logs:/app/logs - - ./.env:/app/.env:ro - - ./storage/generated_covers:/app/backend/storage/generated_covers - environment: - # 应用配置 - - APP_NAME=${APP_NAME:-墨木灵思} - - APP_VERSION=${APP_VERSION:-1.0.0} - - APP_HOST=${APP_HOST:-0.0.0.0} - - APP_PORT=8000 - - DEBUG=${DEBUG:-false} - # 数据库配置 - - DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-mumuai}:${POSTGRES_PASSWORD:-123456}@postgres:5432/${POSTGRES_DB:-mumuai_novel} - - DB_HOST=postgres - - DB_PORT=5432 - - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-123456} - # PostgreSQL 连接池配置 - - DATABASE_POOL_SIZE=${DATABASE_POOL_SIZE:-30} - - DATABASE_MAX_OVERFLOW=${DATABASE_MAX_OVERFLOW:-20} - - DATABASE_POOL_TIMEOUT=${DATABASE_POOL_TIMEOUT:-60} - - DATABASE_POOL_RECYCLE=${DATABASE_POOL_RECYCLE:-1800} - - DATABASE_POOL_PRE_PING=${DATABASE_POOL_PRE_PING:-True} - - DATABASE_POOL_USE_LIFO=${DATABASE_POOL_USE_LIFO:-True} - # 代理配置(可选) - - HTTP_PROXY=${HTTP_PROXY:-} - - HTTPS_PROXY=${HTTPS_PROXY:-} - - NO_PROXY=${NO_PROXY:-localhost,127.0.0.1} - # AI 服务配置 - - OPENAI_API_KEY=${OPENAI_API_KEY:-} - - OPENAI_BASE_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1} - - GEMINI_API_KEY=${GEMINI_API_KEY:-} - - GEMINI_BASE_URL=${GEMINI_BASE_URL:-} - - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} - - ANTHROPIC_BASE_URL=${ANTHROPIC_BASE_URL:-} - - DEFAULT_AI_PROVIDER=${DEFAULT_AI_PROVIDER:-openai} - - DEFAULT_MODEL=${DEFAULT_MODEL:-gpt-4o-mini} - - DEFAULT_TEMPERATURE=${DEFAULT_TEMPERATURE:-0.7} - - DEFAULT_MAX_TOKENS=${DEFAULT_MAX_TOKENS:-32000} - # LinuxDO OAuth 配置 - - LINUXDO_CLIENT_ID=${LINUXDO_CLIENT_ID:-11111} - - LINUXDO_CLIENT_SECRET=${LINUXDO_CLIENT_SECRET:-11111} - - LINUXDO_REDIRECT_URI=${LINUXDO_REDIRECT_URI:-http://localhost:8000/api/auth/linuxdo/callback} - - FRONTEND_URL=${FRONTEND_URL:-http://localhost:8000} - # 本地账户登录配置 - - LOCAL_AUTH_ENABLED=${LOCAL_AUTH_ENABLED:-true} - - LOCAL_AUTH_USERNAME=${LOCAL_AUTH_USERNAME:-admin} - - LOCAL_AUTH_PASSWORD=${LOCAL_AUTH_PASSWORD:-admin123} - - LOCAL_AUTH_DISPLAY_NAME=${LOCAL_AUTH_DISPLAY_NAME:-本地管理员} - # 会话配置 - - SESSION_EXPIRE_MINUTES=${SESSION_EXPIRE_MINUTES:-120} - - SESSION_REFRESH_THRESHOLD_MINUTES=${SESSION_REFRESH_THRESHOLD_MINUTES:-30} - - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true} - restart: unless-stopped - healthcheck: - test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 30s - networks: - - ai-story-network +> 若修改 `.env` 中 `APP_PORT`(例如 `10003`),访问地址为 `http://localhost:10003`。 -volumes: - postgres_data: - driver: local +### 默认账号 -networks: - ai-story-network: - driver: bridge -``` +在 `.env` 中启用本地登录时,默认配置示例: -
+| 项 | 默认值 | +|----|--------| +| 用户名 | `admin` | +| 密码 | `admin123` | -```bash -# 3. 启动服务 -docker-compose up -d +**请在生产环境中立即修改默认密码。** -# 4. 查看日志 -docker-compose logs -f +### 本地开发(可选) -# 5. 更新到最新版本 -docker-compose pull -docker-compose up -d -``` - -> **💡 提示**: Docker Hub 镜像已包含所有依赖和模型文件,无需额外下载 - -### 本地开发 / 从源码构建 - -#### 前置准备 - -```bash -# ⚠️ 重要:如果从源码构建,需要先下载 embedding 模型文件 -# 模型文件较大(约 400MB),需放置到以下目录: -# backend/embedding/models--sentence-transformers--paraphrase-multilingual-MiniLM-L12-v2/ -# -# 📥 获取方式: -# - 加入项目 QQ 群或 Linux DO 讨论区获取下载链接 -# - 群号:见项目主页 -# - Linux DO:https://linux.do/t/topic/1100112 -``` - -#### 后端 +**后端** ```bash cd backend python -m venv .venv -source .venv/bin/activate # Windows: .venv\Scripts\activate +# Windows: .venv\Scripts\activate +# Linux/macOS: source .venv/bin/activate pip install -r requirements.txt - -# 配置 .env 文件 cp .env.example .env -# 编辑 .env 填入必要配置 - -# 启动 PostgreSQL(可使用 Docker) -docker run -d --name postgres \ - -e POSTGRES_PASSWORD=your_password \ - -e POSTGRES_DB=mumuai_novel \ - -p 5432:5432 \ - postgres:18-alpine - -# 启动后端 -python -m uvicorn app.main:app --host localhost --port 8000 --reload +# 配置 DATABASE_URL 与 AI Key 后启动 +python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` -#### 前端 +**前端** ```bash cd frontend npm install -npm run dev # 开发模式 -npm run build # 生产构建 +npm run dev ``` -## ⚙️ 配置说明 +生产构建:`npm run build`,产物由后端 `backend/static` 托管。 -### 必需配置 - -创建 `.env` 文件: +### 必需配置示例 ```bash -# PostgreSQL 数据库(必需) -DATABASE_URL=postgresql+asyncpg://mumuai:your_password@postgres:5432/mumuai_novel +# 数据库(Docker 场景由 compose 注入,本地需自行填写) POSTGRES_PASSWORD=your_secure_password -# AI 服务 -OPENAI_API_KEY=your_openai_key +# AI 服务(至少配置一项) +OPENAI_API_KEY=your_key OPENAI_BASE_URL=https://api.openai.com/v1 DEFAULT_AI_PROVIDER=openai DEFAULT_MODEL=gpt-4o-mini -# 本地账户登录 +# 本地登录 LOCAL_AUTH_ENABLED=true LOCAL_AUTH_USERNAME=admin LOCAL_AUTH_PASSWORD=your_password ``` -### 可选配置 +### 常见问题 -```bash -# LinuxDO OAuth -LINUXDO_CLIENT_ID=your_client_id -LINUXDO_CLIENT_SECRET=your_client_secret -LINUXDO_REDIRECT_URI=http://localhost:8000/api/auth/callback - -# PostgreSQL 连接池(高并发优化) -DATABASE_POOL_SIZE=30 -DATABASE_MAX_OVERFLOW=20 - -# 会话 Cookie Secure 标记 -# 默认 true,适合 HTTPS 部署;如果使用 HTTP 访问并且浏览器不保存登录 Cookie,可设为 false -SESSION_COOKIE_SECURE=true -``` - -> **🔐 Cookie Secure 说明** -> -> - HTTPS 部署:建议保持 `SESSION_COOKIE_SECURE=true`,浏览器只会通过 HTTPS 发送登录 Cookie。 -> - HTTP 部署:如果登录后浏览器没有保存 Cookie,请在 `.env` 中设置 `SESSION_COOKIE_SECURE=false`,然后重启后端或 Docker 容器。 -> - Docker Compose 示例默认使用 `SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-true}`,如需关闭必须在 `.env` 中显式配置。 - -### 中转 API 配置 - -支持所有 OpenAI 兼容格式的中转服务: - -```bash -# New API 示例 -OPENAI_API_KEY=sk-xxxxxxxx -OPENAI_BASE_URL=https://api.new-api.com/v1 - -# 其他中转服务 -OPENAI_BASE_URL=https://your-proxy-service.com/v1 -``` - -## 🐳 Docker 部署详情 - -### 服务架构 - -- **postgres**: PostgreSQL 18 数据库 - - 端口: 5432 - - 数据持久化: `postgres_data` volume - - 初始化脚本: `backend/scripts/init_postgres.sql`(自动挂载) - - 优化配置: 支持 80-150 并发用户 - -- **mumuainovel**: 主应用服务 - - 端口: 8000 - - 日志目录: `./logs` - - 配置挂载: `.env` 文件 - - 自动等待数据库就绪 - - 健康检查: 每 30 秒检测一次 - -### 重要文件说明 - -| 文件 | 说明 | 是否必需 | -|------|------|---------| -| `.env` | 环境配置(API Key、数据库密码等) | ✅ 必需 | -| `docker-compose.yml` | 服务编排配置 | ✅ 必需 | -| `backend/scripts/init_postgres.sql` | PostgreSQL 扩展安装脚本 | ✅ 自动挂载 | -| `backend/embedding/models--*/` | Embedding 模型文件 | ⚠️ 自建需要 | - -> **注意**: 使用 Docker Hub 镜像时,模型文件已包含在镜像中,无需额外下载 - -### 常用命令 - -```bash -# 启动服务 -docker-compose up -d - -# 查看状态 -docker-compose ps - -# 查看日志 -docker-compose logs -f - -# 停止服务 -docker-compose down - -# 重启服务 -docker-compose restart - -# 查看资源使用 -docker stats -``` - -### 数据持久化 - -- `./postgres_data` - PostgreSQL 数据库文件 -- `./logs` - 应用日志文件 - -### 端口配置 - -修改 `docker-compose.yml` 中的端口映射: - -```yaml -ports: - - "8800:8000" # 宿主机:容器 -``` - -## 📁 项目结构 - -``` -墨木灵思/ -├── backend/ # 后端服务 -│ ├── app/ -│ │ ├── api/ # API 路由 -│ │ ├── models/ # 数据模型 -│ │ ├── services/ # 业务逻辑 -│ │ ├── middleware/ # 中间件 -│ │ ├── database.py # 数据库连接 -│ │ └── main.py # 应用入口 -│ ├── scripts/ # 工具脚本 -│ └── requirements.txt # Python 依赖 -├── frontend/ # 前端应用 -│ ├── src/ -│ │ ├── pages/ # 页面组件 -│ │ ├── components/ # 通用组件 -│ │ ├── services/ # API 服务 -│ │ └── store/ # 状态管理 -│ └── package.json -├── docker-compose.yml # Docker Compose 配置 -├── Dockerfile # Docker 镜像构建 -└── README.md -``` - -## 🛠️ 技术栈 - -**后端**: FastAPI • PostgreSQL • SQLAlchemy • OpenAI/Claude/Gemini SDK - -**前端**: React 18 • TypeScript • Ant Design • Zustand • Vite - -## 📖 使用指南 - -1. **登录系统** - 使用本地账户或 LinuxDO 账户 -2. **创建项目** - 选择"使用向导创建" -3. **AI 生成** - 输入基本信息,AI 自动生成大纲和角色 -4. **编辑完善** - 管理角色关系,生成和编辑章节 - -### API 文档 - -- Swagger UI: `http://localhost:8000/docs` -- ReDoc: `http://localhost:8000/redoc` - -## 🤝 贡献 - -欢迎提交 Issue 和 Pull Request! - -1. Fork 本项目 -2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) -3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) -4. 推送到分支 (`git push origin feature/AmazingFeature`) -5. 提交 Pull Request - -### 贡献者 - -感谢所有为本项目做出贡献的开发者! - - - - - -## 📝 许可证 - -本项目采用 [GNU General Public License v3.0](LICENSE) - -**GPL v3 意味着:** -- ✅ 可自由使用、修改和分发 -- ✅ 可用于商业目的 -- 📝 必须开源修改版本 -- 📝 必须保留原作者版权 -- 📝 衍生作品必须使用 GPL v3 协议 - -## 🙏 致谢 - -- [FastAPI](https://fastapi.tiangolo.com/) - Python Web 框架 -- [React](https://react.dev/) - 前端框架 -- [Ant Design](https://ant.design/) - UI 组件库 -- [PostgreSQL](https://www.postgresql.org/) - 数据库 - -## 📧 联系方式 - -- 提交 [Issue](https://github.com/xiamuceer-j/墨木灵思/issues) -- Linux DO [讨论](https://linux.do/t/topic/1106333) -- 加入QQ群 [QQ群](frontend/public/qq.jpg) -- 加入WX群 [WX群](frontend/public/WX.png) +| 问题 | 解决方案 | +|------|----------| +| 启动后无法访问 | 检查 `APP_PORT` 映射与防火墙;`docker compose ps` 确认容器健康 | +| 登录后 Cookie 未保存 | HTTP 部署时将 `SESSION_COOKIE_SECURE=false` 写入 `.env` 并重启 | +| AI 调用失败 | 核对 API Key、Base URL 及网络代理(`HTTP_PROXY` / `HTTPS_PROXY`) | +| 数据库连接失败 | 确认 PostgreSQL 容器已 healthy;检查 `DATABASE_URL` 用户名密码 | +| 自建镜像缺少 Embedding | 使用官方镜像或按文档将模型放入 `backend/embedding/` 目录 | --- -
+## 8. 运行示例截图 -**如果这个项目对你有帮助,请给个 ⭐️ Star!** +![image-20260518142402652](images/image-20260518142402652.png) -Made with ❤️ +![image-20260518142411086](images/image-20260518142411086.png) -
+![image-20260518142620791](images/image-20260518142620791.png) -## Star History +![image-20260518142641345](images/image-20260518142641345.png) - - - - - Star History Chart - - +![image-20260518143108652](images/image-20260518143108652.png) -## History +![image-20260518143113951](images/image-20260518143113951.png) -![Alt](https://repobeats.axiom.co/api/embed/ee7141a5f269c64759302e067abe23b46796bafe.svg "Repobeats analytics image") +![image-20260518143117651](images/image-20260518143117651.png) + +![image-20260518143121175](images/image-20260518143121175.png) + +![image-20260518143125197](images/image-20260518143125197.png) + +![image-20260518143134898](images/image-20260518143134898.png) diff --git a/backend/.env.example b/backend/.env.example index 56d00f0..cb45f07 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -19,13 +19,13 @@ TZ=Asia/Shanghai # ========================================== # PostgreSQL 连接信息 -POSTGRES_DB=mumuai_novel -POSTGRES_USER=mumuai +POSTGRES_DB=mumulingsi_novel +POSTGRES_USER=mumulingsi POSTGRES_PASSWORD=123456 POSTGRES_PORT=5432 # 数据库连接 URL(Docker 部署时自动生成) -# DATABASE_URL=postgresql+asyncpg://mumuai:123456@localhost:5432/mumuai_novel +# DATABASE_URL=postgresql+asyncpg://mumulingsi:123456@localhost:5432/mumulingsi_novel # ========================================== # SQLite 数据库配置 @@ -45,7 +45,7 @@ LOG_BACKUP_COUNT=30 # ========================================== # CORS 配置 # ========================================== -CORS_ORIGINS=["http://localhost:8000","http://127.0.0.1:8000"] +CORS_ORIGINS=["http://localhost:3000","http://127.0.0.1:8000"] # ========================================== # 代理配置(可选) @@ -116,11 +116,11 @@ EMAIL_VERIFICATION_RESEND_INTERVAL_SECONDS=60 # 提示词工坊配置 # ========================================== # 运行模式:client(本地部署)或 server(云端服务器) -# 只有 mumuverse.space:1566 需要设置为 server +# 云端服务配置示例 WORKSHOP_MODE=client # 云端服务地址(client 模式使用) -WORKSHOP_CLOUD_URL=https://mumuverse.space:1566 +WORKSHOP_CLOUD_URL= # 云端 API 请求超时时间(秒) WORKSHOP_API_TIMEOUT=30 diff --git a/backend/alembic-postgres.ini b/backend/alembic-postgres.ini index fa9a3df..688e0f8 100644 --- a/backend/alembic-postgres.ini +++ b/backend/alembic-postgres.ini @@ -1,5 +1,5 @@ # Alembic Database Migration Profile - PostgreSQL -# Database version management for the 墨木灵思 project +# Database version management for the mumulingsi project [alembic] # Migration Script storage directory (PostgreSQL) @@ -10,7 +10,7 @@ file_template = %%(year)d%%(month).2d%%(day).2d_%%(hour).2d%%(minute).2d_%%(rev) # Database connection string # Note: The actual connection string is read from the environment variable in env.py -# sqlalchemy.url = postgresql+asyncpg://mumuai:password@localhost:5432/mumuai_novel +# sqlalchemy.url = postgresql+asyncpg://mumulingsi:password@localhost:5432/mumulingsi_novel # Log Configuration [loggers] diff --git a/backend/alembic-sqlite.ini b/backend/alembic-sqlite.ini index a394c9b..16f6263 100644 --- a/backend/alembic-sqlite.ini +++ b/backend/alembic-sqlite.ini @@ -1,5 +1,5 @@ # Alembic Database Migration Profile - SQLite -# Database version management for the 墨木灵思 project +# Database version management for the mumulingsi project [alembic] # Migration Script storage directory (SQLite) diff --git a/backend/alembic/README b/backend/alembic/README index 46ff504..2bc1639 100644 --- a/backend/alembic/README +++ b/backend/alembic/README @@ -59,7 +59,7 @@ alembic -c alembic-postgres.ini current #### 配置环境变量 ```bash # .env 文件 -DATABASE_URL=sqlite+aiosqlite:///./data/mumuai.db +DATABASE_URL=sqlite+aiosqlite:///./data/mumulingsi.db ``` #### 生成迁移脚本 @@ -115,7 +115,7 @@ alembic -c alembic-sqlite.ini current ```bash # 切换到 SQLite -DATABASE_URL=sqlite+aiosqlite:///./data/mumuai.db +DATABASE_URL=sqlite+aiosqlite:///./data/mumulingsi.db alembic -c alembic-sqlite.ini upgrade head # 切换到 PostgreSQL diff --git a/backend/app/api/changelog.py b/backend/app/api/changelog.py index 5426f52..7ff62e0 100644 --- a/backend/app/api/changelog.py +++ b/backend/app/api/changelog.py @@ -21,8 +21,8 @@ def require_login(request: Request): # GitHub API配置 GITHUB_API_BASE = "https://api.github.com" -REPO_OWNER = "xiamuceer-j" -REPO_NAME = "墨木灵思" +REPO_OWNER = "mumulingsi-project" +REPO_NAME = "mumulingsi" # 缓存配置 _cache = { @@ -88,7 +88,7 @@ async def fetch_github_commits(page: int = 1, per_page: int = 30) -> List[dict]: headers = { "Accept": "application/vnd.github.v3+json", - "User-Agent": "墨木灵思-App" + "User-Agent": "mumulingsi-App" } try: diff --git a/backend/app/config.py b/backend/app/config.py index f2163ae..3cbacb9 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -16,7 +16,7 @@ config_logger = logging.getLogger(__name__) # 数据库配置:PostgreSQL # 从环境变量获取数据库URL -DATABASE_URL = os.getenv("DATABASE_URL", "postgresql+asyncpg://mumuai:password@localhost:5432/mumuai_novel") +DATABASE_URL = os.getenv("DATABASE_URL", "postgresql+asyncpg://mumulingsi:password@localhost:5432/mumulingsi_novel") config_logger.debug(f"数据库类型: PostgreSQL") config_logger.debug(f"数据库URL: {DATABASE_URL}") @@ -39,7 +39,7 @@ class Settings(BaseSettings): log_backup_count: int = 30 # 保留30个备份文件 # CORS配置 - cors_origins: list[str] = ["http://localhost:8000", "http://127.0.0.1:8000"] + cors_origins: list[str] = ["http://localhost:3000", "http://127.0.0.1:8000"] # 数据库配置 - PostgreSQL database_url: str = DATABASE_URL @@ -126,7 +126,7 @@ class Settings(BaseSettings): # 提示词工坊配置 WORKSHOP_MODE: str = "client" # client: 本地部署实例, server: 云端中央服务器 - WORKSHOP_CLOUD_URL: str = "https://mumuverse.space:1566" # 云端服务地址 + WORKSHOP_CLOUD_URL: str = "" # 云端服务地址 WORKSHOP_API_TIMEOUT: int = 30 # 云端API请求超时时间(秒) class Config: diff --git a/backend/app/main.py b/backend/app/main.py index 7df5aa0..1792632 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -141,6 +141,12 @@ async def db_session_stats(request: Request): } +@app.get("/nanobot/sessions") +async def nanobot_sessions(): + """兼容层:为环境监控工具提供空的会话列表""" + return [] + + from app.api import ( projects, outlines, characters, chapters, wizard_stream, relationships, organizations, diff --git a/backend/app/security.py b/backend/app/security.py index c75bcc2..66ae261 100644 --- a/backend/app/security.py +++ b/backend/app/security.py @@ -24,7 +24,7 @@ def _session_secret() -> bytes: or settings.openai_api_key ) if not secret: - secret = "mumuainovel-development-session-secret" + secret = "mumulingsi-development-session-secret" return str(secret).encode("utf-8") diff --git a/backend/app/services/ai_service.py b/backend/app/services/ai_service.py index d31e6f5..43da425 100644 --- a/backend/app/services/ai_service.py +++ b/backend/app/services/ai_service.py @@ -29,7 +29,7 @@ logger = get_logger(__name__) def normalize_provider(provider: Optional[str]) -> Optional[str]: """标准化 provider 名称,兼容渠道别名。""" - if provider == "mumu": + if provider == "xinmi": return "openai" return provider diff --git a/backend/app/services/cover_generation_service.py b/backend/app/services/cover_generation_service.py index 399e8f2..1a14e8f 100644 --- a/backend/app/services/cover_generation_service.py +++ b/backend/app/services/cover_generation_service.py @@ -225,11 +225,11 @@ class CoverGenerationService: return GeminiCoverProvider(api_key=api_key, base_url=normalized_base_url) if provider_value == "grok": return GrokCoverProvider(api_key=api_key, base_url=normalized_base_url) - if provider_value == "mumu": + if provider_value == "xinmi": if normalized_base_url.endswith("/v1beta"): return GeminiCoverProvider(api_key=api_key, base_url=normalized_base_url) - return GrokCoverProvider(api_key=api_key, base_url=normalized_base_url or "https://api.mumuverse.space/v1") - raise HTTPException(status_code=400, detail="当前版本仅支持 Gemini、Grok 或 MuMuのAPI 作为封面图片 Provider") + return GrokCoverProvider(api_key=api_key, base_url=normalized_base_url or "v1") + raise HTTPException(status_code=400, detail="当前版本仅支持 Gemini、Grok 或 墨木灵思 API 作为封面图片 Provider") def _save_cover_file( self, diff --git a/backend/scripts/entrypoint.sh b/backend/scripts/entrypoint.sh index 53b7e0a..95839c8 100644 --- a/backend/scripts/entrypoint.sh +++ b/backend/scripts/entrypoint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Docker 容器启动入口脚本 # 功能:等待数据库就绪,执行迁移,启动应用 @@ -31,8 +31,8 @@ echo "================================================" # 数据库配置(从环境变量读取) DB_HOST="${DB_HOST:-postgres}" DB_PORT="${DB_PORT:-5432}" -DB_USER="${POSTGRES_USER:-mumuai}" -DB_NAME="${POSTGRES_DB:-mumuai_novel}" +DB_USER="${POSTGRES_USER:-mumulingsi}" +DB_NAME="${POSTGRES_DB:-mumulingsi_novel}" # 等待数据库就绪 echo "⏳ 等待数据库启动..." diff --git a/backend/scripts/init_postgres.sql b/backend/scripts/init_postgres.sql index 87f149e..c17e5c6 100644 --- a/backend/scripts/init_postgres.sql +++ b/backend/scripts/init_postgres.sql @@ -8,7 +8,7 @@ CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- 模糊搜索和全文检索支 DO $$ BEGIN RAISE NOTICE '=================================================='; - RAISE NOTICE '墨木灵思 PostgreSQL 扩展安装完成'; + RAISE NOTICE 'mumulingsi PostgreSQL 扩展安装完成'; RAISE NOTICE '已安装扩展:'; RAISE NOTICE ' - uuid-ossp: UUID生成支持'; RAISE NOTICE ' - pg_trgm: 模糊搜索和全文检索支持'; diff --git a/backend/scripts/setup_postgres.py b/backend/scripts/setup_postgres.py index 7a486d8..461a190 100644 --- a/backend/scripts/setup_postgres.py +++ b/backend/scripts/setup_postgres.py @@ -56,8 +56,8 @@ class PostgreSQLSetup: port: int = 5432, admin_user: str = "postgres", admin_password: str = None, - db_name: str = "mumuai_novel", - db_user: str = "mumuai", + db_name: str = "xinmi_novel", + db_user: str = "mumulingsi", db_password: str = "123456" ): """ @@ -374,9 +374,9 @@ async def main(): admin_password = getpass(f"管理员密码: ") print("\n请输入要创建的数据库信息:\n") - db_name = input("数据库名 [mumuai_novel]: ").strip() or "mumuai_novel" - db_user = input("数据库用户名 [mumuai]: ").strip() or "mumuai" - db_password = getpass("数据库用户密码 [mumuai123]: ") or "mumuai123" + db_name = input("数据库名 [xinmi_novel]: ").strip() or "xinmi_novel" + db_user = input("数据库用户名 [mumulingsi]: ").strip() or "mumulingsi" + db_password = getpass("数据库用户密码 [xinmi123]: ") or "xinmi123" print(f"\n{'='*60}") print(f"配置摘要:") diff --git a/docker-compose.yml b/docker-compose.yml index a0472b0..ee337f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,10 @@ services: postgres: image: postgres:18-alpine - container_name: mumuainovel-postgres + container_name: mumulingsi-postgres environment: - POSTGRES_DB: ${POSTGRES_DB:-mumuai_novel} - POSTGRES_USER: ${POSTGRES_USER:-mumuai} + POSTGRES_DB: ${POSTGRES_DB:-mumulingsi_novel} + POSTGRES_USER: ${POSTGRES_USER:-mumulingsi} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-123456} POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=C" TZ: ${TZ:-Asia/Shanghai} @@ -15,7 +15,7 @@ services: - "${POSTGRES_PORT:-5432}:5432" restart: unless-stopped healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mumuai} -d ${POSTGRES_DB:-mumuai_novel}"] + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-mumulingsi} -d ${POSTGRES_DB:-mumulingsi_novel}"] interval: 10s timeout: 5s retries: 5 @@ -49,12 +49,14 @@ services: - -c - max_wal_size=${POSTGRES_MAX_WAL_SIZE:-4GB} - mumuainovel: + mumulingsi: build: context: . dockerfile: Dockerfile - image: mumujie/mumuainovel:latest - container_name: mumuainovel + args: + - USE_CN_MIRROR=${USE_CN_MIRROR:-false} + image: mumulingsi-project/mumulingsi:latest + container_name: mumulingsi depends_on: postgres: condition: service_healthy @@ -76,11 +78,13 @@ services: - DEBUG=${DEBUG:-false} # 数据库配置 - - DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-mumuai}:${POSTGRES_PASSWORD:-123456}@postgres:5432/${POSTGRES_DB:-mumuai_novel} + - DATABASE_URL=postgresql+asyncpg://${POSTGRES_USER:-mumulingsi}:${POSTGRES_PASSWORD:-123456}@postgres:5432/${POSTGRES_DB:-mumulingsi_novel} - # 数据库连接信息(用于 entrypoint.sh) + # 数据库连接信息(用于 entrypoint.sh,须与 postgres 服务一致) - DB_HOST=postgres - DB_PORT=5432 + - POSTGRES_USER=${POSTGRES_USER:-mumulingsi} + - POSTGRES_DB=${POSTGRES_DB:-mumulingsi_novel} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-123456} # PostgreSQL 连接池配置 diff --git a/frontend/.env.example b/frontend/.env.example new file mode 100644 index 0000000..74470b2 --- /dev/null +++ b/frontend/.env.example @@ -0,0 +1,2 @@ +# XinMi API 文档地址(默认 https://api.xinmi.cloud,一般无需修改) +# VITE_OFFICIAL_API_DOC_URL=https://api.xinmi.cloud diff --git a/frontend/index.html b/frontend/index.html index 73130fb..d14ca90 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,6 +4,9 @@ + + + 墨木灵思 diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a3661a8..27305fc 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -27,14 +27,11 @@ import Login from './pages/Login'; import AuthCallback from './pages/AuthCallback'; import ProtectedRoute from './components/ProtectedRoute'; import AppFooter from './components/AppFooter'; -import SpringFestival from './components/SpringFestival'; import './App.css'; function App() { return ( <> - {/* 🧧 春节喜庆装饰 */} - void; - onDoNotShowToday: () => void; - onNeverShow: () => void; -} - -export default function AnnouncementModal({ visible, onClose, onDoNotShowToday, onNeverShow }: AnnouncementModalProps) { - const [qqImageError, setQqImageError] = useState(false); - const [wxImageError, setWxImageError] = useState(false); - const { token } = theme.useToken(); - const alphaColor = (color: string, alpha: number) => `color-mix(in srgb, ${color} ${(alpha * 100).toFixed(0)}%, transparent)`; - - useEffect(() => { - if (visible) { - setQqImageError(false); - setWxImageError(false); - } - }, [visible]); - - const handleDoNotShowToday = () => { - onDoNotShowToday(); - onClose(); - }; - - const handleNeverShow = () => { - onNeverShow(); - onClose(); - }; - - return ( - - 🎉 欢迎使用 AI小说创作助手 - - } - open={visible} - onCancel={onClose} - footer={ - - - - - } - width={700} - centered - styles={{ - body: { - padding: '20px', - background: token.colorBgContainer, - }, - header: { - background: `linear-gradient(135deg, ${alphaColor(token.colorPrimary, 0.1)} 0%, ${alphaColor(token.colorBgContainer, 0.98)} 100%)`, - borderBottom: `1px solid ${token.colorBorderSecondary}`, - padding: '16px 24px', - }, - footer: { - background: token.colorBgContainer, - borderTop: `1px solid ${token.colorBorderSecondary}`, - padding: '16px 24px', - }, - }} - > -
-
-

👋 欢迎加入我们的交流群!在这里你可以:

-
    -
  • 💬 与其他创作者交流心得
  • -
  • 💡 获取最新功能更新和使用技巧
  • -
  • 🐛 反馈问题和建议
  • -
  • 📚 分享创作经验和灵感
  • -
-

- 扫描下方二维码加入交流群: -

-
- -
- {/* QQ 二维码 */} -
-

- QQ交流群 -

- {!qqImageError ? ( -
- QQ交流群二维码 setQqImageError(true)} - /> -
- ) : ( -
-

二维码加载失败

-
- )} -
- - {/* 微信二维码 */} -
-

- 微信交流群 -

- {!wxImageError ? ( -
- 微信交流群二维码 setWxImageError(true)} - /> -
- ) : ( -
-

二维码加载失败

-
- )} -
-
- -
- 💡 提示:选择"今日内不再展示"当天不再显示,选择"永不再展示"将永久隐藏此公告 -
-
-
- ); -} \ No newline at end of file diff --git a/frontend/src/components/AppFooter.tsx b/frontend/src/components/AppFooter.tsx index 68bf63b..c176084 100644 --- a/frontend/src/components/AppFooter.tsx +++ b/frontend/src/components/AppFooter.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from 'react'; -import { Typography, Space, Divider, Badge, Button, Grid, theme } from 'antd'; -import { GithubOutlined, CopyrightOutlined, HeartFilled, ClockCircleOutlined, GiftOutlined } from '@ant-design/icons'; +import { Typography, Divider, Badge, Grid, theme } from 'antd'; +import { ClockCircleOutlined, CopyrightOutlined } from '@ant-design/icons'; import { VERSION_INFO, getVersionString } from '../config/version'; import { checkLatestVersion } from '../services/versionService'; @@ -21,7 +21,6 @@ export default function AppFooter({ sidebarWidth = 0 }: AppFooterProps) { const alphaColor = (color: string, alpha: number) => `color-mix(in srgb, ${color} ${(alpha * 100).toFixed(0)}%, transparent)`; useEffect(() => { - // 检查版本更新(每次都重新检查) const checkVersion = async () => { try { const result = await checkLatestVersion(); @@ -33,19 +32,16 @@ export default function AppFooter({ sidebarWidth = 0 }: AppFooterProps) { } }; - // 延迟3秒后检查,避免影响首次加载 const timer = setTimeout(checkVersion, 3000); return () => clearTimeout(timer); }, []); - // 点击版本号查看更新 const handleVersionClick = () => { if (hasUpdate && releaseUrl) { window.open(releaseUrl, '_blank'); } }; - // 计算左边距:桌面端有侧边栏时需要偏移 const leftOffset = isMobile ? 0 : sidebarWidth; return ( @@ -61,8 +57,8 @@ export default function AppFooter({ sidebarWidth = 0 }: AppFooterProps) { padding: isMobile ? '8px 12px' : '10px 16px', zIndex: 100, boxShadow: `0 -2px 16px ${alphaColor(token.colorText, 0.08)}`, - backgroundColor: alphaColor(token.colorBgContainer, 0.82), // 半透明背景以支持 backdrop-filter - transition: 'left 0.3s ease', // 平滑过渡 + backgroundColor: alphaColor(token.colorBgContainer, 0.82), + transition: 'left 0.3s ease', }} >
- {isMobile ? ( - // 移动端:紧凑单行布局 -
- - - {VERSION_INFO.projectName} - {getVersionString()} - - - - - - - - - - - {VERSION_INFO.buildTime} - -
- ) : ( - // PC端:完整布局 - } + {/* 版本信息 */} + + - {/* 版本信息 */} - - { - if (hasUpdate) { - e.currentTarget.style.transform = 'scale(1.05)'; - } - }} - onMouseLeave={(e) => { - if (hasUpdate) { - e.currentTarget.style.transform = 'scale(1)'; - } - }} - title={hasUpdate ? `发现新版本 v${latestVersion},点击查看` : '当前版本'} - > - {VERSION_INFO.projectName} - {getVersionString()} - - + {VERSION_INFO.projectName} + {getVersionString()} + + - {/* GitHub 链接 */} - - - GitHub - + - {/* 资源模块 */} - - 源码库 - + {/* 许可证 */} + + + {VERSION_INFO.license} + - {/* LinuxDO 社区 */} - - LinuxDO 社区 - + - {/* 赞助按钮 */} - - - {/* 许可证 */} - - - {VERSION_INFO.license} - - - {/* 更新时间 */} - - - {VERSION_INFO.buildTime} - - - {/* 致谢信息 */} - - Made with - - by {VERSION_INFO.author} - - - )} + {/* 更新时间 */} + + + {VERSION_INFO.buildTime} +
- ); } \ No newline at end of file diff --git a/frontend/src/components/CardStyles.tsx b/frontend/src/components/CardStyles.tsx index 162b8f3..5ad5b3d 100644 --- a/frontend/src/components/CardStyles.tsx +++ b/frontend/src/components/CardStyles.tsx @@ -20,10 +20,7 @@ const bookshelfNewHoverShadow = ` inset 0 1px 0 color-mix(in srgb, var(--ant-color-bg-container) 90%, transparent) `; -const promptTemplateBaseShadow = ` - 0 6px 16px color-mix(in srgb, var(--ant-color-text) 11%, transparent), - 0 1px 0 color-mix(in srgb, var(--ant-color-white) 42%, transparent) inset -`; +const promptTemplateBaseShadow = '4px 4px 0 color-mix(in srgb, var(--ant-color-text) 10%, transparent)'; // BookshelfPage 样式(书架/书本卡片) export const bookshelfCardStyles = { @@ -107,28 +104,25 @@ export const bookshelfCardHoverHandlers = { export const promptTemplateCardStyles = { templateCard: { height: '100%', - borderRadius: 14, + borderRadius: 2, overflow: 'hidden', - border: '1px solid color-mix(in srgb, var(--ant-color-text) 8%, transparent)', - background: 'linear-gradient(180deg, color-mix(in srgb, var(--ant-color-bg-container) 97%, var(--ant-color-primary) 3%) 0%, var(--ant-color-bg-container) 100%)', + border: '1px solid color-mix(in srgb, var(--ant-color-text) 14%, transparent)', + background: 'var(--ant-color-bg-container)', boxShadow: promptTemplateBaseShadow, - transition: 'transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.28s ease', + transition: 'transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease', } as CSSProperties, }; export const promptTemplateCardHoverHandlers = { onMouseEnter: (e: React.MouseEvent) => { const target = e.currentTarget; - target.style.transform = 'translateY(-6px)'; - target.style.boxShadow = ` - 0 14px 24px color-mix(in srgb, var(--ant-color-text) 16%, transparent), - 0 1px 0 color-mix(in srgb, var(--ant-color-white) 48%, transparent) inset - `; + target.style.transform = 'translate(-2px, -2px)'; + target.style.boxShadow = '6px 6px 0 color-mix(in srgb, var(--ant-color-primary) 25%, transparent)'; target.style.borderColor = 'color-mix(in srgb, var(--ant-color-primary) 24%, transparent)'; }, onMouseLeave: (e: React.MouseEvent) => { const target = e.currentTarget; - target.style.transform = 'translateY(0)'; + target.style.transform = 'translate(0, 0)'; target.style.boxShadow = promptTemplateBaseShadow; target.style.borderColor = 'color-mix(in srgb, var(--ant-color-text) 8%, transparent)'; }, diff --git a/frontend/src/components/ChangelogFloatingButton.tsx b/frontend/src/components/ChangelogFloatingButton.tsx deleted file mode 100644 index 799ed7a..0000000 --- a/frontend/src/components/ChangelogFloatingButton.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { useState } from 'react'; -import { FloatButton, Grid } from 'antd'; -import { FileTextOutlined } from '@ant-design/icons'; -import ChangelogModal from './ChangelogModal'; - -const { useBreakpoint } = Grid; - -export default function ChangelogFloatingButton() { - const [showChangelog, setShowChangelog] = useState(false); - const screens = useBreakpoint(); - const isMobile = !screens.md; - - return ( - <> - } - type="primary" - tooltip="查看更新日志" - style={{ - // 桌面端时,确保按钮在主内容区域内(侧边栏右侧) - right: 24, - bottom: 100, - // 移动端无侧边栏,不需要额外处理 - ...(isMobile ? {} : { - // 确保 zIndex 低于侧边栏但高于内容 - zIndex: 999, - }), - }} - onClick={() => setShowChangelog(true)} - /> - - setShowChangelog(false)} - /> - - ); -} \ No newline at end of file diff --git a/frontend/src/components/ChangelogModal.tsx b/frontend/src/components/ChangelogModal.tsx deleted file mode 100644 index 94f37df..0000000 --- a/frontend/src/components/ChangelogModal.tsx +++ /dev/null @@ -1,306 +0,0 @@ -import { Modal, Timeline, Tag, Avatar, Empty, Spin, Button, Space } from 'antd'; -import { useState, useEffect } from 'react'; -import { - BugOutlined, - StarOutlined, - FileTextOutlined, - BgColorsOutlined, - ThunderboltOutlined, - ExperimentOutlined, - ToolOutlined, - QuestionCircleOutlined, - GithubOutlined, - ReloadOutlined, - ClockCircleOutlined, - SyncOutlined, -} from '@ant-design/icons'; -import { - fetchChangelog, - groupChangelogByDate, - cacheChangelog, - clearChangelogCache, - type ChangelogEntry, -} from '../services/changelogService'; - -interface ChangelogModalProps { - visible: boolean; - onClose: () => void; -} - -// 提交类型图标和颜色配置 -const typeConfig: Record = { - feature: { icon: , color: 'green', label: '新功能' }, - update: { icon: , color: 'geekblue', label: '更新' }, - fix: { icon: , color: 'red', label: '修复' }, - docs: { icon: , color: 'blue', label: '文档' }, - style: { icon: , color: 'purple', label: '样式' }, - refactor: { icon: , color: 'orange', label: '重构' }, - perf: { icon: , color: 'gold', label: '性能' }, - test: { icon: , color: 'cyan', label: '测试' }, - chore: { icon: , color: 'default', label: '杂项' }, - other: { icon: , color: 'default', label: '其他' }, -}; - -export default function ChangelogModal({ visible, onClose }: ChangelogModalProps) { - const [changelog, setChangelog] = useState([]); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(null); - const [page, setPage] = useState(1); - const [hasMore, setHasMore] = useState(true); - - // 加载更新日志 - // 每次用户打开窗口时才同步获取最新数据,不自动刷新 - const loadChangelog = async (pageNum: number = 1, append: boolean = false) => { - setLoading(true); - setError(null); - - try { - // 每次打开都从网络获取最新数据 - const entries = await fetchChangelog(pageNum, 30); - - if (entries.length === 0) { - setHasMore(false); - } else { - if (append) { - setChangelog(prev => [...prev, ...entries]); - } else { - setChangelog(entries); - // 缓存第一页数据(用于分页加载时的数据持久化) - if (pageNum === 1) { - cacheChangelog(entries); - } - } - } - } catch (err) { - setError(err instanceof Error ? err.message : '获取更新日志失败'); - } finally { - setLoading(false); - } - }; - - // 初始加载 - useEffect(() => { - if (visible) { - loadChangelog(1, false); - setPage(1); - setHasMore(true); - } - }, [visible]); - - // 加载更多 - const handleLoadMore = () => { - const nextPage = page + 1; - setPage(nextPage); - loadChangelog(nextPage, true); - }; - - // 刷新(清除缓存并重新加载) - const handleRefresh = () => { - clearChangelogCache(); - setPage(1); - setHasMore(true); - loadChangelog(1, false); - }; - - // 按日期分组 - const groupedChangelog = groupChangelogByDate(changelog); - const sortedDates = Array.from(groupedChangelog.keys()).sort((a, b) => b.localeCompare(a)); - - // 格式化日期 - const formatDate = (dateStr: string) => { - const date = new Date(dateStr); - const now = new Date(); - const diffDays = Math.floor((now.getTime() - date.getTime()) / (1000 * 60 * 60 * 24)); - - if (diffDays === 0) return '今天'; - if (diffDays === 1) return '昨天'; - if (diffDays < 7) return `${diffDays} 天前`; - - return date.toLocaleDateString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric' }); - }; - - // 格式化时间 - const formatTime = (dateStr: string) => { - return new Date(dateStr).toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' }); - }; - - return ( - - - 更新日志 - - - ) - } - - { - !hasMore && changelog.length > 0 && ( -
- 已显示所有更新日志 -
- ) - } - - )} - -
- 💡 提示:每次打开窗口时自动获取最新更新日志,数据来源于 GitHub 提交历史 -
-
- ); -} \ No newline at end of file diff --git a/frontend/src/components/CharacterCareerCard.tsx b/frontend/src/components/CharacterCareerCard.tsx index d585021..c2ad408 100644 --- a/frontend/src/components/CharacterCareerCard.tsx +++ b/frontend/src/components/CharacterCareerCard.tsx @@ -6,7 +6,7 @@ import axios from 'axios'; const { TextArea } = Input; const { Text, Paragraph } = Typography; -const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:8000'; +const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || ''; interface CareerDetail { id: string; diff --git a/frontend/src/config/version.ts b/frontend/src/config/version.ts index 360d12c..fa3edfd 100644 --- a/frontend/src/config/version.ts +++ b/frontend/src/config/version.ts @@ -16,9 +16,12 @@ export const VERSION_INFO = { projectName: '墨木灵思', projectFullName: '墨木灵思 - AI 智能小说创作助手', - // 链接信息 - githubUrl: 'https://www.xinmi.cloud/', - linuxDoUrl: 'https://linux.do/t/topic/1106333', + // 链接信息(不在代码里写死 GitHub;需要时在 .env 里配置 Vite 变量) + linuxDoUrl: '', + /** XinMi API 官方地址(侧栏入口、设置页文档链接) */ + xinmiApiBaseUrl: 'http://api.xinmi.cloud', + officialApiDocUrl: + String(import.meta.env.VITE_OFFICIAL_API_DOC_URL ?? '').trim() || 'http://api.xinmi.cloud', // 许可证 license: 'GPL v3.0', diff --git a/frontend/src/index.css b/frontend/src/index.css index 5bb84b7..5fdf4cb 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -5,7 +5,14 @@ body, } :root { - font-family: "PingFang SC", "Microsoft YaHei", "Heiti SC", Inter, system-ui, sans-serif; + --app-font-serif: 'Noto Serif SC', 'Songti SC', 'SimSun', serif; + --app-font-sans: 'Source Sans 3', 'PingFang SC', 'Microsoft YaHei', sans-serif; + --app-font-mono: 'IBM Plex Mono', 'Consolas', monospace; + --app-ink: #292524; + --app-parchment: #f5f0e6; + --app-copper: #b45309; + --app-gold: #f59e0b; + font-family: var(--app-font-sans); line-height: 1.5715; font-weight: 400; font-synthesis: none; @@ -16,6 +23,41 @@ body, -ms-text-size-adjust: 100%; } +[data-theme-resolved='dark'] { + --app-ink: #e7e5e4; + --app-parchment: #0c0a09; + --app-copper: #f59e0b; + --app-gold: #fbbf24; +} + +.app-serif-title { + font-family: var(--app-font-serif); + letter-spacing: 0.02em; +} + +.app-shell-sider .ant-menu-dark, +.app-shell-sider .ant-menu { + background: transparent !important; +} + +.app-shell-sider .ant-menu-item-selected { + border-left: 3px solid var(--app-gold) !important; +} + +.app-login-tabs .ant-tabs-nav::before { + border-bottom-color: color-mix(in srgb, var(--app-ink) 12%, transparent); +} + +.app-login-tabs .ant-tabs-tab-active .ant-tabs-tab-btn { + color: var(--app-copper) !important; + font-weight: 700; +} + +.app-prompt-header { + border-left: 4px solid var(--app-copper); + padding-left: 20px; +} + body { margin: 0; min-height: 100vh; @@ -219,8 +261,8 @@ body { } .ant-tooltip .ant-tooltip-inner { - background: var(--app-tooltip-bg, #884d5c); - border-radius: 8px; + background: var(--app-tooltip-bg, #292524); + border-radius: 2px; padding: 8px 16px; font-weight: 500; box-shadow: 0 4px 12px var(--app-tooltip-shadow, rgba(136, 77, 92, 0.3)); diff --git a/frontend/src/pages/About.tsx b/frontend/src/pages/About.tsx index 81d888b..ec0648c 100644 --- a/frontend/src/pages/About.tsx +++ b/frontend/src/pages/About.tsx @@ -8,6 +8,8 @@ import { SmileOutlined } from '@ant-design/icons'; +import { VERSION_INFO } from '../config/version'; + const { Title, Paragraph, Text } = Typography; export default function About() { @@ -52,7 +54,7 @@ export default function About() {
关于 墨木灵思 - 墨木灵思 (MoMu LingSi) 是一款基于人工智能的智能小说创作助手,旨在帮助创作者更高效、更具创意地完成文学作品。 + 墨木灵思 是一款基于人工智能的智能小说创作助手,旨在帮助创作者更高效、更具创意地完成文学作品。
@@ -140,7 +142,16 @@ export default function About() {
- © 2026 墨木灵思团队 | 了解更多 + © 2026 墨木灵思团队 + {VERSION_INFO.officialApiDocUrl ? ( + <> + {' '} + |{' '} + + 了解更多 + + + ) : null}
diff --git a/frontend/src/pages/AuthCallback.tsx b/frontend/src/pages/AuthCallback.tsx index ed2786d..986e667 100644 --- a/frontend/src/pages/AuthCallback.tsx +++ b/frontend/src/pages/AuthCallback.tsx @@ -2,16 +2,15 @@ import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { Spin, Result, Button, Modal, Input, message, theme } from 'antd'; import { authApi } from '../services/api'; -import AnnouncementModal from '../components/AnnouncementModal'; export default function AuthCallback() { const navigate = useNavigate(); const [status, setStatus] = useState<'loading' | 'success' | 'error'>('loading'); const [errorMessage, setErrorMessage] = useState(''); - const [showAnnouncement, setShowAnnouncement] = useState(false); const [showPasswordModal, setShowPasswordModal] = useState(false); const { token } = theme.useToken(); const alphaColor = (color: string, alpha: number) => `color-mix(in srgb, ${color} ${(alpha * 100).toFixed(0)}%, transparent)`; + interface PasswordStatus { has_password: boolean; has_custom_password: boolean; @@ -26,64 +25,33 @@ export default function AuthCallback() { useEffect(() => { const handleCallback = async () => { try { - // 后端会通过 Cookie 自动设置认证信息 - // 这里只需要验证登录状态 const currentUser = await authApi.getCurrentUser(); - - // 检查是否是首次登录(通过 Cookie 标记) const isFirstLogin = document.cookie.includes('first_login=true'); setStatus('success'); if (isFirstLogin) { - // 首次登录:生成默认密码并显示提示 const defaultPassword = `${currentUser.username}@666`; - const pwdStatus = { + setPasswordStatus({ has_password: false, has_custom_password: false, username: currentUser.username, default_password: defaultPassword - }; - setPasswordStatus(pwdStatus); - - // 清除首次登录标记 Cookie + }); document.cookie = 'first_login=; path=/; max-age=0'; - - // 显示密码初始化弹窗 - setTimeout(() => { - setShowPasswordModal(true); - }, 1000); + setTimeout(() => setShowPasswordModal(true), 1000); return; } - // 非首次登录:正常流程 - // 从 sessionStorage 获取重定向地址 const redirect = sessionStorage.getItem('login_redirect') || '/'; sessionStorage.removeItem('login_redirect'); - - // 检查是否永久隐藏公告或今日已隐藏 - const hideForever = localStorage.getItem('announcement_hide_forever'); - const hideToday = localStorage.getItem('announcement_hide_today'); - const today = new Date().toDateString(); - - if (hideForever === 'true' || hideToday === today) { - // 延迟一下再跳转,让用户看到成功提示 - setTimeout(() => { - navigate(redirect); - }, 1000); - } else { - // 延迟一下再显示公告,让用户看到成功提示 - setTimeout(() => { - setShowAnnouncement(true); - }, 1000); - } + setTimeout(() => navigate(redirect), 1000); } catch (error) { console.error('登录失败:', error); setStatus('error'); setErrorMessage('登录失败,请重试'); } }; - handleCallback(); }, [navigate]); @@ -98,9 +66,7 @@ export default function AuthCallback() { }}>
-
- 正在处理登录... -
+
正在处理登录...
); @@ -119,55 +85,21 @@ export default function AuthCallback() { status="error" title="登录失败" subTitle={errorMessage} - extra={ - - } + extra={} style={{ background: token.colorBgContainer, padding: 40, borderRadius: 8 }} /> ); } - const handleAnnouncementClose = () => { - setShowAnnouncement(false); - const redirect = sessionStorage.getItem('login_redirect') || '/'; - sessionStorage.removeItem('login_redirect'); - navigate(redirect); - }; - - const handleDoNotShowToday = () => { - // 设置今日不再显示 - const today = new Date().toDateString(); - localStorage.setItem('announcement_hide_today', today); - }; - - const handleNeverShow = () => { - // 设置永久不再显示 - localStorage.setItem('announcement_hide_forever', 'true'); - }; - const handleSetPassword = async () => { - // 如果没有输入新密码,使用默认密码 const passwordToSet = newPassword || passwordStatus?.default_password; - - if (!passwordToSet) { - message.error('请输入新密码'); - return; - } - if (passwordToSet.length < 6) { - message.error('密码长度至少为6个字符'); - return; - } - if (newPassword && newPassword !== confirmPassword) { - message.error('两次输入的密码不一致'); - return; - } + if (!passwordToSet) { message.error('请输入新密码'); return; } + if (passwordToSet.length < 6) { message.error('密码长度至少为6个字符'); return; } + if (newPassword && newPassword !== confirmPassword) { message.error('两次输入的密码不一致'); return; } setSettingPassword(true); try { - // 首次登录使用初始化接口,后续使用修改接口 const isFirstLogin = !passwordStatus?.has_password; if (isFirstLogin) { await authApi.initializePassword(passwordToSet); @@ -177,24 +109,9 @@ export default function AuthCallback() { message.success('密码设置成功'); } setShowPasswordModal(false); - - // 继续后续流程 const redirect = sessionStorage.getItem('login_redirect') || '/'; sessionStorage.removeItem('login_redirect'); - - const hideForever = localStorage.getItem('announcement_hide_forever'); - const hideToday = localStorage.getItem('announcement_hide_today'); - const today = new Date().toDateString(); - - if (hideForever === 'true' || hideToday === today) { - setTimeout(() => { - navigate(redirect); - }, 500); - } else { - setTimeout(() => { - setShowAnnouncement(true); - }, 500); - } + setTimeout(() => navigate(redirect), 500); } catch { message.error('密码设置失败,请重试'); } finally { @@ -203,46 +120,19 @@ export default function AuthCallback() { }; const handleSkipPasswordSetting = async () => { - // 首次登录时,如果跳过设置,使用默认密码初始化 const isFirstLogin = !passwordStatus?.has_password; if (isFirstLogin && passwordStatus?.default_password) { - try { - await authApi.initializePassword(passwordStatus.default_password); - } catch (error) { - console.error('初始化默认密码失败:', error); - } + try { await authApi.initializePassword(passwordStatus.default_password); } + catch (error) { console.error('初始化默认密码失败:', error); } } - setShowPasswordModal(false); - - // 继续后续流程 const redirect = sessionStorage.getItem('login_redirect') || '/'; sessionStorage.removeItem('login_redirect'); - - const hideForever = localStorage.getItem('announcement_hide_forever'); - const hideToday = localStorage.getItem('announcement_hide_today'); - const today = new Date().toDateString(); - - if (hideForever === 'true' || hideToday === today) { - setTimeout(() => { - navigate(redirect); - }, 500); - } else { - setTimeout(() => { - setShowAnnouncement(true); - }, 500); - } + setTimeout(() => navigate(redirect), 500); }; return ( <> - -
-

您已成功通过 Linux DO 授权登录!

-

系统已为您自动生成默认密码,您可以选择设置自定义密码或继续使用默认密码。

+

您已成功登录!

+

您可以选择设置自定义密码或继续使用默认密码。

{passwordStatus?.default_password && ( -
+
账号:{passwordStatus.username}
- 默认密码:{passwordStatus.default_password} + 默认密码:{passwordStatus.default_password}
)}
-
- setNewPassword(e.target.value)} - placeholder="请输入新密码" - style={{ marginTop: 4 }} - /> + setNewPassword(e.target.value)} placeholder="请输入新密码" style={{ marginTop: 4 }} />
- setConfirmPassword(e.target.value)} - placeholder="请再次输入密码" - style={{ marginTop: 4 }} - /> + setConfirmPassword(e.target.value)} placeholder="请再次输入密码" style={{ marginTop: 4 }} />
@@ -308,10 +176,10 @@ export default function AuthCallback() {
); -} \ No newline at end of file +} diff --git a/frontend/src/pages/BookshelfPage.tsx b/frontend/src/pages/BookshelfPage.tsx index 659e560..ad740e8 100644 --- a/frontend/src/pages/BookshelfPage.tsx +++ b/frontend/src/pages/BookshelfPage.tsx @@ -1,10 +1,11 @@ -import { Card, Button, Spin, Space, Tag, Typography, Alert, theme } from 'antd'; -import { BookOutlined, RocketOutlined, BulbOutlined, UploadOutlined, DownloadOutlined, LoadingOutlined, CalendarOutlined, DeleteOutlined, CheckCircleOutlined, EditOutlined, PauseCircleOutlined, PictureOutlined, SwapOutlined, ReloadOutlined } from '@ant-design/icons'; +import { Card, Button, Spin, Space, Tag, Typography, theme } from 'antd'; +import { BookOutlined, RocketOutlined, BulbOutlined, UploadOutlined, DownloadOutlined, LoadingOutlined, CalendarOutlined, DeleteOutlined, CheckCircleOutlined, EditOutlined, PauseCircleOutlined, PictureOutlined, SwapOutlined, ReloadOutlined, InfoCircleOutlined, CloseOutlined } from '@ant-design/icons'; import { useState } from 'react'; import type { ReactNode } from 'react'; import type { Project } from '../types'; import { bookshelfCardStyles, bookshelfCardHoverHandlers } from '../components/CardStyles'; import { useThemeMode } from '../theme/useThemeMode'; +import { VERSION_INFO } from '../config/version'; const { Paragraph } = Typography; @@ -215,42 +216,91 @@ export default function BookshelfPage({ - - {showApiTip && projects.length === 0 && ( - - - 在开始创作之前,请先配置您的AI接口(支持 OpenAI / Anthropic)。 - - + +
+
+ 欢迎使用 {VERSION_INFO.projectName} +
+
+ 在开始创作之前,请先配置您的 AI 接口(支持 OpenAI 兼容、Gemini 等)。 +
+
+ + + + - - - - {linuxdoEnabled ? ( - <> - 第三方登录 - {renderLinuxDOLogin()} - - ) : null} - + 登录系统 + + + ); const renderEmailLogin = () => { @@ -429,13 +357,8 @@ export default function Login() { - -
+ + - @@ -470,10 +389,7 @@ export default function Login() { } placeholder="请输入新密码" /> @@ -485,9 +401,7 @@ export default function Login() { { required: true, message: '请再次输入新密码' }, ({ getFieldValue }) => ({ validator(_, value) { - if (!value || getFieldValue('new_password') === value) { - return Promise.resolve(); - } + if (!value || getFieldValue('new_password') === value) return Promise.resolve(); return Promise.reject(new Error('两次输入的新密码不一致')); }, }), @@ -525,7 +439,7 @@ export default function Login() { prefix={} placeholder="请输入已注册邮箱" autoComplete="email" - style={{ height: 46, borderRadius: 12 }} + style={{ height: 46, borderRadius: 2 }} /> @@ -543,15 +457,10 @@ export default function Login() { prefix={} placeholder="请输入 6 位登录验证码" maxLength={6} - style={{ height: 46, borderRadius: '12px 0 0 12px' }} + style={{ height: 46, borderRadius: '2px 0 0 2px' }} /> - @@ -563,15 +472,7 @@ export default function Login() { htmlType="submit" loading={loading} block - style={{ - height: 46, - fontSize: 16, - fontWeight: 600, - background: `linear-gradient(90deg, ${token.colorPrimary} 0%, ${alphaColor(token.colorPrimary, 0.86)} 100%)`, - border: 'none', - borderRadius: '12px', - boxShadow: primaryButtonShadow, - }} + style={primaryButtonStyle} > 验证码登录 @@ -606,7 +507,7 @@ export default function Login() { prefix={} placeholder="请输入注册邮箱" autoComplete="email" - style={{ height: 46, borderRadius: 12 }} + style={{ height: 46, borderRadius: 2 }} /> @@ -624,46 +525,34 @@ export default function Login() { prefix={} placeholder="请输入 6 位验证码" maxLength={6} - style={{ height: 46, borderRadius: '12px 0 0 12px' }} + style={{ height: 46, borderRadius: '2px 0 0 2px' }} /> - - + } placeholder="选填,默认使用邮箱前缀" autoComplete="nickname" - style={{ height: 46, borderRadius: 12 }} + style={{ height: 46, borderRadius: 2 }} /> } placeholder="请输入登录密码" autoComplete="new-password" - style={{ height: 46, borderRadius: 12 }} + style={{ height: 46, borderRadius: 2 }} /> @@ -675,9 +564,7 @@ export default function Login() { { required: true, message: '请再次输入登录密码' }, ({ getFieldValue }) => ({ validator(_, value) { - if (!value || getFieldValue('password') === value) { - return Promise.resolve(); - } + if (!value || getFieldValue('password') === value) return Promise.resolve(); return Promise.reject(new Error('两次输入的密码不一致')); }, }), @@ -687,7 +574,7 @@ export default function Login() { prefix={} placeholder="请再次输入登录密码" autoComplete="new-password" - style={{ height: 46, borderRadius: 12 }} + style={{ height: 46, borderRadius: 2 }} /> @@ -697,361 +584,89 @@ export default function Login() { htmlType="submit" loading={loading} block - style={{ - height: 46, - fontSize: 16, - fontWeight: 600, - background: `linear-gradient(90deg, ${token.colorPrimary} 0%, ${alphaColor(token.colorPrimary, 0.86)} 100%)`, - border: 'none', - borderRadius: '12px', - boxShadow: primaryButtonShadow, - }} + style={primaryButtonStyle} > 注册并登录 - 验证码将发送到你填写的邮箱,若未收到请检查垃圾箱或稍后重试。注册后可通过邮箱验证码登录,也支持邮箱重置密码。 + 验证码将发送到你填写的邮箱,若未收到请检查垃圾箱或稍后重试。 ); - const renderLinuxDOLogin = () => ( -
- -
- ); - const authTabs = [ - ...(localAuthEnabled - ? [ - { - key: 'local-login', - label: '本地登录', - children: renderLocalLogin(), - }, - ] - : []), - ...(emailAuthEnabled - ? [ - { - key: 'email-login', - label: '邮箱登录', - children: renderEmailLogin(), - }, - ] - : []), - ...(emailAuthEnabled && emailRegisterEnabled - ? [ - { - key: 'email-register', - label: '邮箱注册', - children: renderEmailRegister(), - }, - ] - : []), + ...(localAuthEnabled ? [{ key: 'local-login', label: '本地登录', children: renderLocalLogin() }] : []), + ...(emailAuthEnabled ? [{ key: 'email-login', label: '邮箱登录', children: renderEmailLogin() }] : []), + ...(emailAuthEnabled && emailRegisterEnabled ? [{ key: 'email-register', label: '邮箱注册', children: renderEmailRegister() }] : []), ]; if (checking) { return ( -
+
); } + const pageTexture = `repeating-linear-gradient(-12deg, transparent, transparent 31px, ${alphaColor(token.colorText, 0.035)} 31px, ${alphaColor(token.colorText, 0.035)} 32px)`; + return ( - <> - - -
- -
- - -
-
- -
- -
- 墨木灵思 -
- - 墨木灵思 - -
- - -
- - 基于 AI 的 - <br /> - <span - style={{ - backgroundImage: `linear-gradient(90deg, ${token.colorPrimary} 0%, #d946ef 100%)`, - WebkitBackgroundClip: 'text', - backgroundClip: 'text', - WebkitTextFillColor: 'transparent', - color: token.colorPrimary, - }} - > - 智能小说创作助手 - </span> - - - 从灵感到成稿,围绕「多模型协同、创作流程自动化、角色关系管理、章节精修」构建一体化创作工作台。 - -
- - - {featureItems.map((item) => ( - - - - - {item.icon} - {item.title} - - - {item.description} - - - - - ))} - -
- - - OpenAI - Gemini - Claude - LinuxDO OAuth - Docker Compose - PostgreSQL - -
- - - © 2026 墨木灵思 · GPLv3 License - -
- - + +
+ +
+
+
+ +
+ 墨木灵思 +
+ 墨木灵思 +
+ 执笔于 AI,落墨成章 + 多模型协同 · 世界观构建 · 角色关系 · 章节精修 +
+ -
-
- - - 欢迎回来 - - - 登录 墨木灵思,继续你的小说创作项目。 - - - -
- {authTabs.length > 0 ? ( - - ) : null} - - {!localAuthEnabled && !linuxdoEnabled && !emailAuthEnabled ? ( - - ) : null} - - {emailAuthEnabled && !emailRegisterEnabled ? ( - - ) : null} - - - } - style={{ background: alphaColor(token.colorPrimary, 0.06), borderRadius: 12 }} - message="登录说明" - description={( -
    - {loginTips.map((tip) => ( -
  • - {tip} -
  • - ))} -
- )} - /> +
+ {featureItems.map((item, index) => ( +
+ + {item.icon} +
+ {item.title} + {item.description} +
+
+ ))} + + {['OpenAI', 'Gemini', 'Claude', 'Docker', 'PostgreSQL'].map((label) => ( + {label} + ))} + +
+ + + + + 进入创作台 + 登录后继续你的小说项目 + +
+ {authTabs.length > 0 ? : null} + {authTabs.length === 0 ? : null} + {emailAuthEnabled && !emailRegisterEnabled ? : null} + + } style={{ background: token.colorFillTertiary, border: `1px solid ${token.colorBorder}`, borderRadius: 2 }} message="登录说明" description={
    {loginTips.map((tip) =>
  • {tip}
  • )}
} />
-
+
- - + © 2026 墨木灵思 · GPLv3 +
+
); } diff --git a/frontend/src/pages/ProjectDetail.tsx b/frontend/src/pages/ProjectDetail.tsx index c551635..0b5b8e4 100644 --- a/frontend/src/pages/ProjectDetail.tsx +++ b/frontend/src/pages/ProjectDetail.tsx @@ -23,6 +23,7 @@ import { import { useStore } from '../store'; import { useCharacterSync, useOutlineSync, useChapterSync } from '../store/hooks'; import { projectApi } from '../services/api'; +import { VERSION_INFO } from '../config/version'; import ThemeSwitch from '../components/ThemeSwitch'; import { useThemeMode } from '../theme/useThemeMode'; import { getStoredSidebarCollapsed, setStoredSidebarCollapsed } from '../utils/sidebarState'; @@ -198,7 +199,13 @@ export default function ProjectDetail() { { key: 'source-code', icon: , - label: 源码库, + label: VERSION_INFO.officialApiDocUrl ? ( + + API 文档 + + ) : ( + API 文档 + ), }, ], }, diff --git a/frontend/src/pages/ProjectList.tsx b/frontend/src/pages/ProjectList.tsx index 774cef6..4accb13 100644 --- a/frontend/src/pages/ProjectList.tsx +++ b/frontend/src/pages/ProjectList.tsx @@ -9,7 +9,6 @@ import { eventBus, EventNames } from '../store/eventBus'; import type { ReactNode } from 'react'; import type { Project, User } from '../types'; import UserMenu from '../components/UserMenu'; -import ChangelogFloatingButton from '../components/ChangelogFloatingButton'; import ThemeSwitch from '../components/ThemeSwitch'; import { useThemeMode } from '../theme/useThemeMode'; import SettingsPage from './Settings'; @@ -19,6 +18,8 @@ import PromptTemplates from './PromptTemplates'; import BookImport from './BookImport'; import BookshelfPage from './BookshelfPage'; import { getStoredSidebarCollapsed, setStoredSidebarCollapsed } from '../utils/sidebarState'; +import { VERSION_INFO } from '../config/version'; +import { shellColors } from '../theme/themeConfig'; const { Text } = Typography; @@ -386,10 +387,11 @@ export default function ProjectList() { }; const isMobile = window.innerWidth <= 768; - const headerHeight = isMobile ? 56 : 70; - const expandedSiderWidth = 220; - const collapsedSiderWidth = 60; + const headerHeight = isMobile ? 56 : 64; + const expandedSiderWidth = 232; + const collapsedSiderWidth = 64; const desktopSiderWidth = collapsed ? collapsedSiderWidth : expandedSiderWidth; + const shell = shellColors[resolvedMode]; const currentViewTitle = activeView === 'projects' ? '我的书架' @@ -447,9 +449,9 @@ export default function ProjectList() { label: '系统设置', }] : []), { - key: 'mumu-api', + key: 'xinmi-api', icon: , - label: 'MuMuのAPI', + label: 'XinMi API', }, ], }, @@ -487,12 +489,16 @@ export default function ProjectList() { label: '系统设置', }] : []), { - key: 'mumu-api', + key: 'xinmi-api', icon: , - label: 'MuMuのAPI', + label: 'XinMi API', }, ]; + const openXinmiApi = () => { + window.open(VERSION_INFO.officialApiDocUrl, '_blank', 'noopener,noreferrer'); + }; + return (
} onClick={() => setCollapsed(false)} style={{ - color: token.colorWhite, + color: shell.siderText, width: '100%', height: '100%', padding: 0, @@ -549,39 +557,53 @@ export default function ProjectList() { /> ) : ( <> -
+
- - 墨木灵思 - +
+ + {VERSION_INFO.projectName} + + + 铜墨编辑部 + +
- - @@ -343,7 +306,6 @@ export default function PromptTemplates() { - {/* 使用提示 */} @@ -354,20 +316,20 @@ export default function PromptTemplates() { description={
- • 系统默认模板(灰色头部):始终启用,无需手动开关。点击"编辑"后将创建您的自定义副本。 + • 系统默认模板(灰底标题):始终启用,无需手动开关。点击「编辑」后将创建您的自定义副本。 - • 已自定义模板(紫色头部):可通过开关控制启用/禁用,使用 {'{variable_name}'} 格式表示变量占位符。点击"重置"可恢复为系统默认。 + • 已自定义模板(赭石标题):可通过开关控制启用/禁用,使用 {'{variable_name}'} 格式表示变量占位符。点击「重置」可恢复为系统默认。
} type="info" showIcon={false} style={{ - marginTop: isMobile ? 16 : 24, - borderRadius: 12, - background: token.colorInfoBg, - border: `1px solid ${token.colorInfoBorder}` + marginTop: isMobile ? 16 : 20, + borderRadius: 2, + background: token.colorFillTertiary, + border: `1px solid ${token.colorBorder}`, }} /> @@ -381,8 +343,9 @@ export default function PromptTemplates() { variant="borderless" style={{ background: token.colorBgContainer, - borderRadius: isMobile ? 12 : 16, - boxShadow: token.boxShadowSecondary, + borderRadius: 2, + border: `1px solid ${token.colorBorder}`, + boxShadow: 'none', marginBottom: isMobile ? 16 : 24 }} styles={{ body: { padding: isMobile ? '12px' : '16px' } }} @@ -407,8 +370,9 @@ export default function PromptTemplates() { variant="borderless" style={{ background: token.colorBgContainer, - borderRadius: isMobile ? 12 : 16, - boxShadow: token.boxShadowSecondary, + borderRadius: 2, + border: `1px solid ${token.colorBorder}`, + boxShadow: 'none', }} > } onClick={() => handleEdit(template)} size={isMobile ? 'small' : 'middle'} - style={{ borderRadius: 6 }} + style={{ borderRadius: 2 }} > 编辑 @@ -498,7 +462,7 @@ export default function PromptTemplates() { icon={} onClick={() => handleReset(template.template_key)} size={isMobile ? 'small' : 'middle'} - style={{ borderRadius: 6 }} + style={{ borderRadius: 2 }} > 重置 diff --git a/frontend/src/pages/Settings.tsx b/frontend/src/pages/Settings.tsx index 5326015..569cb68 100644 --- a/frontend/src/pages/Settings.tsx +++ b/frontend/src/pages/Settings.tsx @@ -4,6 +4,7 @@ import { SaveOutlined, DeleteOutlined, ReloadOutlined, InfoCircleOutlined, Check import { settingsApi, mcpPluginApi } from '../services/api'; import type { SettingsUpdate, APIKeyPreset, PresetCreateRequest, APIKeyPresetConfig } from '../types'; import { eventBus, EventNames } from '../store/eventBus'; +import { VERSION_INFO } from '../config/version'; const { Title, Text } = Typography; const { Option } = Select; @@ -284,25 +285,29 @@ export default function SettingsPage() { }); }; - const mumuTextDefaultUrl = 'https://api.mumuverse.space/v1'; - const mumuRegisterUrl = 'https://api.mumuverse.space/register?aff=4NN8'; - const mumuCoverBaseUrlOptions = [ - { value: 'https://api.mumuverse.space/v1beta', label: 'https://api.mumuverse.space/v1beta', defaultModel: 'gemini-3.1-flash-image-preview' }, - { value: 'https://api.mumuverse.space/v1', label: 'https://api.mumuverse.space/v1', defaultModel: 'gpt-image-1.5' }, + const xinmiApiHost = VERSION_INFO.xinmiApiBaseUrl.replace(/\/$/, ''); + const xinmiTextDefaultUrl = `${xinmiApiHost}/v1`; + const officialApiDocUrl = VERSION_INFO.officialApiDocUrl; + const openOfficialApiDoc = () => { + window.open(officialApiDocUrl, '_blank', 'noopener,noreferrer'); + }; + const xinmiCoverBaseUrlOptions = [ + { value: `${xinmiApiHost}/v1beta`, label: 'v1beta', defaultModel: 'gemini-3.1-flash-image-preview' }, + { value: `${xinmiApiHost}/v1`, label: 'v1', defaultModel: 'gpt-image-1.5' }, ]; const defaultCoverSettings = { cover_enabled: false, - cover_api_provider: 'mumu', + cover_api_provider: 'xinmi', cover_api_key: '', - cover_api_base_url: mumuCoverBaseUrlOptions[0].value, - cover_image_model: mumuCoverBaseUrlOptions[0].defaultModel, + cover_api_base_url: xinmiCoverBaseUrlOptions[0].value, + cover_image_model: xinmiCoverBaseUrlOptions[0].defaultModel, }; const apiProviders = [ { - value: 'mumu', - label: 'MuMuのAPI', - defaultUrl: mumuTextDefaultUrl, + value: 'xinmi', + label: 'XinMi API', + defaultUrl: xinmiTextDefaultUrl, defaultModel: 'gemini-3-flash-preview' }, { value: 'openai', label: 'OpenAI Compatible', defaultUrl: 'https://api.openai.com/v1' }, @@ -321,7 +326,7 @@ export default function SettingsPage() { if (provider.defaultUrl) { nextValues.api_base_url = provider.defaultUrl; } - if (provider.value === 'mumu') { + if (provider.value === 'xinmi') { nextValues.api_key = ''; nextValues.llm_model = provider.defaultModel || 'gemini-3-flash-preview'; } @@ -334,10 +339,10 @@ export default function SettingsPage() { const coverApiProviders = [ { - value: 'mumu', - label: 'MuMuのAPI', - defaultUrl: mumuCoverBaseUrlOptions[0].value, - defaultModel: mumuCoverBaseUrlOptions[0].defaultModel, + value: 'xinmi', + label: 'XinMi API', + defaultUrl: xinmiCoverBaseUrlOptions[0].value, + defaultModel: xinmiCoverBaseUrlOptions[0].defaultModel, }, { value: 'gemini', label: 'Google Gemini', defaultUrl: 'https://generativelanguage.googleapis.com/v1beta' }, { value: 'grok', label: 'Grok', defaultUrl: 'https://api.x.ai/v1' }, @@ -354,20 +359,20 @@ export default function SettingsPage() { if (provider.defaultUrl) { nextValues.cover_api_base_url = provider.defaultUrl; } - if (provider.value === 'mumu') { + if (provider.value === 'xinmi') { nextValues.cover_api_key = ''; - nextValues.cover_image_model = provider.defaultModel || mumuCoverBaseUrlOptions[0].defaultModel; + nextValues.cover_image_model = provider.defaultModel || xinmiCoverBaseUrlOptions[0].defaultModel; } form.setFieldsValue(nextValues); setCoverTestResult(null); }; - const handleMumuCoverBaseUrlChange = (value: string) => { - const option = mumuCoverBaseUrlOptions.find(item => item.value === value); + const handleXinmiCoverBaseUrlChange = (value: string) => { + const option = xinmiCoverBaseUrlOptions.find(item => item.value === value); form.setFieldsValue({ cover_api_base_url: value, - cover_image_model: option?.defaultModel || mumuCoverBaseUrlOptions[0].defaultModel, + cover_image_model: option?.defaultModel || xinmiCoverBaseUrlOptions[0].defaultModel, }); setCoverTestResult(null); }; @@ -611,7 +616,7 @@ export default function SettingsPage() { if (provider.defaultUrl) { nextValues.api_base_url = provider.defaultUrl; } - if (provider.value === 'mumu') { + if (provider.value === 'xinmi') { nextValues.api_key = ''; nextValues.llm_model = provider.defaultModel || 'gemini-3-flash-preview'; } @@ -923,7 +928,7 @@ export default function SettingsPage() { // return 'purple'; case 'gemini': return 'green'; - case 'mumu': + case 'xinmi': return 'magenta'; default: return 'default'; @@ -1228,11 +1233,11 @@ export default function SettingsPage() { - {selectedProvider === 'mumu' && ( + {selectedProvider === 'xinmi' && ( @@ -1241,9 +1246,9 @@ export default function SettingsPage() {
@@ -1740,22 +1745,22 @@ export default function SettingsPage() { - {selectedCoverProvider === 'mumu' && ( + {selectedCoverProvider === 'xinmi' && ( - 已固定提供 MuMuのAPI 图片接口地址选项,切换地址时会自动带出推荐模型。API Key 需前往 MuMuのAPI 站点注册获取。 + 已固定提供墨木灵思 API 图片接口地址选项,切换地址时会自动带出推荐模型。API Key 请按文档在控制台获取。
@@ -1765,15 +1770,15 @@ export default function SettingsPage() { )} - + - {selectedCoverProvider === 'mumu' ? ( + {selectedCoverProvider === 'xinmi' ? ( - {selectedPresetProvider === 'mumu' && ( + {selectedPresetProvider === 'xinmi' && ( @@ -1897,9 +1902,9 @@ export default function SettingsPage() {
diff --git a/frontend/src/services/changelogService.ts b/frontend/src/services/changelogService.ts deleted file mode 100644 index c6cede4..0000000 --- a/frontend/src/services/changelogService.ts +++ /dev/null @@ -1,276 +0,0 @@ -/** - * GitHub 提交日志获取服务 - * 用于从 GitHub API 获取项目的提交历史并转换为更新日志 - */ - -export interface GitHubCommit { - sha: string; - commit: { - author: { - name: string; - email: string; - date: string; - }; - message: string; - }; - html_url: string; - author: { - login: string; - avatar_url: string; - } | null; -} - -export interface ChangelogEntry { - id: string; - date: string; - version?: string; - author: { - name: string; - avatar?: string; - username?: string; - }; - message: string; - commitUrl: string; - type: 'feature' | 'fix' | 'docs' | 'style' | 'refactor' | 'perf' | 'test' | 'chore' | 'update' | 'other'; - scope?: string; -} - -const GITHUB_API_BASE = 'https://api.github.com'; -const REPO_OWNER = 'xiamuceer-j'; -const REPO_NAME = '墨木灵思'; - -/** - * 提交类型映射表 - * 统一不同别名到标准类型 - */ -const TYPE_MAPPING: Record = { - // 功能类 - 'feat': 'feature', - 'feature': 'feature', - 'update': 'update', - - // 修复类 - 'fix': 'fix', - - // 文档类 - 'docs': 'docs', - 'doc': 'docs', - - // 样式类 - 'style': 'style', - - // 重构类 - 'refactor': 'refactor', - - // 性能类 - 'perf': 'perf', - - // 测试类 - 'test': 'test', - - // 杂项类 - 'chore': 'chore', -}; - -/** - * 从提交信息中解析类型和作用域 - * - * 匹配优先级(从高到低): - * 1. 标准 Conventional Commits 格式: type(scope): message 或 type: message - * 2. 方括号格式: [type] message - * 3. 简单前缀格式: type: message(支持中文冒号) - * 4. 关键词模糊匹配(中英文) - */ -function parseCommitType(message: string): { type: ChangelogEntry['type']; scope?: string; cleanMessage: string } { - const lowerMessage = message.toLowerCase().trim(); - - // 优先级1:标准 Conventional Commits 格式 - type(scope): message 或 type: message - // 匹配所有支持的类型 - const conventionalPattern = new RegExp( - `^(${Object.keys(TYPE_MAPPING).join('|')})(?:\\(([^)]+)\\))?\\s*[:\\::]\\s*(.+)`, - 'i' - ); - const conventionalMatch = message.match(conventionalPattern); - if (conventionalMatch) { - const typeStr = conventionalMatch[1].toLowerCase(); - const mappedType = TYPE_MAPPING[typeStr] || 'other'; - return { - type: mappedType, - scope: conventionalMatch[2], - cleanMessage: conventionalMatch[3].trim(), - }; - } - - // 优先级2:方括号格式 - [type] message - const bracketPattern = new RegExp( - `^\\[(${Object.keys(TYPE_MAPPING).join('|')})\\]\\s*(.+)`, - 'i' - ); - const bracketMatch = message.match(bracketPattern); - if (bracketMatch) { - const typeStr = bracketMatch[1].toLowerCase(); - const mappedType = TYPE_MAPPING[typeStr] || 'other'; - return { - type: mappedType, - cleanMessage: bracketMatch[2].trim(), - }; - } - - // 优先级3:简单前缀格式 - type: message(支持英文和中文冒号) - for (const [key, value] of Object.entries(TYPE_MAPPING)) { - const prefixPattern = new RegExp(`^${key}\\s*[:\\::]\\s*`, 'i'); - if (prefixPattern.test(lowerMessage)) { - const cleanMsg = message.replace(prefixPattern, '').trim(); - return { type: value, cleanMessage: cleanMsg }; - } - } - - // 优先级4:关键词模糊匹配(仅当前面都不匹配时) - const keywordMap: Array<{ keywords: string[]; type: ChangelogEntry['type'] }> = [ - { keywords: ['修复', 'fix'], type: 'fix' }, - { keywords: ['优化', 'perf'], type: 'perf' }, - { keywords: ['文档', 'document'], type: 'docs' }, - { keywords: ['新增', '添加', '增加', 'add'], type: 'feature' }, - { keywords: ['更新', 'update'], type: 'update' }, - { keywords: ['样式', 'style'], type: 'style' }, - { keywords: ['重构', 'refactor'], type: 'refactor' }, - { keywords: ['测试', 'test'], type: 'test' }, - ]; - - for (const { keywords, type } of keywordMap) { - if (keywords.some(keyword => lowerMessage.includes(keyword))) { - return { type, cleanMessage: message }; - } - } - - // 默认类型 - return { type: 'other', cleanMessage: message }; -} - -/** - * 获取GitHub提交历史 - */ -export async function fetchGitHubCommits(page: number = 1, perPage: number = 30): Promise { - try { - const url = `${GITHUB_API_BASE}/repos/${REPO_OWNER}/${REPO_NAME}/commits?author=${REPO_OWNER}&page=${page}&per_page=${perPage}`; - - const response = await fetch(url, { - method: 'GET', - headers: { - 'Accept': 'application/vnd.github.v3+json', - }, - cache: 'no-cache', - }); - - if (!response.ok) { - throw new Error(`GitHub API 请求失败: ${response.status} ${response.statusText}`); - } - - return await response.json(); - } catch (error) { - console.error('获取 GitHub 提交历史失败:', error); - throw error; - } -} - -/** - * 将GitHub提交转换为更新日志条目 - */ -export function convertCommitsToChangelog(commits: GitHubCommit[]): ChangelogEntry[] { - return commits.map(commit => { - const { type, scope, cleanMessage } = parseCommitType(commit.commit.message); - - return { - id: commit.sha, - date: commit.commit.author.date, - author: { - name: commit.commit.author.name, - avatar: commit.author?.avatar_url, - username: commit.author?.login, - }, - message: cleanMessage, - commitUrl: commit.html_url, - type, - scope, - }; - }); -} - -/** - * 获取格式化的更新日志 - */ -export async function fetchChangelog(page: number = 1, perPage: number = 30): Promise { - const commits = await fetchGitHubCommits(page, perPage); - return convertCommitsToChangelog(commits); -} - -/** - * 按日期分组更新日志 - */ -export function groupChangelogByDate(entries: ChangelogEntry[]): Map { - const grouped = new Map(); - - entries.forEach(entry => { - const date = new Date(entry.date).toISOString().split('T')[0]; - const existing = grouped.get(date) || []; - existing.push(entry); - grouped.set(date, existing); - }); - - return grouped; -} - -/** - * 检查是否应该获取更新日志(避免频繁请求) - */ -export function shouldFetchChangelog(): boolean { - const lastFetch = localStorage.getItem('changelog_last_fetch'); - - if (!lastFetch) { - return true; - } - - const lastFetchTime = new Date(lastFetch).getTime(); - const now = Date.now(); - const oneHourMs = 60 * 60 * 1000; // 1小时 - - return now - lastFetchTime >= oneHourMs; -} - -/** - * 记录更新日志获取时间 - */ -export function markChangelogFetched(): void { - localStorage.setItem('changelog_last_fetch', new Date().toISOString()); -} - -/** - * 获取缓存的更新日志 - */ -export function getCachedChangelog(): ChangelogEntry[] | null { - const cached = localStorage.getItem('changelog_cache'); - if (cached) { - try { - return JSON.parse(cached); - } catch { - return null; - } - } - return null; -} - -/** - * 缓存更新日志 - */ -export function cacheChangelog(entries: ChangelogEntry[]): void { - localStorage.setItem('changelog_cache', JSON.stringify(entries)); -} - -/** - * 清除更新日志缓存 - * 用于强制刷新数据 - */ -export function clearChangelogCache(): void { - localStorage.removeItem('changelog_cache'); - localStorage.removeItem('changelog_last_fetch'); -} \ No newline at end of file diff --git a/frontend/src/services/versionService.ts b/frontend/src/services/versionService.ts index 4eb94dc..06705bb 100644 --- a/frontend/src/services/versionService.ts +++ b/frontend/src/services/versionService.ts @@ -32,7 +32,7 @@ function compareVersion(v1: string, v2: string): number { export async function checkLatestVersion(): Promise { try { // 使用 shields.io 的 GitHub release badge API - const badgeUrl = 'https://img.shields.io/github/v/release/xiamuceer-j/墨木灵思'; + const badgeUrl = 'https://img.shields.io/github/v/release/mumulingsi-project/mumulingsi'; const response = await fetch(badgeUrl, { method: 'GET', @@ -63,7 +63,7 @@ export async function checkLatestVersion(): Promise { return { hasUpdate, latestVersion, - releaseUrl: `https://github.com/xiamuceer-j/墨木灵思/releases/tag/v${latestVersion}`, + releaseUrl: '', }; } } @@ -74,7 +74,7 @@ export async function checkLatestVersion(): Promise { return { hasUpdate: false, latestVersion: VERSION_INFO.version, - releaseUrl: VERSION_INFO.githubUrl, + releaseUrl: '', }; } } diff --git a/frontend/src/theme/themeConfig.ts b/frontend/src/theme/themeConfig.ts index 09aa7ec..92a9ea2 100644 --- a/frontend/src/theme/themeConfig.ts +++ b/frontend/src/theme/themeConfig.ts @@ -4,23 +4,48 @@ import type { ThemeMode } from './themeStorage'; export type ResolvedThemeMode = Exclude; +/** 铜墨编辑部 — 暖赭石 + 纸感底色,与原先蓝紫圆角风区分 */ const sharedToken: ThemeConfig['token'] = { - colorPrimary: '#4D8088', - borderRadius: 8, + colorPrimary: '#B45309', + colorInfo: '#0D9488', + colorSuccess: '#15803D', + colorWarning: '#CA8A04', + colorError: '#B91C1C', + borderRadius: 2, wireframe: false, - fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif", + fontFamily: "'Source Sans 3', 'PingFang SC', 'Microsoft YaHei', sans-serif", + fontFamilyCode: "'IBM Plex Mono', 'Consolas', monospace", }; const sharedComponents: ThemeConfig['components'] = { Button: { - borderRadius: 8, - controlHeight: 36, + borderRadius: 2, + controlHeight: 40, + fontWeight: 600, + primaryShadow: 'none', }, Card: { - borderRadiusLG: 12, + borderRadiusLG: 2, + boxShadowTertiary: 'none', + }, + Menu: { + itemBorderRadius: 0, + itemHeight: 44, + iconSize: 16, + }, + Tabs: { + inkBarColor: '#B45309', + titleFontSize: 14, + }, + Input: { + borderRadius: 2, + controlHeight: 42, + }, + Layout: { + headerHeight: 64, }, Tooltip: { - colorBgSpotlight: sharedToken.colorPrimary, + colorBgSpotlight: '#292524', }, }; @@ -28,17 +53,34 @@ const lightThemeConfig: ThemeConfig = { algorithm: theme.defaultAlgorithm, token: { ...sharedToken, - colorBgBase: '#F8F6F1', - colorTextBase: '#2B2B2B', - colorBgLayout: '#F8F6F1', - colorBgContainer: '#FFFFFF', + colorBgBase: '#F5F0E6', + colorTextBase: '#292524', + colorBgLayout: '#EDE8DC', + colorBgContainer: '#FFFCF7', + colorBorder: '#C9BFB0', + colorBorderSecondary: '#DDD5C8', + colorFillSecondary: '#E8E2D6', + colorFillTertiary: '#F0EBE1', + colorPrimaryBg: '#FEF3C7', + colorPrimaryBorder: '#D97706', + colorPrimaryHover: '#92400E', + colorLink: '#9A3412', + colorLinkHover: '#7C2D12', }, components: { ...sharedComponents, Layout: { - bodyBg: '#F8F6F1', - headerBg: '#FFFFFF', - siderBg: '#FFFFFF', + bodyBg: '#EDE8DC', + headerBg: '#FFFCF7', + siderBg: '#1C1917', + }, + Menu: { + ...sharedComponents.Menu, + darkItemBg: 'transparent', + darkItemColor: '#D6D3D1', + darkItemSelectedBg: 'rgba(180, 83, 9, 0.22)', + darkItemSelectedColor: '#FCD34D', + darkItemHoverBg: 'rgba(255, 255, 255, 0.06)', }, }, }; @@ -47,15 +89,34 @@ const darkThemeConfig: ThemeConfig = { algorithm: theme.darkAlgorithm, token: { ...sharedToken, - colorBgBase: '#141414', - colorTextBase: '#f5f5f5', + colorPrimary: '#F59E0B', + colorBgBase: '#0C0A09', + colorTextBase: '#E7E5E4', + colorBgLayout: '#0C0A09', + colorBgContainer: '#1C1917', + colorBorder: '#44403C', + colorBorderSecondary: '#292524', + colorFillSecondary: '#292524', + colorFillTertiary: '#1C1917', + colorPrimaryBg: 'rgba(245, 158, 11, 0.12)', + colorPrimaryBorder: '#B45309', + colorLink: '#FBBF24', + colorLinkHover: '#FCD34D', }, components: { ...sharedComponents, Layout: { - bodyBg: '#0f1115', - headerBg: '#141414', - siderBg: '#141414', + bodyBg: '#0C0A09', + headerBg: '#1C1917', + siderBg: '#0C0A09', + }, + Menu: { + ...sharedComponents.Menu, + darkItemBg: 'transparent', + darkItemColor: '#A8A29E', + darkItemSelectedBg: 'rgba(245, 158, 11, 0.18)', + darkItemSelectedColor: '#FCD34D', + darkItemHoverBg: 'rgba(255, 255, 255, 0.05)', }, }, }; @@ -63,3 +124,25 @@ const darkThemeConfig: ThemeConfig = { export const getThemeConfig = (mode: ResolvedThemeMode): ThemeConfig => { return mode === 'dark' ? darkThemeConfig : lightThemeConfig; }; + +/** 侧栏等壳层用色(不依赖 ant token 的固定值) */ +export const shellColors = { + light: { + siderBg: '#1C1917', + siderBorder: '#44403C', + siderAccent: '#F59E0B', + siderText: '#E7E5E4', + siderMuted: '#A8A29E', + headerBorder: '#C9BFB0', + inkPattern: 'rgba(28, 25, 23, 0.04)', + }, + dark: { + siderBg: '#0C0A09', + siderBorder: '#292524', + siderAccent: '#FBBF24', + siderText: '#E7E5E4', + siderMuted: '#78716C', + headerBorder: '#44403C', + inkPattern: 'rgba(251, 191, 36, 0.06)', + }, +} as const; diff --git a/frontend/src/theme/themeStorage.ts b/frontend/src/theme/themeStorage.ts index b109b74..98f1565 100644 --- a/frontend/src/theme/themeStorage.ts +++ b/frontend/src/theme/themeStorage.ts @@ -1,6 +1,7 @@ export type ThemeMode = 'light' | 'dark' | 'system'; -const THEME_MODE_STORAGE_KEY = 'mumu_theme_mode'; +const THEME_MODE_STORAGE_KEY = 'mumulingsi_theme_mode'; +const LEGACY_THEME_MODE_STORAGE_KEY = 'xinmi_theme_mode'; const isThemeMode = (value: string | null): value is ThemeMode => { return value === 'light' || value === 'dark' || value === 'system'; @@ -8,7 +9,18 @@ const isThemeMode = (value: string | null): value is ThemeMode => { export const getStoredThemeMode = (): ThemeMode => { try { - const value = localStorage.getItem(THEME_MODE_STORAGE_KEY); + let value = localStorage.getItem(THEME_MODE_STORAGE_KEY); + if (!value) { + value = localStorage.getItem(LEGACY_THEME_MODE_STORAGE_KEY); + if (isThemeMode(value)) { + localStorage.setItem(THEME_MODE_STORAGE_KEY, value); + try { + localStorage.removeItem(LEGACY_THEME_MODE_STORAGE_KEY); + } catch { + // ignore + } + } + } if (isThemeMode(value)) { return value; } diff --git a/frontend/src/utils/sidebarState.ts b/frontend/src/utils/sidebarState.ts index b5dcc46..895bb4e 100644 --- a/frontend/src/utils/sidebarState.ts +++ b/frontend/src/utils/sidebarState.ts @@ -1,4 +1,5 @@ -const SIDEBAR_COLLAPSED_STORAGE_KEY = 'mumu_sidebar_collapsed'; +const SIDEBAR_COLLAPSED_STORAGE_KEY = 'mumulingsi_sidebar_collapsed'; +const LEGACY_SIDEBAR_COLLAPSED_STORAGE_KEY = 'xinmi_sidebar_collapsed'; export const getStoredSidebarCollapsed = (): boolean => { if (typeof window === 'undefined') { @@ -6,7 +7,21 @@ export const getStoredSidebarCollapsed = (): boolean => { } try { - return localStorage.getItem(SIDEBAR_COLLAPSED_STORAGE_KEY) === '1'; + const v = localStorage.getItem(SIDEBAR_COLLAPSED_STORAGE_KEY); + if (v === '1' || v === '0') { + return v === '1'; + } + const legacy = localStorage.getItem(LEGACY_SIDEBAR_COLLAPSED_STORAGE_KEY); + if (legacy === '1' || legacy === '0') { + localStorage.setItem(SIDEBAR_COLLAPSED_STORAGE_KEY, legacy); + try { + localStorage.removeItem(LEGACY_SIDEBAR_COLLAPSED_STORAGE_KEY); + } catch { + // ignore + } + return legacy === '1'; + } + return false; } catch (error) { console.warn('读取侧边栏状态失败:', error); return false; diff --git a/images/image-20260518142402652.png b/images/image-20260518142402652.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd933f7133dd4b7ca761d7c7cbb3bcf65dcd90b GIT binary patch literal 224667 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∨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

P~rA^ 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 literal 0 HcmV?d00001 diff --git a/images/image-20260518142411086.png b/images/image-20260518142411086.png new file mode 100644 index 0000000000000000000000000000000000000000..b64b5ebaeba666ac0295538429525631275dccba GIT binary patch literal 343162 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