适用于nonebot2的GUI
Project description
懒人茶 (LazyTea) - 为您的 NoneBot2 献上一杯悠闲的下午茶
*——来喝一杯下午茶,享受片刻的宁静与高效?
由于使用了较为奔放的f-string写法,本项目仅能够支持python3.12及以上版本
LazyTea 是一款为 NoneBot2 精心打造的本地图形化界面(GUI),让您以更直观、更优雅的方式管理您的机器人。
它基于 WebSocket 实现进程间通信,与 NoneBot2 主体高度解耦。这意味着 LazyTea 不仅能为您的本地 Bot 提供强大的管理后台,稍加改造后甚至可以实现远程遥控。我们的目标是提供一个通用 GUI 方案,任何兼容 ipc/func_call.py 接口的框架都能轻松接入。
温馨提示:
- 关于配置保存: 部分插件可能使用非标准数据格式(如 non-serializable 对象和字典)作为配置项,这会导致自动保存失效。我们仍在探索最佳的兼容方案,并欢迎您通过 PR 分享宝贵的想法。
- 性能小贴士: 为了获得最佳性能体验,建议在挂机时将 LazyTea 最小化或停留在“概览”页面,以减少不必要的资源占用。
✨ 为何选择 LazyTea?
在众多管理工具中,LazyTea 凭借其独特优势脱颖而出:
先进的技术架构
- 现代化UI框架 (PySide6): 借助 Qt 6.x 强大的跨平台能力与出色的渲染性能,LazyTea 能够在 Windows, macOS, Linux 等主流操作系统上流畅运行,为您带来丝滑的操作体验。
- 坚如磐石的稳定性 (进程隔离): LazyTea 作为独立的子进程运行,与您的 NoneBot2 主进程严格隔离。这意味着,即使 LazyTea 界面意外崩溃,您的机器人本体业务也不会受到任何影响,确保7x24小时稳定运行。
触手可及的便捷
普通用户无需深入了解技术细节,因为您在使用中自然会感受到这些特性带来的便利。
- 告别混乱配置: 随着插件越装越多,
.env文件难免变得臃肿。LazyTea 能为每个插件自动生成专属的可视化配置页面,让参数修改变得前所未有的直观和简单。 - 插件生态,尽在掌握:
- 一键更新: 为符合规范的插件提供自动更新检查与升级功能,轻松告别手动更新的繁琐。
- 信息聚合: 自动展示插件的版本、作者、说明等元数据,让插件管理一目了然。
- 灵活而强大的权限管控:
- 提供非侵入式的 Matcher 级精细权限控制。
- 支持黑/白名单机制,无论是“禁止某些人使用”还是“只允许某些人使用”,都能轻松实现。
- 高效的话题追踪: 对聊天中的任意消息右键点击“话题追踪”,即可自动提取关键词,快速检索相关的历史讨论,轻松跟进每一个热点。
- 数据驱动决策: 通过清晰的图表洞察各个插件的调用情况,帮助您了解用户偏好,优化您的机器人服务。
🚀 快速入门
系统要求
注:Windows 11 系统下部分字体可能显示不全,如遇此问题,欢迎向我们反馈。
| 配置级别 | 最低要求 | 推荐配置 | 发烧友配置 |
|---|---|---|---|
| CPU | 任意现代CPU | 双核及以上 | i9-14900KS |
| 内存 | 80 MB | 100 MB+ | 192 GB |
| 硬盘空间 | 200 MB | 300 MB+ | 400 GB+ |
安装
无需任何额外配置!只需按照标准的 NoneBot2 插件安装流程操作,启动您的机器人,LazyTea 的窗口便会自动随之呈现。
nb plugin install nonebot_plugin_lazytea
开发者指南
我们诚邀各位插件开发者与 LazyTea 进行联动,共同打造更繁荣的生态。
集成方式的实现细节,您可以参考 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尝试加载自定义页面和相关逻辑。 |
注意事项
关于自定义配置页面: 我们有计划允许开发者使用自定义页面替换自动生成的配置页。但考虑到跨语言兼容性和NoneBot插件生态的现状,此功能的优先级目前较低。已经实现,阅读下文。- 若您的插件配置项使用了一些non-serializable 对象,我们建议实现pydantic模型提供的字段序列化与数据转换方法。
- 为了让您的插件自动生成的配置页更加易懂,我们建议使用
Pydantic的Field函数中的description参数说明配置项,而非使用Python的文档字符串。 - 关于权限管理: LazyTea 会自动处理绝大部分权限兼容问题。为确保最佳效果,我们建议您使用标准的
Rule类型或alc的规则,而非自定义实现。如果您遇到任何与权限相关的 Bug,欢迎随时提交报告!
UI开发
您可以为您的插件打造专属的配置页面,以替代 LazyTea 自动生成的页面。
- 技术栈要求: 自定义 UI 必须使用 PySide6 以确保兼容性。
- 启用开关: 必须在元数据中将 ui_support 设为 True。
- 解耦设计: 我们设计了分离式导入机制。这意味着您的插件无需将 LazyTea 作为强制依赖。当用户安装了 LazyTea 时,UI 会自动加载;反之,您的插件将以无UI模式正常运行,不产生任何额外开销。
包顶层的__init__.py您可以按照习惯进行编写,不需要特殊适配。这是因为LazyTea在导入时会自动注入包顶层的虚假模块,使得Python跳过__init__.py的初始化操作。
在您插件包的顶层目录(init.py 所在目录),创建以下两个文件,LazyTea 将会自动发现并加载它们:
__call__.py
- 导入时机: GUI 加载完成,ui.py 导入之前。
- 运行环境: 主进程,Async Loop。
- 可用 SDK: from nonebot_plugin_lazytea.sdk import SDK_nb
- 描 述: 您可以在此编写与 NoneBot2 主体交互的代码,无任何限制。
__ui__.py
- 导入时机: call.py 导入完成之后。
- 运行环境: GUI 子进程,QEventLoop。
- 可用 SDK: from nonebot_plugin_lazytea.ui.sdk import SDK_UI
- 描 述: 该文件负责 UI 的构建与交互。
- 重要: 此文件不应包含或依赖任何 asyncio 或 nonebot 相关代码。async/await 关键字在此不可用。所有与主进程的通信都应通过我们提供的 IPC 接口完成。
- 入口类: 定义一个名为 ShowMyPlugin 的类,继承自 QWidget。其构造函数应仅接受 parent 参数。LazyTea 将自动实例化这个类,并将其作为您的插件页面展示给用户。
开发蓝图
-
赋能开发者: 我们正致力于为插件开发者提供更完整、更便捷的接口,让您的插件能与 LazyTea 无缝协作,创造更多可能。 - 极致性能: 降低内存占用始终是我们的核心目标之一。尽管挑战重重,我们仍将持续优化,为您提供更轻快的体验。
随着功能迭代,LazyTea 的资源占用可能会有增长趋势。我们会努力平衡功能与性能,并由您自行决定是否更新到最新版本。
“在快节奏的世界里,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.0.1.tar.gz.
File metadata
- Download URL: nonebot_plugin_lazytea-0.0.1.tar.gz
- Upload date:
- Size: 845.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f6938824c693e31697777655841cde196af189e89e6c6e3b17003f3724238c7
|
|
| MD5 |
97c0dcd1c1e6ff22851bfb3d1336edf8
|
|
| BLAKE2b-256 |
28a80908f8625d2760786035bd480d08c0e5a4cef4ba87618f8736de0ded6306
|
File details
Details for the file nonebot_plugin_lazytea-0.0.1-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_lazytea-0.0.1-py3-none-any.whl
- Upload date:
- Size: 859.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a87d2d6b4752c6dd8a4a214642f290f585b1b102e5ce32b21d4c8e3a2af5037
|
|
| MD5 |
9e9493200e4019194aed7c978cd3ac5d
|
|
| BLAKE2b-256 |
d218e38490908e5727e4d91926bbf5b4aed5f7ec0ea2277047f6091dcae64e0c
|