Skip to content

Add SQLite recording history, storage management, and build smoke checks / 新增录制历史、存储管理与构建验证#457

Open
lycorisdeve wants to merge 8 commits into
ihmily:mainfrom
lycorisdeve:ai-recording-history-storage
Open

Add SQLite recording history, storage management, and build smoke checks / 新增录制历史、存储管理与构建验证#457
lycorisdeve wants to merge 8 commits into
ihmily:mainfrom
lycorisdeve:ai-recording-history-storage

Conversation

@lycorisdeve

Copy link
Copy Markdown

中文说明

本 PR 由 AI 协助完成,并经过人工审查与本地验证。

新增功能

  • 将录制任务和录制历史迁移到 SQLite 保存;通用设置、Cookie、账号、语言和 Web 登录配置仍保留 JSON,避免全配置数据库化。
  • 为录制任务增加加入时间、更新时间、置顶状态、最近录制时间、最近录制文件和最近直播标题等元数据。
  • 新增录制卡片置顶/取消置顶能力,并保持排序稳定,避免置顶时影响正在录制的任务。
  • 新增 日志页面,展示运行日志和结构化录制历史;录制历史按开始录制和停止录制事件展示。
  • 新增存储页面,包含存储概览、目录文件浏览、最近录制文件、打开目录、删除录制文件、清理空目录和清理日志等功能。
  • 将运行日志目录调整为 log/,录制数据库目录调整为 data/database/。
  • 将 streamget 依赖保持为 ihmily/streamget Git 仓库最新版本。
  • 补充 Windows.exe、Web 和 GitHub Actions 构建说明,并增加 Windows/macOS/Linux 构建产物冒烟验证。

验证

  • ruff check main.py app --config .ruff.toml
  • ruff format --check --diff main.py app --config .ruff.toml
  • python -m compileall app main.py
  • 本地解析 GitHub Actions YAML 成功
  • 曾下载 fork 的 Windows beta 构建产物进行冒烟验证:桌面 exe 可启动、保持运行,并写入初始化日志。

说明

  • 本 PR 有意不做全配置数据库化;只把录制任务和录制历史保存到 SQLite。
  • 通用配置文件继续保留 JSON,以尽量兼容现有项目结构。
  • PR 中的功能实现、UI 调整、SQLite 持久化、日志/存储页面、打包 workflow 与验证流程由 AI 协助完成。

English Description

This PR was completed with AI assistance, then reviewed and validated locally.

New Features

  • Store recording rooms and recording history in SQLite, while keeping general app settings, cookies, accounts, language and web auth configuration in JSON.
  • Add recording metadata, including created time, updated time, pinned state, last recorded time, last recorded file and last live title.
  • Add pinned/unpinned recording cards with stable sorting, without interrupting active recordings.
  • Add a Logs page for runtime logs and structured recording history, split into start recording and stop recording events.
  • Add a Storage page with storage overview, directory browser, recent recording files, open-folder actions, delete-recording-files, clean-empty-directories and clean-logs tools.
  • Move runtime logs to log/ and the recording database to data/database/, with migration support for the old config/recordings.db path.
  • Keep the streamget dependency pointed at the latest ihmily/streamget Git repository.
  • Add packaging documentation for Windows exe, Web mode and GitHub Actions builds, plus Windows/macOS/Linux artifact smoke checks.

Validation

  • ruff check main.py app --config .ruff.toml
  • ruff format --check --diff main.py app --config .ruff.toml
  • python -m compileall app main.py
  • GitHub Actions YAML parsed successfully locally
  • A Windows beta artifact from the fork was downloaded and smoke-tested: the desktop executable started, stayed running and wrote initialization logs.

Notes

  • This PR intentionally avoids making all configuration database-backed; only recording rooms and recording history are stored in SQLite.
  • General configuration files remain JSON for compatibility with the existing project structure.
  • The feature implementation, UI adjustments, SQLite persistence, logs/storage pages, packaging workflow updates and validation flow were completed with AI assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant