Files
xian-favor/README.md

225 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Xian Favor - 收藏关注系统
一个灵活的收藏管理系统支持文本、链接、专栏、待办等多种内容类型提供命令行、API、Web三种操作方式。
## 功能特性
- **多种内容类型**: 文本片段、网址链接、个人专栏、待办事项
- **标签系统**: 灵活的标签分类,支持多标签
- **状态管理**: 待办事项支持待处理/进行中/已完成状态
- **优先级**: 待办事项支持低/中/高/紧急优先级
- **截止日期**: 待办事项支持设置截止日期
- **全文搜索**: 快速搜索标题、内容、备注
- **统计面板**: 实时统计各类型、状态数量
## 安装
```bash
cd works/xian-favor
pip install -e .
```
## 使用方式
### 命令行 (CLI)
```bash
# 添加文本笔记
xian_favor add text "这是我的笔记" -t "笔记,重要"
# 添加链接
xian_favor add link "https://example.com" --title "示例网站" -t "技术"
# 添加专栏
xian_favor add column "https://column.example.com/feed" --title "技术专栏" --source "RSS" -t "订阅"
# 添加待办(高优先级,截止日期)
xian_favor add todo "完成项目" -p high -d "2026-12-31" -t "工作"
# 列出所有条目
xian_favor list
# 筛选:只看待办
xian_favor list --type todo
# 筛选:只看进行中的待办
xian_favor list --type todo --status in_progress
# 筛选:按标签
xian_favor list --tag 技术
# 搜索
xian_favor search "关键词"
# 查看详情
xian_favor show 1
# 编辑
xian_favor edit 1 --status completed --note "已完成"
# 完成待办(快捷命令)
xian_favor done 1
# 删除
xian_favor delete 1
# 标签管理
xian_favor tags
xian_favor tags --delete "旧标签"
# 统计信息
xian_favor stats
# 启动API服务
xian_favor serve --port 19014
```
### API 服务
启动服务:
```bash
xian_favor serve
# 或指定端口
xian_favor serve --port 19014
```
API端点
| 端点 | 方法 | 说明 |
|------|------|------|
| `/api/items` | GET | 列出条目 (支持 type/status/tag/keyword 参数) |
| `/api/items` | POST | 创建条目 |
| `/api/items/<id>` | GET | 获取详情 |
| `/api/items/<id>` | PUT | 更新条目 |
| `/api/items/<id>` | DELETE | 删除条目 |
| `/api/items/<id>/done` | POST | 完成待办 |
| `/api/tags` | GET | 列出标签 |
| `/api/tags` | POST | 创建标签 |
| `/api/tags/<id>` | DELETE | 删除标签 |
| `/api/emails` | GET | 列出邮箱 |
| `/api/emails` | POST | 创建邮箱 |
| `/api/emails/<id>` | PUT | 更新邮箱 |
| `/api/emails/<id>` | DELETE | 删除邮箱 |
| `/api/send-email` | POST | 发送收藏到邮箱 |
| `/api/stats` | GET | 统计信息 |
| `/api/search` | GET | 搜索 (参数 q=关键词) |
### Web 界面
访问 `http://localhost:19014` 即可使用Web界面
- 侧边栏快速筛选(类型、状态)
- 搜索框实时搜索
- 统计卡片实时更新
- 添加/编辑/删除操作
- 一键完成待办
## 数据存储
数据保存在 `data/xian_favor.db` (SQLite数据库)
## 端口
- 默认端口: **19014**
## 项目结构
```
xian-favor/
├── xian_favor/
│ ├── __init__.py
│ ├── cli.py # 命令行工具
│ ├── api.py # API + Web服务
│ ├── db.py # 数据库操作
│ └── config.py # 配置
├── data/
│ └── xian_favor.db # 数据库
├── pyproject.toml
├── requirements.txt
└── README.md
```
## 版本历史
- **v2.4.0** (2026-04-16): 数据库备份机制
- 自动备份:每天 04:00 执行
- 手动备份:页面一键操作
- 备份清理规则保留30天 + 每月第一天永久保留
- 手动备份最多保留10个
- 支持恢复备份和删除备份
- 备份管理页面入口在侧边栏
- **v2.3.2** (2026-04-16): 搜索功能修复
- 修复 debounce 函数定义顺序问题
- 搜索框输入后可正常过滤列表
- **v2.3.1** (2026-04-16): 日期放到标题后面,不增加卡片高度
- 日期紧跟标题,同一行显示
- 格式紧凑:`04-16 11:09→04-16 12:00`
- **v2.3.0** (2026-04-16): 卡片显示创建和更新日期
- 每个收藏卡片底部显示日期
- 格式04-16 11:09月-日 时:分)
- 有更新时显示:创建 → 更新
- 字体更小更淡,不影响卡片高度
- **v2.2.0** (2026-04-16): 快捷添加按钮,一键选择类型
- 顶部按钮栏分离为4个快捷添加按钮文本、链接、待办、专栏
- 点击直接进入对应类型的添加弹窗
- 弹窗标题显示类型图标和名称
- 不再需要下拉选择类型,操作更快捷
- **v2.1.0** (2026-04-16): 待办截止时间支持日期+时间
- 截止日期改为日期时间选择器
- 列表显示友好格式:今天 18:30、明天 09:00 等
- 详情页显示完整格式2026年4月16日 18:30
- 后端支持多种日期格式解析
- 只有日期的待办视为当天 23:59 到期
- **v2.0.1** (2026-04-16): 转换弹窗优化
- 内容预览保留换行格式,提高可读性
- 转换方式默认改为复制创建
- **v2.0.0** (2026-04-16): 收藏转待办功能(大版本更新)
- 新增 `/api/items/<id>/convert` API
- **直接转换**:原收藏变为待办,数据合并
- **复制创建**:保留原收藏,新建待办任务
- 文本/链接/专栏类型可转换
- 内容自动合并到待办备注
- 前端列表和详情页添加转换按钮
- 弹窗配置:标题、状态、优先级、截止日期
- v1.11.0 (2026-04-16): 已完成待办可重新打开
- 新增 `/api/items/<id>/reopen` 接口
- 前端列表已完成待办显示重新打开按钮(↻图标)
- 可恢复为 pending 或 in_progress 状态
- v1.10.0 (2026-04-16): 网页端待办到期提醒功能
- 新增提醒 API `/api/reminders`
- 获取已过期、今天到期、即将到期的待办
- 前端顶部提醒栏显示提醒数量和概要
- 弹窗详情支持快速完成待办
- 每5分钟自动刷新提醒
- v1.9.2 (2026-04-14): 邮件发送历史记录
- 详情页面显示邮件发送记录(发送邮箱、时间)
- 支持多次发送,显示多条记录
- 发送成功/失败状态标记
- v1.9.0 (2026-04-14): 发送邮件功能 + 邮箱管理
- 每个收藏卡片添加"发送邮件"按钮
- 选择已有邮箱或输入新邮箱发送
- 新邮箱自动保存到邮箱管理
- 邮箱管理页面:添加、编辑、删除邮箱
- SMTP配置支持环境变量SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS
- v1.8.0 (2026-04-13): AI自动添加功能智能识别文本类型并整理数据
- 首页新增"AI添加"按钮
- 粘贴文本/链接/笔记等AI自动识别类型并提取关键信息
- 支持文本、链接、专栏、待办四种类型自动识别
- 自动生成标签和标题
- v1.7.0 (2026-04-13): 编辑收藏时支持更改类型,动态显示对应字段
- v1.6.0 (2026-04-13): 标签管理添加编辑功能,支持修改标签名称
- v1.5.1 (2026-04-13): 标签管理添加搜索功能,实时过滤标签列表
- v1.5.0 (2026-04-13): 首页添加分页功能每页20条记录
- v1.4.0 (2026-04-13): 首页添加导出按钮一键导出所有收藏为JSON文件
- v1.3.2 (2026-04-13): 编辑和添加模态框改为大尺寸(modal-lg)
- v1.3.1 (2026-04-13): 备注改名为详情,支持换行显示,扩大输入框
- v1.3.0 (2026-04-13): 标签管理功能和输入自动提示
- 侧边栏新增"标签管理"入口
- 标签管理页面:显示所有标签、使用条目数、创建/删除标签
- 添加/编辑时标签输入支持自动提示(输入时显示匹配的已有标签)
- 点击提示标签快速添加
- v1.2.1 (2026-04-13): 卡片显示两行,第二行显示内容预览
- v1.2.0 (2026-04-13): 压缩首页卡片高度,更紧凑的列表布局
- v1.1.1 (2026-04-13): 编辑备注改为多行输入框
- v1.1.0 (2026-04-13): 网页端支持查看详情和编辑功能
- v1.0.0 (2026-04-12): 初始版本支持CLI/API/Web三种模式