Skip to main content

NoneBot2 lazytea的命令扩展, 允许指令操作GUI

Project description

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 中进行管理。

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

Built Distribution

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

File details

Details for the file nonebot_plugin_lazytea_shell_extension-0.0.1.post1.tar.gz.

File metadata

File hashes

Hashes for nonebot_plugin_lazytea_shell_extension-0.0.1.post1.tar.gz
Algorithm Hash digest
SHA256 8de9bcf592a457ecb377c4460e5044590355529a09a187beb341df2cb0360621
MD5 a24e48722dabba597ac17331d69a989a
BLAKE2b-256 1f28b91d763aad019bfd7c642b28f9c3453855057cab98cff7c0b93174a244df

See more details on using hashes here.

File details

Details for the file nonebot_plugin_lazytea_shell_extension-0.0.1.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for nonebot_plugin_lazytea_shell_extension-0.0.1.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e6bcf5f87a2e420f745d3300b61d09b5ae224632b032c4ed31548f79e5015fd
MD5 1e682be430d1df094a523b22e35066da
BLAKE2b-256 043cdc8f5072b6a1aed2a1ff205bdc2523291dd958042b53943c5d64fbac0372

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