Skip to main content

nonebot-plugin-lazytea-shell-extension

nonebot python stars

一个为 nonebot-plugin-lazytea 打造的强大“命令行工具”,让你在机器人运行时,通过指令动态、精细地管理几乎所有功能的权限。

厌倦了每次修改权限都要翻看后台、修改文件甚至重启机器人?现在,你只需要一个 /tea 指令。

✨ 功能特性

  • ⚡ 运行时管理:无需重启,所有权限变更即刻生效。
  • ⌨️ 命令行界面:提供强大易用的 /tea 指令,让你在聊天窗口就能完成所有操作。
  • 🛡️ 精细化权限控制:为每一个机器人功能独立设置:
    • 全局开关(开启/关闭)
    • 用户/群组白名单
    • 用户/群组黑名单
  • 🔗 无缝集成:作为 nonebot-plugin-lazytea 的一部分,所有通过指令进行的修改都会实时同步到 LazyTea 的 GUI,反之亦然。
  • ⚙️ 安全可控:可通过配置文件指定谁可以使用 /tea 管理指令,防止权限滥用。
  • 🔄 配置热重载:支持通过 LazyTea 的机制热重载本插件的配置文件,无需重启。

📦 安装

通过 nb-clipip 安装本插件:

使用 nb-cli
nb plugin install nonebot-plugin-lazytea-shell-extension
使用 pip
pip install nonebot-plugin-lazytea-shell-extension

依赖项

本插件依赖以下插件,请确保它们也已正确安装并加载:

  • nonebot-plugin-alconna
  • nonebot-plugin-lazytea

⚙️ 配置

为了安全起见,您需要在使用前进行简单配置,以授权指定用户使用 /tea 管理指令。请在您的 .env 文件中添加以下配置项:

# 是否启用 /tea 指令权限管理功能。默认为 True
ENABLE_TEA_PERM=true

# 允许使用 /tea 指令的用户ID。
# 格式为 JSON 数组,可以填入多个用户ID。
# 示例:TEA_PERM_ALLOWANCE='["12345678", "87654321"]'
TEA_PERM_ALLOWANCE='["在此处填写你的QQ号"]'
配置项 类型 默认值 必填 说明
enable_tea_perm bool True 是否启用 /tea 指令功能。
tea_perm_allowance Set[str] [] 允许使用 /tea 指令的用户 ID 列表。

注意: 只有在 tea_perm_allowance 列表中的用户才能使用本插件的所有指令。

📝 指令用法

您可以使用 /tea 指令来动态管理机器人各项功能的开关和权限。

核心概念:<目标指令>

在所有 /tea 命令中,<目标指令> 是一个至关重要的参数。它不仅仅是指令的名称,而是任何能够触发机器人某个功能的完整文本

  • 例如
    • 对于一个响应 /天气 北京 的指令,<目标指令> 就是 /天气 北京
    • 对于一个响应关键词 色图 的功能,<目标指令> 就是 色图
    • 对于一个会回复所有消息的 on_message 处理器,<目标指令> 可以是任意一句话,如 你好

插件会模拟您发送 <目标指令> 的过程,来找出究竟是哪个功能响应了它。

📖 命令参考

抽象命令 具体示例 作用效果
查询状态
/tea status <目标指令> /tea status /天气 查询“/天气”指令的当前权限状态,包括总开关、黑白名单等。
功能开关
/tea on <目标指令> /tea on /签到 开启“/签到”指令,使其可以被正常触发。
/tea off <目标指令> /tea off /签到 关闭“/签到”指令,不在白名单的人都无法触发它。
白名单管理 (Whitelist)
/tea wl add user <用户ID> <目标指令> /tea wl add user 12345678 /天气 将用户(12345678)加入“/天气”指令的白名单。
/tea wl add group <群号> <目标指令> /tea wl add group 87654321 /天气 将群组(87654321)加入“/天气”指令的白名单。
/tea wl rm user <用户ID> <目标指令> /tea wl rm user 12345678 /天气 从“/天气”指令的白名单中移除该用户。
/tea wl rm group <群号> <目标指令> /tea wl rm group 87654321 /天气 从“/天气”指令的白名单中移除该群组。
黑名单管理 (Blacklist)
/tea bl add user <用户ID> <目标指令> /tea bl add user 12345678 /抽卡 将用户(QQ:12345678)加入“/抽卡”指令的黑名单,禁止他使用。
/tea bl add group <群号> <目标指令> /tea bl add group 87654321 /抽卡 将群组(QQ群:87654321)加入“/抽卡”指令的黑名单,禁止该群使用。
/tea bl rm user <用户ID> <目标指令> /tea bl rm user 12345678 抽卡 从“抽卡”指令的黑名单中移除该用户。
/tea bl rm group <群号> <目标指令> /tea bl rm group 87654321 /抽卡 从“/抽卡”指令的黑名单中移除该群组。

🔬 工作原理:指令匹配机制

为了准确定位到您想管理的指令,本插件模拟了 NoneBot 的事件响应流程。当您发送如 /tea off /签到 指令时,插件内部会:

  1. 提取出 <目标指令>,即 /签到
  2. 模拟一个包含 /签到 的新消息事件。
  3. 将这个模拟事件依次交给机器人中所有已注册的事件响应器进行匹配尝试。
  4. 找到第一个成功匹配 /签到 的响应器,并将其作为本次操作的目标。
  • 多重匹配:如果一个 <目标指令> 同时匹配了多个同优先级的处理器,插件会选择第一个成功匹配的进行操作,并在日志中打印警告信息。
  • 定位疑难:如果您发现 /tea 指令管理的目标不是您预期的那个,很可能是因为根据上述优先级规则,有另一个更高优先级的处理器先响应了您的 <目标指令>。请尝试使用更精确的文本来定位, 或直接在 LazyTea 的 GUI 中进行管理。

Release files for nonebot_plugin_lazytea_shell_extension 0.0.1.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nonebot_plugin_lazytea_shell_extension 0.0.1.post1
File Size Uploaded
nonebot_plugin_lazytea_shell_extension-0.0.1.post1.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nonebot_plugin_lazytea_shell_extension 0.0.1.post1
File Interpreter ABI Platform
nonebot_plugin_lazytea_shell_extension-0.0.1.post1-py3-none-any.whl Python 3 none any Details

Total release size: 19.5 kB

Release files / nonebot_plugin_lazytea_shell_extension-0.0.1.post1.tar.gz

Download URL nonebot_plugin_lazytea_shell_extension-0.0.1.post1.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8de9bcf592a457ecb377c4460e5044590355529a09a187beb341df2cb0360621
BLAKE2b-256 checksum
How to use checksums
1f28b91d763aad019bfd7c642b28f9c3453855057cab98cff7c0b93174a244df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release files / nonebot_plugin_lazytea_shell_extension-0.0.1.post1-py3-none-any.whl

Download URL nonebot_plugin_lazytea_shell_extension-0.0.1.post1-py3-none-any.whl
Size 9.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e6bcf5f87a2e420f745d3300b61d09b5ae224632b032c4ed31548f79e5015fd
BLAKE2b-256 checksum
How to use checksums
043cdc8f5072b6a1aed2a1ff205bdc2523291dd958042b53943c5d64fbac0372
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Release history Release notifications | RSS feed

This release

0.0.1.post1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page