# Changelog

## v1.1.1

### 功能拓展
- **搜索优化**: `/追番` 现在支持候选确认：当搜索到多个结果时，会先返回列表，可通过 `/追番 序号` 选择目标，减少订错番剧的情况。
- **取消订阅优化**: `/弃坑` 的匹配更贴近群聊使用场景：优先在本群已订阅列表中匹配，取消订阅更准确。

## v1.1.0

### 新增功能
- **取消订阅**: 新增 `/弃坑` 命令，支持群组移除已订阅的番剧更新提醒。
- **更新卡片渲染**: 引入 `EpisodeRenderer`，在番剧更新时自动推送精美的单集图文通知卡片。
- **命令别名**: 简化常用命令，支持使用 `/bgm` 代替 `/bgm搜索`。

### 核心优化
- **更新检测逻辑**: 重构剧集更新判定算法，结合播出日期与评论互动数据（`comment > 0`），显著降低更新误报率。
- **全链路 Base64 渲染**: 渲染引擎（放送表、剧集卡片）全面转向 Base64 内存流，移除临时文件 IO，提升并发性能。
- **Playwright 鲁棒性**: 优化浏览器安装与初始化逻辑，支持非交互式环境安装，并提供实时状态日志。
- **类型系统增强**: 引入完整的 `SubjectType`、`ImageSize` 等枚举类型，提升代码可维护性。
- **代码重构**: 优化 `SubjectsService` 的数据解析流，通过 Pydantic 严格过滤异常 API 返回。

## v1.0.0

### 新增功能
- **分类搜索**: 新增 `/bgm番剧`、`/bgm剧场版`、`/bgm漫画` 命令，支持更精准的类型过滤。
- **每日放送**: 新增 `/today` 命令，渲染精美的每日番剧放送表图片。
- **追番系统**: 新增 `/追番` 功能，支持订阅番剧并在有新集数更新时自动向群组推送通知。
- **通用搜索优化**: `/bgm搜索` 命令现在支持更完善的参数处理和 top_k 结果返回。

### 代码优化
- **渲染引擎重构**: 引入 `SubjectRenderer` 和 `CalendarRenderer`，基于 Playwright 实现更美观的图文卡片。
- **数据库集成**: 引入 SQLAlchemy 驱动的 SQLite 存储，用于管理番剧信息和订阅关系。
- **自动更新逻辑**: 新增定时任务，每小时自动检查订阅番剧的更新状态。
- **重构逻辑**: 将搜索与渲染逻辑分离，提取出 `_render_subjects` 和 `_handle_subject` 核心方法，提高代码复用性。
- **修复 Bug**: 修复了搜索命令中生成器未正确迭代导致无响应的问题。
- **类型提示**: 为核心方法添加了完善的类型注解和文档说明。
