[v1.1.0] (定时推送分析 | PDF 功能 | propmt 调整)

- 修复了部分 bug
- 优化了权限情况,管理员控制绝大部分命令(防止滥用 token)
- 增加了定时自动触发分析功能
- 发送 PDF 版的推送,提供命令安装相关配置,也可以不配置 PDF 版
This commit is contained in:
回归天空
2025-08-29 00:03:58 +08:00
parent 242347489c
commit e6f6c303ae
7 changed files with 1089 additions and 166 deletions
+172
View File
@@ -0,0 +1,172 @@
# QQ群日常分析插件 - PDF 功能说明
## 概述
本插件现已支持生成 PDF 格式的群聊分析报告,提供更专业的报告输出格式。
## 功能特性
- 📄 **PDF 报告生成**: 将群聊分析结果导出为精美的 PDF 文档
- 🎨 **专业排版**: 针对 PDF 打印优化的样式设计
- 📊 **完整内容**: 包含所有分析数据(统计信息、话题分析、用户称号、群聊金句)
- 🔧 **灵活配置**: 可自定义输出目录和文件名格式
## 安装依赖
使用 PDF 功能前,需要安装 pyppeteer 库。有以下几种安装方式:
### 方式一:使用命令安装(推荐)
在群聊中直接使用安装命令:
```
/安装PDF
```
此命令会自动:
- 检查 pyppeteer 是否已安装
- 如未安装,自动安装 pyppeteer 库
- 下载 Chromium 浏览器
- 测试 PDF 功能是否正常
### 方式二:手动安装
```bash
pip install pyppeteer==1.0.2
```
首次使用时,pyppeteer 还需要下载 Chromium 浏览器,请确保网络连接正常。
## 使用方法
### 1. 设置输出格式
使用新增的 `/设置格式` 命令来切换输出格式:
```
/设置格式 pdf
```
支持的格式:
- `image` - 图片格式(默认)
- `text` - 文本格式
- `pdf` - PDF 格式
### 2. 生成 PDF 报告
设置为 PDF 格式后,使用常规的分析命令:
```
/群分析
/群分析 3 # 分析近3天的数据
```
### 3. 查看当前设置
```
/设置格式 # 不带参数,查看当前格式设置
/分析设置 status # 查看完整的插件状态
```
## 配置选项
`config.json` 中可以配置以下 PDF 相关选项:
```json
{
"output_format": "pdf",
"pdf_output_dir": "reports",
"pdf_filename_format": "群聊分析报告_{group_id}_{date}.pdf"
}
```
### 配置说明
- `output_format`: 输出格式,可选 "image"、"text"、"pdf"
- `pdf_output_dir`: PDF 文件保存目录
- `pdf_filename_format`: PDF 文件名格式,支持以下占位符:
- `{group_id}`: 群组ID
- `{date}`: 日期(YYYYMMDD 格式)
## PDF 报告内容
生成的 PDF 报告包含以下部分:
1. **报告标题和日期**
2. **基础统计数据**
- 消息总数
- 参与人数
- 总字符数
- 表情数量
- 最活跃时段
3. **热门话题分析**
- 话题名称
- 主要参与者
- 详细描述
4. **群友称号**
- 用户昵称
- 获得称号
- MBTI 类型
- 获得理由
5. **群聊金句**
- 精选的有趣发言
- 发言人
- 选择理由
## 故障排除
pyppeteer 版本要为稳定版的 1.0.2。
### 1. pyppeteer 安装失败
```bash
# 使用国内镜像安装
pip install pyppeteer -i https://pypi.tuna.tsinghua.edu.cn/simple/
```
### 2. Chromium 下载失败
```bash
# 手动下载 Chromium
python -m pyppeteer.install
```
### 3. PDF 生成失败
- 检查系统内存是否充足
- 确保有足够的磁盘空间
- 检查输出目录权限
### 4. 中文字体显示问题
PDF 使用系统默认字体,如果中文显示异常,请确保系统安装了中文字体。
## 性能说明
- PDF 生成比图片格式稍慢,通常需要 3-10 秒
- 首次使用时需要启动浏览器,可能需要更长时间
- 建议在服务器资源充足时使用
## 更新日志
### v1.1.0
- ✨ 新增 PDF 报告生成功能
- ✨ 新增 `/设置格式` 命令
- 🎨 优化 PDF 样式和排版
- 📝 完善配置选项和文档
## 技术实现
PDF 生成基于以下技术:
- **pyppeteer**: 无头浏览器控制
- **HTML/CSS**: 报告模板和样式
- **异步处理**: 非阻塞的 PDF 生成过程
## 注意事项
1. PDF 功能需要额外的系统资源,建议在配置较好的服务器上使用
2. 生成的 PDF 文件会保存在指定目录中,注意定期清理
3. 如果遇到权限问题,请检查输出目录的写入权限
+14 -4
View File
@@ -62,10 +62,14 @@ _✨ 一个基于AstrBot的智能群聊分析插件,能够生成精美的群
| enabled_groups | 启用分析的QQ群列表 | [] (所有群) |
| max_messages | 最大分析消息数量 | 1000 |
| analysis_days | 默认分析天数 | 1 |
| output_format | 输出格式 (pdf/image/text) | pdf |
| require_admin | 仅管理员可用 | false |
| output_format | 输出格式 (image/text/pdf) | image |
| topic_analysis_enabled | 启用话题分析 | true |
| user_title_analysis_enabled | 启用用户称号分析 | true |
| pdf_output_dir | PDF文件输出目录 | reports |
| pdf_filename_format | PDF文件名格式 | 群聊分析报告_{group_id}_{date}.pdf |
| enable_auto_analysis | 启用自动分析 | false |
| auto_analysis_time | 自动分析时间 | 09:00 |
## 分析内容
@@ -77,12 +81,12 @@ _✨ 一个基于AstrBot的智能群聊分析插件,能够生成精美的群
- 最活跃时段
### 💬 话题分析
- 自动提取3-5个主要话题
- 自动提取主要话题
- 识别话题参与者
- 总结讨论要点和结论
### 🏆 用户称号
基于用户行为特征分配称号:
基于用户行为特征分配称号(例)
- **水群小能手**: 发言频繁的活跃用户
- **技术专家**: 经常讨论技术话题
- **夜猫子**: 深夜活跃用户
@@ -118,6 +122,12 @@ _✨ 一个基于AstrBot的智能群聊分析插件,能够生成精美的群
- 智能话题和用户称号分析
- 精美可视化报告生成
### v1.1.0
- 修复了部分bug
- 优化了权限情况,管理员控制绝大部分命令(防止滥用 token)
- 增加了定时自动触发分析功能
- 发送 PDF 版的推送,提供命令安装相关配置,也可以不配置 PDF 版
## 许可证
MIT License
+14 -2
View File
@@ -23,7 +23,7 @@
"auto_analysis_time": {
"type": "string",
"description": "自动分析时间",
"default": "22:00",
"default": "09:00",
"hint": "每日自动分析的时间,格式HH:MM"
},
"enable_auto_analysis": {
@@ -36,7 +36,7 @@
"type": "string",
"description": "输出格式",
"default": "image",
"hint": "分析报告的输出格式:image(图片)、text(文本)"
"hint": "分析报告的输出格式:image(图片)、text(文本)、pdf(PDF文件)"
},
"min_messages_threshold": {
@@ -74,5 +74,17 @@
"description": "最大消息查询轮数",
"default": 35,
"hint": "⚠️ 警告:增加此值会导致大量Token消耗!默认值35轮(有一定消耗)。设置过高可能导致LLM费用激增"
},
"pdf_output_dir": {
"type": "string",
"description": "PDF输出目录",
"default": "data/plugins/astrbot-qq-group-daily-analysis/reports",
"hint": "PDF报告文件的保存目录"
},
"pdf_filename_format": {
"type": "string",
"description": "PDF文件名格式",
"default": "群聊分析报告_{group_id}_{date}.pdf",
"hint": "PDF文件名格式,支持变量:{group_id}(群号)、{date}(日期)"
}
}
-16
View File
@@ -1,16 +0,0 @@
{
"enabled_groups": [
"936617127"
],
"max_messages": 1000,
"analysis_days": 1,
"auto_analysis_time": "19:41",
"enable_auto_analysis": true,
"output_format": "image",
"min_messages_threshold": 50,
"topic_analysis_enabled": true,
"user_title_analysis_enabled": true,
"max_topics": 5,
"max_user_titles": 8,
"max_query_rounds": 50
}
+887 -143
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -13,6 +13,6 @@ help: | # 插件的帮助信息
命令:
/群分析 [天数] - 分析群聊活动
/分析设置 [操作] - 管理设置(enable/disable/status/test
version: v1.0.0 # 插件版本号。格式:v1.1.1 或者 v1.1
version: v1.1.0 # 插件版本号。格式:v1.1.1 或者 v1.1
author: SXP-Simon # 作者
repo: https://github.com/SXP-Simon/astrbot-qq-group-daily-analysis # 插件的仓库地址
+1
View File
@@ -0,0 +1 @@
pyppeteer==1.0.2