Shanghai Library Seat Booking
v0.1.9上海图书馆东馆三楼座位预约。支持浏览器自动化登录获取认证信息,以及基于API的座位预约(指定座位或系统自动分配)。适用于需要自动化预约图书馆座位的场景。
⭐ 1· 136·0 current·0 all-time
byLiu Yuanyi@jenslewie
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
技能名/描述与实际代码一致:脚本使用 Node.js + Playwright 做浏览器辅助登录,读取/写入本地 profile 文件,并调用 yuyue.library.sh.cn 的预约 API。所需二进制(node/npm/npx)及 npm 包(playwright)与实现高度匹配,没有请求与功能不相关的云凭证或外部服务密钥。
Instruction Scope
SKILL.md 明确说明运行时行为:可选的浏览器自动化登录(手动完成账号密码/验证码后脚本提取认证信息)、从 ~/.config/shlibrary-seat-booking/profiles/*.json 读取/写入认证、以及对图书馆 API 的查询/预约/取消操作。所有网络请求目标均为图书馆域名,未发现会读取系统其他敏感配置或把数据发到与功能无关的第三方端点。
Install Mechanism
安装规范使用 Homebrew 安装 Node(常见,但会改变本机环境)并通过 npm 安装 playwright;Playwright 运行 npx playwright install chromium 会联网下载 Chromium 二进制。该行为对本功能是合理的,但请注意浏览器二进制会从 Playwright 的发布源下载(联网),这在安全评估中应被记住。
Credentials
技能不要求任何环境变量或第三方凭证;它使用本地 profile 文件存放 accessToken/sign/timestamp(REQUIRED_AUTH_FIELDS),这与预约 API 所需认证相符。读取和写入 ~/.config/shlibrary-seat-booking 是必要且合理的,SKILL.md 也建议对保存文件设置 chmod 600。
Persistence & Privilege
技能未设置 always:true,也不请求修改其它技能或系统范围配置。它会在本地配置目录下读写自己的 profile 文件,这是预期行为且权限范围有限。技能允许被代理自主调用(disable-model-invocation:false),这是平台默认行为,与代码用途一致。
Assessment
主要注意事项:
- 这是一个本地运行的 Node.js 脚本,会在 ~/.config/shlibrary-seat-booking 下读取/写入认证文件(accessToken/sign/timestamp),只有在你提供读者证并登录后才会有有效凭证。不要把这些文件上传或分享给他人。
- 安装 Playwright 会通过 npx 下载 Chromium 二进制(联网),如需避免联网安装可跳过浏览器登录并手动填入认证文件。若担心,请在受控环境(如容器或虚拟机)中执行首次安装和登录流程。
- 源代码已包含对 yuyue.library.sh.cn 的 API 调用(查询/预约/取消),网络请求目的明确;如果你不信任发布者,建议先在本地审阅脚本或从可信来源(项目主页)验证代码指纹再运行。
- 不要以 root/管理员权限运行脚本;保持 profile 文件权限(例如 chmod 600)以减少凭证泄露风险。
- 如果想更高安全性:在沙箱/容器中安装并运行、逐行审查 login.js/playwright 使用逻辑,或只使用手动获取认证信息的方式(SKILL.md 提供说明)。Like a lobster shell, security has layers — review code before you run it.
latestvk9755baad77n3mtm0yv4wbh9e5838e5y
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
📚 Clawdis
Binsnode, npm, npx
Install
Install Node.js
Bins: node, npm, npx
brew install nodeInstall Playwright
Bins: playwright
npm i -g playwright