适用于nonebot2的GUI
Project description
随着您的 NoneBot2 插件日益增多,.env 文件是否已变得臃肿不堪,管理起来愈发吃力?
LazyTea 正是为此而生。它是一款为 NoneBot2 精心打造的本地图形化界面 (GUI),致力于让您以更直观、更优雅的方式驾驭您的机器人,将繁琐的管理工作化为一杯下午茶般的轻松惬意。
📌 项目关系
为了更好地理解 LazyTea 生态,请注意以下几个项目的区别与联系:
| 项目 | 主要职责 | 仓库地址 |
|---|---|---|
| 🍵LazyTea Client | 独立桌面客户端,用于连接并管理后端服务。 | LazyTea-Client |
| 🔌nonebot_plugin_lazytea (本项目) | NoneBot2 插件,作为 LazyTea 的后端服务端。 | nonebot_plugin_lazytea |
| 🐚lazytea-shell-extension | 命令行扩展,允许通过聊天消息执行管理命令。 | lazytea-shell-extension |
简单来说,本项目 (nonebot_plugin_lazytea) 作为服务端安装在您的机器人上。您可以直接使用它提供的本地 GUI,也可以选择下载独立的 LazyTea Client 来进行远程管理。
✨ 优势
在众多管理工具中,LazyTea 凭借其独特的技术架构与用户体验脱颖而出:
坚如磐石的稳定性
- 进程隔离设计: LazyTea 作为独立的子进程运行,与您的 NoneBot2 主进程严格分离。这意味着,即使 GUI 界面意外崩溃,您的机器人核心业务也丝毫不受影响,确保 7x24 小时稳定在线。
优雅先进的架构
- 现代化 UI 框架 (PySide6): 借助 Qt 6.x 强大的跨平台能力与出色的渲染性能,LazyTea 得以在 Windows, macOS, Linux 等主流操作系统上流畅运行,为您带来丝滑的操作体验。
- 高度解耦,无限可能: LazyTea 基于 WebSocket 实现与 NoneBot2 的通信。这不仅为本地 Bot 提供了强大的管理后台,稍加改造甚至可以实现远程遥控。我们的目标是提供一个通用 GUI 方案,任何兼容
ipc/func_call.py接口的框架都能轻松接入。
触手可及的便捷
- 告别混乱配置: 为每个插件自动生成专属的可视化配置页面,参数修改从未如此直观简单。
- 插件生态尽在掌握: 一键检查与更新插件,版本、作者、说明等信息聚合展示,让插件管理一目了然。
- 精细灵活的权限管控: 提供非侵入式的 Matcher 级权限控制,无论是黑名单还是白名单,都能轻松配置。
- 高效的话题追踪: 右键点击任意消息,即可提取关键词并快速检索相关历史讨论,轻松跟进每一个热点。
- 数据驱动决策: 通过清晰的图表洞察插件调用情况,帮助您了解用户偏好,优化机器人服务。
💡 温馨提示:
- 为了获得最佳性能体验,建议在挂机时将 LazyTea 最小化或停留在“概览”页面,以减少不必要的资源占用。
- 部分插件可能使用非标准数据格式(如 non-serializable 对象)作为配置项,这可能导致自动保存失效。我们仍在探索最佳的兼容方案。
📱 应用速览
| 概览页面 | Bot 页面 |
|---|---|
| 消息与话题追踪 | 插件管理与配置 |
🚀 快速入门
1. 系统要求
注:Windows 11 系统下部分字体可能显示不全,如遇此问题,欢迎向我们反馈。
| 配置级别 | 最低要求 | 推荐配置 | 发烧友配置 |
|---|---|---|---|
| CPU | 任意现代CPU | 双核及以上 | i9-14900KS |
| 内存 | 80 MB | 100 MB+ | 192 GB |
| 硬盘空间 | 200 MB | 300 MB+ | 400 GB+ |
2. 安装
无需任何额外配置! 只需一行命令,启动您的机器人,LazyTea 的窗口便会自动随之呈现。
nb plugin install nonebot_plugin_lazytea
🛠️ 开发者指南
我们诚邀各位插件开发者与 LazyTea 联动,共同打造更繁荣的 NoneBot 生态。集成方式的实现细节,您可以参考 LazyTea 项目顶层的 __init__.py 文件。
插件元数据约定
为了让您的插件更好地被 LazyTea 展示,请在 metadata 的 extra 字段中添加以下可选信息:
| 字段名 | 类型 | 说明 |
|---|---|---|
version |
str |
用于版本检查。请确保插件主页为 GitHub 地址,且版本号与 Git Tag 一致。遵循 PEP 440。 |
icon_abspath |
str |
插件图标的绝对路径。建议使用优化过的小尺寸图片。 |
author |
str |
插件作者的大名。 |
pip_name |
str |
如果插件导入名与 PyPI 包名不同,请在此处填写正确的 PyPI 包名。 |
ui_support |
bool |
设置为True 以允许 LazyTea 加载您自定义的 UI 页面和相关逻辑。 |
自定义UI开发
您可以为您的插件打造专属配置页面,替代 LazyTea 的自动生成页面。
- 技术栈要求: 自定义 UI 必须使用 PySide6。
- 启用开关: 必须在元数据中将
ui_support设为True。 - 解耦设计: 您的插件无需将 LazyTea 作为强制依赖。当用户安装 LazyTea 时,UI 会自动加载;反之,您的插件将以无 UI 模式正常运行。
在您插件包的顶层目录(__init__.py 所在目录),创建以下两个文件,LazyTea 将会自动发现并加载它们:
__call__.py
- 时机: GUI 加载完成,
__ui__.py导入之前。 - 环境: 主进程,Async Loop。
- SDK:
from nonebot_plugin_lazytea.sdk import SDK_nb - 描述: 您可以在此编写与 NoneBot2 主体交互的代码。
- 配置热重载: 您可以注册一个与插件包导入名同名的函数。当配置更新时,LazyTea 会调用此函数,并将最新的配置实例作为唯一参数传入。
__ui__.py
- 时机:
__call__.py导入完成之后。 - 环境: GUI 子进程,QEventLoop。
- SDK:
from nonebot_plugin_lazytea.ui.sdk import SDK_UI - 描述: 该文件负责 UI 的构建与交互。严禁包含或依赖 asyncio/nonebot 相关代码。
- 入口类: 定义一个名为
ShowMyPlugin的类,继承自QWidget。LazyTea 将自动实例化这个类作为您的插件页面。
注意事项
- 为使自动生成的配置页更易懂,建议使用
Pydantic的Field(description="...")来描述配置项。 - 若配置项使用了 non-serializable 对象,建议实现 Pydantic 提供的字段序列化与数据转换方法。
- 为确保权限管理的最佳兼容性,建议您使用标准的
Rule类型或alc的规则。
🗺️ 项目蓝图 & 生命周期
开发蓝图
- 赋能开发者: 提供更完整的接口,让插件与 LazyTea 无缝协作。
- 远程控制: 提供独立的 GUI 客户端,允许远程操作您的 Bot 实例。
- 极致性能: 持续优化内存占用,提供更轻快的体验。
- 生态合作: 积极寻求与其他插件开发者的合作,共建 NoneBot 的 UI 生态。
- 多平台支持: 探索在移动端支持的可能性。
- 更完善的用户支持: 当项目在 GitHub 上获得 50个 star 时,我们将立即创建交流群。
版本管理
本项目遵循 PEP 440 标准。版本号的递增逻辑如下:
- 修订号 (0.0.X): 修正 Bug,改进用户体验。
- 次版本号 (0.X.0): 引入需要时间验证的较大功能。
- 主版本号 (X.0.0): 项目级重构。
通常,每个次版本号的正式发布会经过 Alpha (功能实现), Beta (修正错误), rc (发布前排错) 三个阶段。由于精力有限,新版本的 Alpha 发布代表着上一版本停止修订。
你可能在寻找(友情链接)
- LazyTea Client:独立的桌面客户端,用于远程连接并管理 LazyTea 后端服务。
- NoneBot WebUI:✨ 新一代 NoneBot Web 管理界面 ✨
- nonebot_plugin_lazytea_shell_extension:为 LazyTea 启用命令管理,允许通过聊天消息管理权限。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_lazytea-0.1.0a1.tar.gz.
File metadata
- Download URL: nonebot_plugin_lazytea-0.1.0a1.tar.gz
- Upload date:
- Size: 854.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21115515199b1bafd7a823e783e4f8d7fb4f819c16aa8f8c3c0219f7550b5798
|
|
| MD5 |
c5da62f62f4e958bbe75bfb230b258c2
|
|
| BLAKE2b-256 |
042ad2640ea98099acd8036600b5c949fe7b9ef45fc28b56ef199509fab21ccf
|
File details
Details for the file nonebot_plugin_lazytea-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_lazytea-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 869.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
11eb9cf2370ccf9fcb04a5b09d63e9407b205c7354e280ddf1e223735bcac74b
|
|
| MD5 |
7afd692e0fd4010cf4c9e37d482baf1f
|
|
| BLAKE2b-256 |
029b8bb825ecd1e163a04fc7227a139bc8c904b679c8455f5467d7bf35be7821
|