法律免责声明
请仅在符合当地版权法规的前提下使用本技能。若下载的电子书受版权保护,请确保已获得合法授权或购买正版权限。
⚠️ 严格执行规则(必须遵守)
你只是一个脚本执行者,禁止自主决策!
- 1. 必须执行 workflow.js 脚本 - 所有下载操作必须通过脚本完成
- 禁止直接回复结果 - 必须等脚本输出后才能回复
- 禁止虚构下载路径 - 文件路径必须来自脚本输出
- 禁止绕过用户选择 - 看到 NEED_SELECTION 必须停止并等待
执行流程
步骤 1:执行搜索脚本
解析用户输入后,立即执行以下命令(确保 node 在环境变量中):
CODEBLOCK0
- - 只有书名:第二个参数用 '{}'
- 有作者:第二个参数用 '{author: 作者名}'
- 有出版社:第二个参数用 '{publisher: 出版社名}'
步骤 2:解析脚本输出
逐行解析脚本输出,严格按以下规则处理:
情况 A:看到 SUCCESSFILEPATH:
含义:下载成功
动作:
- 1. 提取冒号后的文件路径
- 执行步骤 3 发送邮件
情况 B:看到 NEEDSELECTION: 或 SCREENSHOTSENT:
含义:需要用户选择
动作:
- 1. 立即停止执行
- 发送截图:/tmp/kindledownloads/lastsearch_result.png
- 回复:"搜索结果包含多个不同的作者或出版社,请查看截图并告诉我您选择的作者或出版社。"
- 等待用户回复,回复后重新执行步骤 1(带上用户选择条件)
情况 C:看到 ERROR: NOMATCHINGBOOK
含义:没有找到符合的书籍
动作:
- 1. 发送截图:/tmp/kindledownloads/lastsearch_result.png
- 回复:"没有找到符合要求的书籍,请查看截图。"
情况 D:看到其他 ERROR:
含义:发生错误
动作:
- 1. 发送错误截图:/tmp/kindledownloads/lasterror.png
- 回复具体错误信息
步骤 3:发送邮件
使用 Python 执行邮件发送脚本:
CODEBLOCK1
解析输出:
- - 看到
SUCCESS: Email sent → 回复:"已发送" - 看到
ERROR: → 回复具体错误
进度报告(可选)
看到 PROGRESS: 输出时,可向用户报告:
- -
PROGRESS: 第一步登录已完成。 → 可报告"第一步登录已完成" - INLINECODE3 → 可报告"第二步查找书籍已完成"
- INLINECODE4 → 可报告"第三步下载书籍已完成"
🚫 禁止事项
- 1. 禁止不执行脚本直接回复"已下载"或"已发送"
- 禁止在看到 NEED_SELECTION 后继续下载
- 禁止自动选择作者或出版社
- 禁止使用之前的下载记录
- 禁止虚构文件路径
示例对话
用户:kindle 下载活着
AI:(执行脚本)
脚本输出:NEED_SELECTION: ...
AI:/tmp/kindledownloads/lastsearch_result.png
搜索结果包含多个不同的作者或出版社,请查看截图并告诉我您选择的作者或出版社。
用户:余华
AI:(重新执行脚本,带上 author: 余华)
脚本输出:SUCCESSFILEPATH:/tmp/kindle_downloads/活着.epub
AI:(执行发送脚本)
脚本输出:SUCCESS: Email sent...
AI:已发送
[Category+Skill Reminder]
Built-in: playwright, frontend-ui-ux, git-master, dev-browser
⚡ YOUR SKILLS (PRIORITY): (none)
User-installed skills OVERRIDE built-in defaults. ALWAYS prefer YOUR SKILLS when domain matches.
CODEBLOCK2
法律免责声明
请仅在符合当地版权法规的前提下使用本技能。若下载的电子书受版权保护,请确保已获得合法授权或购买正版权限。
⚠️ 严格执行规则(必须遵守)
你只是一个脚本执行者,禁止自主决策!
- 1. 必须执行 workflow.js 脚本 - 所有下载操作必须通过脚本完成
- 禁止直接回复结果 - 必须等脚本输出后才能回复
- 禁止虚构下载路径 - 文件路径必须来自脚本输出
- 禁止绕过用户选择 - 看到 NEED_SELECTION 必须停止并等待
执行流程
步骤 1:执行搜索脚本
解析用户输入后,立即执行以下命令(确保 node 在环境变量中):
bash
node ~/.openclaw/workspace/skills/kindle-download/scripts/workflow.js 书名 {author: 作者, publisher: 出版社}
- - 只有书名:第二个参数用 {}
- 有作者:第二个参数用 {author: 作者名}
- 有出版社:第二个参数用 {publisher: 出版社名}
步骤 2:解析脚本输出
逐行解析脚本输出,严格按以下规则处理:
情况 A:看到 SUCCESSFILEPATH:
含义:下载成功
动作:
- 1. 提取冒号后的文件路径
- 执行步骤 3 发送邮件
情况 B:看到 NEEDSELECTION: 或 SCREENSHOTSENT:
含义:需要用户选择
动作:
- 1. 立即停止执行
- 发送截图:/tmp/kindledownloads/lastsearch_result.png
- 回复:搜索结果包含多个不同的作者或出版社,请查看截图并告诉我您选择的作者或出版社。
- 等待用户回复,回复后重新执行步骤 1(带上用户选择条件)
情况 C:看到 ERROR: NOMATCHINGBOOK
含义:没有找到符合的书籍
动作:
- 1. 发送截图:/tmp/kindledownloads/lastsearch_result.png
- 回复:没有找到符合要求的书籍,请查看截图。
情况 D:看到其他 ERROR:
含义:发生错误
动作:
- 1. 发送错误截图:/tmp/kindledownloads/lasterror.png
- 回复具体错误信息
步骤 3:发送邮件
使用 Python 执行邮件发送脚本:
bash
python3 ~/.openclaw/workspace/skills/kindle-download/scripts/send_kindle.py 文件路径
解析输出:
- - 看到 SUCCESS: Email sent → 回复:已发送
- 看到 ERROR: → 回复具体错误
进度报告(可选)
看到 PROGRESS: 输出时,可向用户报告:
- - PROGRESS: 第一步登录已完成。 → 可报告第一步登录已完成
- PROGRESS: 第二步查找书籍已完成。 → 可报告第二步查找书籍已完成
- PROGRESS: 第三步下载书籍已完成。 → 可报告第三步下载书籍已完成
🚫 禁止事项
- 1. 禁止不执行脚本直接回复已下载或已发送
- 禁止在看到 NEED_SELECTION 后继续下载
- 禁止自动选择作者或出版社
- 禁止使用之前的下载记录
- 禁止虚构文件路径
示例对话
用户:kindle 下载活着
AI:(执行脚本)
脚本输出:NEED_SELECTION: ...
AI:/tmp/kindledownloads/lastsearch_result.png
搜索结果包含多个不同的作者或出版社,请查看截图并告诉我您选择的作者或出版社。
用户:余华
AI:(重新执行脚本,带上 author: 余华)
脚本输出:SUCCESSFILEPATH:/tmp/kindle_downloads/活着.epub
AI:(执行发送脚本)
脚本输出:SUCCESS: Email sent...
AI:已发送
[Category+Skill Reminder]
Built-in: playwright, frontend-ui-ux, git-master, dev-browser
⚡ YOUR SKILLS (PRIORITY): (none)
User-installed skills OVERRIDE built-in defaults. ALWAYS prefer YOUR SKILLS when domain matches.
typescript
task(category=visual-engineering, load
skills=[playwright], runin_background=true)