SuperAPI AI 工具集

frevana-pins

设计与创作

查看项目

更新于 10-15 21:41

技能介绍

Frevana Pins 用于管理 Frevana 的 My Pins 图片与视频库。先运行 bash <skill-path>/scripts/pins.sh --help 查看命令;无 Bash 环境可直接运行 python3 <skill-path>/scripts/pins.py。

配置:需 FREVANA_TOKEN(当前用户 JWT),或用一次性 --token 覆盖;建议用环境注入避免令牌进入历史与参数,切勿在输出、示例或日志中暴露真实令牌。缺少令牌会非交互失败,本技能不读写本地登录状态。API 只接受 JWT,不使用 FREVANA_API_KEY。FREVANA_API_BASE_URL 默认 https://api.frevana.com,可用 --api-base-url 覆盖,填服务器根 URL,不含 /user-pins;JWT 只发往指定的 Frevana API 地址,拒绝 API 重定向。需要 Python 3.9+ 标准库,Shell 入口还需 Bash;不安装依赖,也不需要 curl 或 jq。未指定文件、Pin ID 或集合 ID 时,先列出相关记录确定唯一匹配;多条匹配时应询问,不要猜测或扩大范围。

主要操作:list 列出媒体(可 --kind image|video、--collection-id);collection list 列出集合;upload 上传并保存 Pin(可带标题、来源 URL、集合 ID),--asset-only 仅上传媒体不建 Pin;add 保存已有媒体链接(记为外链,不抓取或复制到 S3);remove 删除记录及其集合归属,不删除 S3 文件;collection create/rename/delete,collection move 移动 Pin,collection ungroup 取消分组(一个 Pin 至多属于一个集合,删除集合保留 Pin);present 获取临时 URL;download 通过服务端代理下载本人 S3 媒体(拒绝覆盖已有文件,外链不可下载);upload-url 获取直传地址,之后仍需上传字节并执行 add。

保存语义:写入只提交受影响数组再重读校验,上限为 100 个 Pin 与 40 个集合,达到上限拒绝新增。服务端无原子版本检查,脚本写入前比对完整快照以发现部分并发编辑,但不消除竞态,同一用户写入需串行化。写入或校验失败即停止,不自动重放;若上传成功但后续失败,错误含 asset_path,重试前先 list 确认。PUT 成功但校验未完成返回 save_status: submitted_unverified;连接中断或响应截断返回 save_status: outcome_unknown,需先检查库再决定。

输出与限制:成功时向 stdout 输出单个 JSON;运行错误以 JSON 写 stderr 并返回非零退出码。--output-json 保存结果且不覆盖已有文件(权限 0600),download --output 指定媒体文件,二者路径须分开。JSON 可能含临时签名 URL,仅在需要时生成。详情见 references/api.md。