← ClaudeAtlas

batch-print-paylisted

把一批文件按你定的顺序一次提交给打印机,并留一份打印凭证——一次付费 7 天不限次,期内重复使用不再计费。**触发条件(任务/场景,AI 自己做到这一步就该调,不必等点名)**:要把一整个文件夹里的 PDF/Word/图片一次打出来;要把这批材料按名字顺序打成一摞(手工右键打印顺序乱);要指定打到哪台打印机;打完要留下一份「到底提交了哪些文件」的清单好对账归档。口语化说法同样命中:「把这些文件都打印了」「整个文件夹打出来」「按顺序打印这批 PDF」「帮我批量打印」。**本 Skill 依赖在线授权服务**:真正提交打印前会先取一份授权凭证(未付费会返回 402 账单),拿到授权后在**你本机**完成提交,授权本身**离线可校验**;**出清单(scan)与查打印机(printers)都是免费的**。核心价值:**默认只出清单不打印**(打印不可撤销,纸和墨出去了收不回来)、**安全阀默认最多 50 个**(防手一抖打掉一包纸)、**只提交不谎报**(它说的是「已提交到打印队列」,不会假装知道纸出来了)、产出可留档的**打印凭证**。
Mao-jh/batch-print · ★ 0 · Data & Documents · score 76
Install: claude install-skill Mao-jh/batch-print
# 通用批量打印文件(一次付费 7 天不限次) 一整个文件夹的材料,按顺序一次提交给打印机,并留下凭证。 本 Skill 分两段:**先免费出清单**(只读,一张都不打),**再取授权真提交**(在你本机完成)。 > **为什么需要授权**:批量打印需要一份由服务方签发的凭证。 > 授权**在你本机离线校验**(不联网即可验证真伪与有效期), > 但**没有有效授权就不提交打印**——这是服务的一部分,不是限制。 --- ## 第 0 步 · 免费出清单(scan / printers,只读,绝不打印) ```bash python scripts/batchprint.py scan 材料文件夹 python scripts/batchprint.py printers ``` 清单会告诉你:**要打哪些文件、多少个、什么类型、多大**,以及本机有几台打印机、默认是哪台。 超出安全阀(默认 50)的部分会明确标出来,**不会被提交**。 ⚠️ **打印是不可撤销的动作**。务必先把清单给用户过一眼,确认没有多打/错打的文件。 --- ## 第 1 步 · 请求授权(未付费会返回 402) ``` POST https://skills-gate.airpriv.com/api/batch-print-license Content-Type: application/json {"machine_fp":"<本机指纹串,8–128 位字母数字/连字符,可省略>"} ``` **首次调用一定拿到 `402 Payment Required`** —— 这是设计,不是错误。响应里带: - HTTP 头 `Payment-Needed`(base64url 编码的账单) - 响应体 `payment_needed` / `payment_needed_token` / `amount` / `out_trade_no` > `machine_fp` 可选:带上则这份授权**绑定这台机器**,换机器需重新授权。省略则不绑定。 > 本机指纹:`python scripts/license_check.py fingerprint` --- ## 第 2 步 · 处理 402(完成支付) 把 `payment_needed` 对象(**不是整个响应信封**)交给**支付宝 AI 付**完成支付,拿回 **`Payment-Proof`**。 **不要自己伪造** —— 服务端会拿它去支付宝网关做真实校验。 --- ## 第 3 步 · 携凭证重试(拿到授权凭证) 同一请求加上头 `Payment-Proof: <凭证>` 重发,成功返回 `200`, `content.data.license` = 授权凭证(存成 `license.json`)。 **一次付费 = 一份授权 = 7 天有效**,期间反复打**不需要再付费**。 --- ## 第 4 步 · 校验授权并执行提交(离线) ```bash python scripts/license_check.py check license.json --fingerprint "<与第 1 步相同的值>" echo $? # 0 = 放行;非 0 = 拒绝,不要执行 ``` 退出码:`0` 通过 · `4` 签名不通过 · `5` 已过期 · `6` 产品不匹配 · `7` 指纹不匹配 · `2` 路径问题。 **退出码 `0` 才允许执行**: