feat: add baihu notify -- fix python call

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