From 687e7d57c704e5cd72daca9a478d3dabbf4f3ce4 Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Thu, 16 Apr 2026 22:02:02 +0800 Subject: [PATCH] feat: add baihu notify -- fix python call --- README.md | 2 ++ builtin/nodejs/index.js | 4 ++-- cmd/builtininstall/builtininstall.go | 11 +++-------- docs/guide/changelog.md | 5 +++++ docs/guide/notify.md | 7 ++++++- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 5731225..23601fe 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ ### 最近更新 +**2026.04.16** - **内建脚本助手库 (Built-in SDK)**:新增 Python 与 Node.js 的轻量化助手库,实现脚本内 “零代码配置” 通知投递;配套新增 `baihu builtininstall` 自动化安装命令,一键刷新多版本多语言环境;UI 层面显著增强了 API 调用指引。 **2026.04.14** - **PWA 与通知渠道增强**:支持 PWA (Progressive Web App) 动态配置,站点标题与图标可由后端实时控制;新增 **VoceChat** 通知渠道支持;增强 **Bark** 推送,支持自建服务器配置。 **2026.03.27** - **安全机密管理 (GitHub Secrets 风格)**:新增系统级机密(Secret)管理功能。支持 AES-GCM 工业级加密存储,秘钥内存留存销毁;支持执行日志自动脱敏打码;支持仅在计划任务调度时按需注入,终端与测试运行物理隔离,全面提升敏感配置安全性。 **2026.03.19** - **仓库同步增强**:新增对青龙仓库格式指令的深度兼容,支持从远程 Git 仓库自动同步脚本并基于注释解析自动创建面板任务,支持白名单、黑名单、依赖保留等高级筛选特性。 @@ -56,6 +57,7 @@ - **移动端:** 适配移动小屏样式 - **远程执行:** 支持远程agent执行任务,展示执行结果 - **多语言支持:** 深度集成 Mise,支持几乎所有主流编程语言的动态安装、多版本切换及依赖管理 +- **内建助手库:** **(New)** 为 Python/Node.js 提供零配置助手库,简单 import 即可实现一键推信,无需手动管理 API Token 和 URL ## 功能特性 diff --git a/builtin/nodejs/index.js b/builtin/nodejs/index.js index 35ed0b8..70287cc 100644 --- a/builtin/nodejs/index.js +++ b/builtin/nodejs/index.js @@ -25,7 +25,7 @@ function notify(title, text, channelId) { if (!notifyUrl || !TOKEN || !cid) return; - try { + const parsedUrl = new URL(notifyUrl); const protocol = parsedUrl.protocol === 'https:' ? https : http; @@ -51,7 +51,7 @@ function notify(title, text, channelId) { req.on('error', (e) => {}); req.write(data); req.end(); - } catch (e) {} + } module.exports = { notify }; diff --git a/cmd/builtininstall/builtininstall.go b/cmd/builtininstall/builtininstall.go index 11dc776..08ef753 100644 --- a/cmd/builtininstall/builtininstall.go +++ b/cmd/builtininstall/builtininstall.go @@ -63,19 +63,17 @@ func installForLanguage(lang, pkgPath, installBaseCmd string) { // 使用 npm i -g 进行全局安装 subCmdArgs = []string{"npm", "i", "-g", pkgPath} } else { - // python 使用 pip install -e - subCmdArgs = []string{"pip", "install", "-e", pkgPath} + // python 改为标准安装 (非 -e),避免 Docker 内软链接可能导致的路径丢失问题 + subCmdArgs = []string{"pip", "install", "--force-reinstall", pkgPath} } - // 构建参数列表: [mise, exec, lang@v, --, npm, i, -g, path] + // 构建参数列表: [mise, exec, lang@v, --, cmd...] fullArgs := utils.BuildMiseCommandArgsSimple(subCmdArgs, lang, v) var cmd *exec.Cmd if runtime.GOOS == "windows" { - // Windows 下仍建议通过 cmd /c 调用 cmd = exec.Command("cmd", append([]string{"/c"}, fullArgs...)...) } else { - // Linux 系统直接执行参数切片,更稳健 cmd = exec.Command(fullArgs[0], fullArgs[1:]...) } @@ -84,9 +82,6 @@ func installForLanguage(lang, pkgPath, installBaseCmd string) { logger.Errorf("[Builtin] 为 %s@%s 安装失败: %v\n输出: %s", lang, v, err, string(out)) } else { logger.Infof("[Builtin] 为 %s@%s 安装成功", lang, v) - // 安装成功后尝试执行 reshim,确保命令生效 - reshimCmd := exec.Command("mise", "reshim", lang) - reshimCmd.Run() } } } diff --git a/docs/guide/changelog.md b/docs/guide/changelog.md index 5efa3e6..b9ac285 100644 --- a/docs/guide/changelog.md +++ b/docs/guide/changelog.md @@ -4,6 +4,11 @@ ## 最近更新概览 +### 2026.04.16 - 内建脚本助手库 (Built-in SDK) +- **内建助手库 (Built-in SDK) (New)**:新增 Python 与 Node.js 的轻量级助手库 `baihu`。通过环境自动注入机制实现“零配置”通知投递,开发者无需在脚本中显式配置 TOKEN 或 URL。 +- **环境自动初始化**:新增 `baihu builtininstall` 命令行工具,支持一键为 `mise` 管理的所有多语言版本同步安装/刷新内建包依赖。 +- **体验与文档升级**:重构了「脚本调用」UI 指引,简化了集成步骤说明,并统一了全局 UI 字体规范。 + ### 2026.04.14 - PWA 支持与推送渠道扩展 - **PWA 动态配置 (New)**:支持 Progressive Web App 动态 manifest 配置,应用名称和图标可由后端站点设置实时动态注入。 - **VoceChat 推送支持**:新增对 VoceChat 私有化部署推信渠道的支持(基于 Bot API)。 diff --git a/docs/guide/notify.md b/docs/guide/notify.md index d77b385..fb4dbec 100644 --- a/docs/guide/notify.md +++ b/docs/guide/notify.md @@ -39,7 +39,12 @@ 白虎面板提供了一套**零配置**的内建助手库(Built-in SDK),支持 Python 和 Node.js。它会自动读取系统注入的环境变量,让您在脚本中只需一行代码即可实现通知投递。 -#### 1. 环境初始化 +#### 1. 如何获取配置 Key? +在使用助手库前,请确保您已经在任务设置的“环境变量”或“机密”中配置了以下两个同名 Key: +- **BHPKG_NOTIFY_TOKEN**:进入「消息推送」->「脚本调用说明」标签,您可以直接复制此处的 Token(如未生成请先点击生成)。 +- **BHPKG_NOTIFY_CHANNEL**:进入「消息推送」->「渠道列表」标签,可以查看每个渠道对应的 **ID**。如果您希望使用默认渠道,也可直接在「脚本调用说明」页面的代码示例中找到默认 ID。 + +#### 2. 环境初始化 在开始编写脚本前,您需要在终端执行以下命令,为面板管理的所有语言环境安装 `baihu` 包: ```bash