Skip to main content

适用于nonebot2的GUI

Project description

LazyTea

—— 来喝一杯下午茶,享受片刻的宁静与高效? ——

PyPI Total Downloads Weekly Downloads Python VersionFree Threading / No GIL

随着您的 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 页面
概览 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 展示,请在 metadataextra 字段中添加以下可选信息:

字段名 类型 说明
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 将自动实例化这个类作为您的插件页面。

注意事项

  1. 为使自动生成的配置页更易懂,建议使用 PydanticField(description="...") 来描述配置项。
  2. 若配置项使用了 non-serializable 对象,建议实现 Pydantic 提供的字段序列化与数据转换方法。
  3. 为确保权限管理的最佳兼容性,建议您使用标准的 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 发布代表着上一版本停止修订。


你可能在寻找(友情链接)


Star History

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nonebot_plugin_lazytea-0.1.0a1.tar.gz (854.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nonebot_plugin_lazytea-0.1.0a1-py3-none-any.whl (869.9 kB view details)

Uploaded Python 3

File details

Details for the file nonebot_plugin_lazytea-0.1.0a1.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_lazytea-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 21115515199b1bafd7a823e783e4f8d7fb4f819c16aa8f8c3c0219f7550b5798
MD5 c5da62f62f4e958bbe75bfb230b258c2
BLAKE2b-256 042ad2640ea98099acd8036600b5c949fe7b9ef45fc28b56ef199509fab21ccf

See more details on using hashes here.

File details

Details for the file nonebot_plugin_lazytea-0.1.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_lazytea-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 11eb9cf2370ccf9fcb04a5b09d63e9407b205c7354e280ddf1e223735bcac74b
MD5 7afd692e0fd4010cf4c9e37d482baf1f
BLAKE2b-256 029b8bb825ecd1e163a04fc7227a139bc8c904b679c8455f5467d7bf35be7821

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page