AstrBot 系统信息图片插件
一个专注于系统硬件监控的 AstrBot 插件,生成美观的系统状态图片。
功能特性
- 🖥️ 系统信息监控: 显示CPU、内存、磁盘使用情况
- 📊 可视化图表: 美观的圆形进度条和实时数据展示
- 🌐 跨平台支持: 支持Windows、Linux、macOS
- 🎨 中文字体优化: 智能字体加载,完美支持中文显示
- ⚡ 实时数据: 获取当前系统硬件实时状态信息
- 🛡️ 错误处理: 完善的异常处理和日志记录
- 🎯 专注性能: 纯系统监控,轻量高效
安装要求
- Python 3.7+
- AstrBot 框架
- 依赖库:
psutil>=5.9.0- 系统信息获取Pillow>=9.0.0- 图片生成和处理
安装方法
将插件文件放置到 AstrBot 的插件目录:
AstrBot/data/plugins/astrbot_plugin_sysinfoimg/安装依赖:
pip install -r requirements.txt在 AstrBot WebUI 中重载插件或重启 AstrBot
使用方法
安装插件后,在聊天中发送以下命令:
/sysinfo
插件将生成一张包含系统硬件信息的图片。
显示信息
生成的图片包含以下系统信息:
系统基础信息
- 系统信息:操作系统类型和版本
- 主机名:当前设备的主机名
- 处理器:CPU 型号信息
- 系统运行时间:自上次启动以来的运行时间
- 系统负载:当前系统负载情况
- 网络流量:网络接收/发送统计
- 当前时间:系统当前时间
性能监控图表
- CPU 使用率:圆形进度条显示当前 CPU 使用百分比和核心数
- 内存使用情况:圆形进度条显示已用内存/总内存及使用百分比
- 磁盘使用情况:圆形进度条显示系统盘使用百分比
磁盘分区信息
- 分区列表:显示所有可用磁盘分区的使用情况
- 使用率条形图:直观显示各分区的空间占用
图片特性
- 🎨 深色主题设计,美观易读
- 📊 彩色进度条显示资源使用率
- 🔤 自适应字体,支持多种系统字体
- 📐 紧凑尺寸 800x650 像素,适合各种聊天场景
- 🎯 专注系统监控,信息密度高
技术实现
- 使用
psutil库获取系统硬件和性能信息 - 使用
PIL (Pillow)库生成和绘制图片 - 支持 base64 编码图片传输
- 异常处理确保插件稳定运行
- 智能磁盘分区识别,过滤系统虚拟分区
兼容性
- ✅ Windows 10/11
- ✅ Linux (Ubuntu, CentOS, Debian 等)
- ✅ macOS
Linux 环境特别说明
在 Linux 环境下,如果图片中的中文字符显示为方块或不显示,需要安装中文字体:
快速安装(推荐):
# 使用提供的安装脚本
chmod +x install_fonts_linux.sh
./install_fonts_linux.sh
手动安装:
# Ubuntu/Debian
sudo apt-get install fonts-wqy-microhei fonts-wqy-zenhei fonts-noto-cjk
# CentOS/RHEL/Fedora
sudo yum install wqy-microhei-fonts wqy-zenhei-fonts google-noto-cjk-fonts
# 或者使用 dnf
sudo dnf install wqy-microhei-fonts wqy-zenhei-fonts google-noto-cjk-fonts
# Arch Linux
sudo pacman -S wqy-microhei wqy-zenhei noto-fonts-cjk
故障排除
中文字符显示问题
问题现象: 生成的图片中中文字符显示为方块或空白
解决方案:
检查字体安装:
# 检查系统中的中文字体 fc-list :lang=zh查看插件日志:
- 在 AstrBot 日志中查找字体加载相关信息
- 关键词:"成功加载字体"、"字体加载失败"、"动态搜索"
手动测试字体:
from PIL import Image, ImageDraw, ImageFont import os # 测试字体是否支持中文 font_path = "/usr/share/fonts/truetype/wqy/wqy-microhei.ttc" if os.path.exists(font_path): font = ImageFont.truetype(font_path, 20) img = Image.new('RGB', (200, 100), 'white') draw = ImageDraw.Draw(img) draw.text((10, 10), "测试中文", fill='black', font=font) img.save('test_chinese.png')重启服务:
- 安装字体后重启 AstrBot 服务
- 清除字体缓存:
fc-cache -fv
性能问题
如果图片生成较慢,可以:
- 减少字体搜索范围
- 使用更轻量的字体文件
- 检查系统资源使用情况
磁盘分区显示问题
问题现象: 某些分区不显示或显示异常
解决方案:
- 插件会自动过滤系统虚拟分区(如 proc, sysfs 等)
- 如果正常分区未显示,检查分区是否可访问
- 查看日志中的分区检测信息
更新日志
v1.1.1 (当前版本)
- 📏 固定图片高度: 将图片高度固定为900像素,确保所有用户生成的图片大小一致
- 🔧 修复图片大小不一致问题: 移除动态高度计算,使用固定高度创建背景
v1.1.0
- 🔧 修复插件加载错误: 移除外部
composer模块依赖,使用现有ImageGenerator类替代 - 🎨 文字位置对齐: 标准化所有渲染器的垂直间距,确保文本与框对齐
- 📝 Linux字体问题修复: 增强字体加载逻辑,添加自动字体安装功能
- 🖼️ 图片质量优化: 使用
optimize=True, compress_level=9优化PNG保存设置 - 📦 插件载入自动安装字体: 插件载入时默认安装和更新中文字体
- 🚀 发行版检测修复: 移除已弃用的
platform.linux_distribution()方法,使用更现代的方法 - 🧠 智能中文支持检测: 使用多重验证机制,准确识别字体是否支持中文
v1.0.5
- 🎯 专注系统监控: 移除AstrBot数据显示,专注于系统硬件监控
- ⚡ 性能优化: 减少数据获取开销,提升响应速度
- 📐 界面优化: 调整图片尺寸为800x650,布局更紧凑
- 🧹 代码精简: 移除约200行AstrBot相关代码,提升维护性
- 📊 数据来源: 数据来源更新为"系统监控 (psutil)"
v1.0.4
- 🔧 修复比例圆环错误: 纠正可见比例错误
v1.0.3
- 🔧 优化日志输出: 减少不必要的debug和info级别日志
- 🔇 静默处理: 静默处理字体加载失败等非关键错误
- 🐛 修复问题: 解决部分用户反馈的logging error问题
- 🛡️ 提升稳定性: 提升插件运行稳定性
v1.0.2
- 🤖 新增AstrBot状态监控: 显示消息总数、平台数、运行时间、内存占用
- 🎨 全新UI设计: 添加彩色信息卡片,提升视觉效果
- 📊 增强数据展示: 系统信息 + AstrBot数据双重监控
- 🔧 智能数据获取: 自动检测AstrBot运行状态和统计信息
- 📏 优化布局: 调整图片尺寸和元素排列,容纳更多信息
v1.0.1
- 🔧 大幅改进 Linux 环境下的中文字体支持
- ➕ 添加动态字体搜索功能
- 📝 增强字体加载日志和错误处理
- 🛠️ 提供 Linux 字体安装脚本
- 📚 完善文档和故障排除指南
v1.0.0
- 初始版本发布
- 支持基本系统信息获取和图片生成
- 跨平台兼容性支持
- 美观的图片界面设计
支持
如有问题或建议,请访问:
许可证
本插件基于 GNU Affero General Public License v3.0 许可证开源。