单向历

v1.0.0

每日单向历图片发送工具。自动获取当天日期,构造图片 URL,并通过飞书发送单向历图片。支持配置向导和定时任务。

0· 282·1 current·1 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
技能名、描述、SKILL.md 与代码(setup.js / send.js)一致:构造单向历图片 URL 并通过 openclaw CLI 将图片发送到飞书用户 ID。所需能力(openclaw 可用且已配置飞书渠道)与实现相符。
Instruction Scope
运行说明仅要求启动配置向导、运行发送脚本或通过 openclaw 添加定时任务,未要求读取系统中其它敏感路径或环境变量。需注意:指令依赖 openclaw 日志/CLI 来发现并发送消息,这隐含该 agent 环境已配置飞书渠道并拥有发送消息的权限。
Install Mechanism
无安装规范(instruction-only + 附带脚本),不会在安装阶段下载或执行远端二进制,风险较低。
Credentials
不要求任何环境变量或外部凭据;仅在本地写入/读取 skill 目录下的 config.json(包含飞书 userId)。这与技能用途相称。不过实际发送依赖 OpenClaw 已配置的飞书通道,该凭据不由此技能管理。
!
Persistence & Privilege
技能不强制常驻(always:false),也不修改其它技能配置,但 send.js 和 setup.js 使用 child_process.execSync 拼接并执行 shell 命令:send.js 将 userId 直接插入 --target 参数且未进行充分转义/引用(userId 只做 startsWith('ou_') 校验)。若 config.json 被篡改或输入包含特殊字符,存在命令注入风险。建议对外部值进行严格校验或使用安全 API(避免 shell 拼接)。
What to consider before installing
这个技能实现与你看到的说明一致:它在本地生成 config.json(包含飞书 userId),构造当天图片 URL,然后使用 openclaw CLI 发消息。主要风险不是隐藏后门,而是代码在执行 shell 命令时直接拼接了来自 config.json 的值(尤其是 userId),如果该文件被篡改或你输入了恶意字符串,可能导致命令被注入并执行。建议在安装/运行前: - 检查 config.json 内容并仅填写可信的 ou_ 开头 userId;不要把不明字符粘贴进去。\ - 临时把技能放在隔离会话/用户下运行,避免以高权限执行脚本。\ - 修补 send.js:在构造命令时为所有外部输入加上严格的引用或直接使用无 shell 的 spawn API(传数组参数),例如不把 userId 放到未经转义的字符串里。\ - 确认你的 OpenClaw/飞书通道凭据只授权发送消息,不授予多余权限。\ 如果你 want,我可以给出一个更安全的 send.js 改写示例,移除命令拼接并用 child_process.spawn/execFile 或直接调用 OpenClaw/飞书 API 来降低注入风险。

Like a lobster shell, security has layers — review code before you run it.

latestvk9722bf06rfrst04qktpdrpa7h82anv1
282downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

One Calendar - 单向历

📅 一天,一张图,一份日历的温度。

快速开始

1. 配置

cd ~/.openclaw/workspace/skills/one-calendar
node scripts/setup.js

向导会引导你输入飞书用户 ID 并保存配置。

2. 使用

手动发送

node scripts/send.js

对话触发

单向历
今日单向历
发单向历

定时任务(每天早上 8 点):

openclaw cron add \
  --name "每日单向历" \
  --at "0 8 * * *" \
  --session isolated \
  --message "node ~/.openclaw/workspace/skills/one-calendar/scripts/send.js" \
  --workdir ~/.openclaw/workspace

配置说明

配置文件:config.json(由 setup.js 生成)

{
  "feishu": {
    "userId": "ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  },
  "settings": {
    "timezone": "Asia/Shanghai",
    "baseUrl": "https://img.owspace.com/Public/uploads/Download"
  }
}

获取飞书用户 ID:运行 openclaw logs --follow,然后在飞书中给机器人发消息,日志中 ou_ 开头的字符串即为你的 ID。

文件结构

one-calendar/
├── config.example.json   # 配置模板
├── config.json           # 用户配置(setup.js 生成)
├── SKILL.md              # 技能定义
├── README.md             # 详细文档
└── scripts/
    ├── send.js           # 发送脚本
    └── setup.js          # 配置向导

注意事项

  • 首次使用请先运行 node scripts/setup.js
  • 飞书用户 ID 必须以 ou_ 开头
  • 图片源为单向历官方服务器,格式:{YEAR}/{MMDD}.jpg

Comments

Loading comments...