SuperAPI AI 工具集

manage-apps-and-sounds-headless

办公与效率

查看项目

更新于 10-16 05:30

技能介绍

用途

该技能用于以无头方式控制 pushover.net 的网页仪表盘,处理 HTTP API 无法完成的操作,包括登录、列出应用、创建或删除 Pushover 应用,以及管理自定义提示音。

主要能力

  • 列出应用名称:WEB apps
  • 创建应用并打印其 API token:WEB create-app --name "My App" --desc "..." --reveal(--reveal 表示显示完整 token)
  • 删除应用(按 --name 或 --slug):WEB delete-app --name "My App"
  • 列出自定义声音名称:WEB list-sounds
  • 上传自定义声音:WEB add-sound --name po_fanfare --file x.mp3 --desc "..."
  • 删除自定义声音:WEB remove-sound --name po_fanfare

已验证的自主能力覆盖完整生命周期:创建应用时填写 application[short_name]、勾选条款复选框并提交,从应用页面捕获 30 字符的 API token(排除 PO_USER);删除应用通过 /apps/edit/<slug> → /apps/destroy/<slug> 完成。添加声音通过 /sounds/build(sound[name]、sound[description]、file sound[sound_data_file]);删除声音通过 /sounds/edit/<name> → /sounds/destroy/<name>。Rails 使用 data-method=post,脚本会自动接受确认对话框,并通过重新列出结果进行验证。

使用方式

该技能基于 Bun TypeScript 脚本 pushover_headless_web_control.ts,函数/枚举驱动,可直接运行,无需构建;需要在 skills/_lib/ 中执行 bun install 以安装 playwright-core。

环境变量设置示例:

export PO_EMAIL="$(bash "$(cc-plugin-root pushover-commander)/skills/_lib/resolve_pushover_secret.sh" login_email)"
export PO_PW="$(bash "$(cc-plugin-root pushover-commander)/skills/_lib/resolve_pushover_secret.sh" login_password)"
export PO_USER="$(bash "$(cc-plugin-root pushover-commander)/skills/_lib/resolve_pushover_secret.sh" user_key)"   # create-app token disambiguation
WEB() { env -u HTTPS_PROXY -u HTTP_PROXY \
  bun "$(cc-plugin-root pushover-commander)/skills/_lib/pushover_headless_web_control.ts" "$@"; }

pushover.net 登录是普通的邮箱/密码表单(无防机器人、CAPTCHA 或 2FA,2026-05-30 验证),因此使用普通 Playwright 加系统 Chrome 即可。默认使用 Playwright + channel="chrome",无需下载浏览器。Scrapling/Obscura 在此不必要。网络方面,需在 op/HTTP 前加 env -u *PROXY*(以及 curl --noproxy '*')以绕过沙箱代理。

自定义声音:约束与素材处理流程(2026-05-30 验证)

Pushover 自定义声音限制:仅 MP3、小于 500 KB、不超过 30 秒(iOS 无法播放更长的)。对于“响亮且尽可能长”的最佳点:约 29 秒、128 kbps、约 454 KB。两个辅助脚本可自动化素材发现与处理:

# 1) 发现免费 MP3 短曲(Mixkit 免费许可,署名可选)
bash "$(cc-plugin-root pushover-commander)/skills/_lib/find_jingles.sh" win        # 或 game musical alarm celebration
bash "$(cc-plugin-root pushover-commander)/skills/_lib/find_jingles.sh" tag/happy  # 库存音乐标签(更长的曲目)

# 2) 裁剪 + 响度归一化 + 尺寸适配为合规声音(loudnorm I=-10,峰值 -1dB,<500KB)
bash "$(cc-plugin-root pushover-commander)/skills/_lib/make_custom_sound.sh" <url|file> out.mp3 [start_s] [dur] [bitrate]
#   -> JSON {kb, dur, max_db, mean_db, under_500kb};若 >=500KB 则非零退出(此时降低比特率)

# 3) 上传
WEB add-sound --name my_jingle --file out.mp3 --desc "loud 29s jingle"

上传前应始终使用 make_custom_sound.sh 的输出(或 ffmpeg -af volumedetect)进行分析,确认响亮(max ≈ 0 dB)且足够长(≈29 秒)。目前已加载:po_fanfare、po_uplift、po_celebrate(均为 29 秒 / 454 KB / 峰值 ≈ -1 dB)。已有自定义声音:dune、piano、toy_story、vibe20sec。

适用场景

适用于需要通过网页仪表盘而非 HTTP API 管理 Pushover 应用和自定义提示音的场景,例如创建或删除应用、获取 API token、上传或删除自定义声音。

限制

  • 自定义声音仅支持 MP3,必须小于 500 KB 且不超过 30 秒。
  • 依赖 pushover.net 的网页界面,若 UI 变更可能导致选择器失效。
  • 需要 Bun 环境和 playwright-core,以及系统 Chrome。
  • 网络访问可能需要绕过沙箱代理。

执行后反思

技能完成后,关闭前应检查:无头 Playwright 流程是否成功登录并生成/删除应用 token 而未出现选择器中断?pushover.net UI 变更会静默破坏选择器,若发生应立即修复。返回的 token 是否在测试发送中可用?生成但无效的 token 意味着创建流程需要修复。仅在问题真实且可复现时更新,不要基于推测。