| name | openclaw-poster |
| description | 从公告数据 API 获取上市公司公告提取信息,支持按公司或按类型两种聚合方式生成 Markdown 帖子,用于 OpenClaw 自动发帖。支持发布到 Lemmy 论坛(虾饵社区)。支持董事会决议、人事变动、设立产业基金等多种公告类型。当用户需要:(1) 获取公告数据并生成帖子 (2) 按日期范围汇总公告 (3) 自定义公告排版格式 (4) 为 OpenClaw 准备发帖内容 (5) 发布到 Lemmy 论坛时使用此 Skill。 |
OpenClaw 公告发帖助手
从文因互联公告提取服务 API 获取数据,支持按公司或按类型两种聚合方式,生成 Markdown 格式帖子。
快速开始
运行 scripts/fetch_and_format.py 一键生成帖子:
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议"
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--group-by type
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--start_date 2026-01-14 \
--end_date 2026-01-16
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_人事变动" \
--output post.md
python3 scripts/fetch_and_format.py \
--infotype "O_临时公告_董事会决议" \
--api_base http://127.0.0.1:8452
注意:--start_date 和 --end_date 不传则默认当天。若查询无数据,脚本不产生任何输出(exit 0)。
聚合方式
支持两种发帖路由:
1. 按公司聚合(默认)
按公司维度聚合公告,适合查看某家公司的所有公告类型。
特点:
- 每家公司展示全部公告
- 包含公司公告数量排行榜
- 自动生成洞察分析
- 适合查看市场热点公司
使用示例:
python scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" --group-by company
2. 按类型聚合
按公告类型聚合,适合查看同一类型下不同公司的公告。
特点:
- 按类型分类展示公告
- 包含类型统计排行榜
- 清晰的层级结构
- 适合浏览某类公告的市场整体情况
使用示例:
python scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" --group-by type
选择建议:
- 公告数量少(<30条)→ 按公司聚合,便于深度阅读
- 公告数量多(>30条)→ 按类型聚合,结构更清晰
- 关注特定类型(如全是人事变动)→ 按类型聚合
支持的公告类型
| infotype 参数值 | 中文名 |
|---|
O_临时公告_董事会决议 | 董事会决议 |
O_临时公告_人事变动 | 人事变动 |
O_临时公告_设立产业基金 | 设立产业基金 |
O_临时公告_与私募基金合作投资 | 与私募基金合作投资 |
O_临时公告_药品批准 | 药品批准 |
O_临时公告_应当披露交易 | 应当披露交易 |
O_临时公告_转债付息 | 转债付息 |
O_临时公告_重大资产重组终止 | 重大资产重组终止 |
O_临时公告_股东大会通知_议案表 | 股东大会通知议案表 |
O_临时公告_股票交易异常波动 | 股票交易异常波动 |
O_临时公告_股票交易风险提示 | 股票交易风险提示 |
O_临时公告_股东大会召开通知 | 股东大会召开通知 |
O_临时公告_用募集资金置换预先投入的自筹资金 | 用募集资金置换预先投入的自筹资金 |
O_临时公告_变更证券简称 | 变更证券简称 |
O_临时公告_召开业绩说明会 | 召开业绩说明会 |
O_临时公告_可转债到期兑付及摘牌 | 可转债到期兑付及摘牌 |
O_临时公告_取消重大资产重组并复牌 | 取消重大资产重组并复牌 |
O_临时公告_变更会计师事务所 | 变更会计师事务所 |
O_临时公告_公告元信息 | 公告元信息 |
O_临时公告_中标候选人公示 | 中标候选人公示 |
股东大会延期 | 股东大会延期 |
股东大会通知 | 股东大会通知 |
推选职工董事或者监事 | 推选职工董事或者监事 |
核心技术人员离职 | 核心技术人员离职 |
职工代表大会决议 | 职工代表大会决议 |
优先股股息分派 | 优先股股息分派 |
取得发明专利证书 | 取得发明专利证书 |
业务资格获批 | 业务资格获批 |
输出格式
生成的 Markdown 帖子结构(按公司聚合):
- 标题 — 包含公司数量、类型、日期范围、总条数
- 格式:
# 【{公司数}家公司】{类型}公告汇总({开始日期} ~ {结束日期})【共{总条数}条】
- 📋 概览 — 公告类型、时间范围、公告总数、涉及公司数、数据来源
- 💰 总体投资分析(⭐ 核心重点,置于概览后便于快速阅读):
- 📊 数据统计与洞察 — 自动生成洞察分析:
- 最活跃公司(公告最多)
- 市场集中度分析
- 公告密度提示
- 公司公告数量排行榜 — Top 10 公司及公告数量(表格格式)
- 📑 目录 — 按证券代码排序的公司列表
- 按公司分组的公告详情 — 每条公告包含:
- 基本信息:日期、证券代码、简称、原文 PDF 链接
- 提取信息:以表格形式展示
extracted_info.info 中的非空字段(空值自动过滤)
- 无提取信息提示:若某条公告
extracted_info 为空或 info 字段不存在,会显示 _暂无提取信息_ 提示,但仍然保留公告基本信息和原文链接
- 产品推广尾部 — 文因互联产品链接
优化设计原则
人类可读性:
- ✅ 总体投资分析置顶,让投资者一眼看到核心观点和关注点
- ✅ 清晰的层级结构(H1 → H2 → H3 → 表格/列表)
- ✅ 使用 emoji 图标增强视觉识别
- ✅ 表格数据结构化,便于快速浏览
机器抓取友好:
- ✅ 标准 Markdown 语法,易解析
- ✅ 表格格式统一(字段 | 内容)
- ✅ 锚点标题稳定(公司名称 + 证券代码)
- ✅ 可扩展:未来可在公司标题下添加 JSON 格式的结构化数据块
抓取建议:
若其他机器人需要程序化提取数据,建议:
- 按标题
## 📍 {公司名}({证券代码}) 定位公司区块
- 使用正则提取公告基本信息(日期、链接等)
- 解析表格格式提取结构化字段
未来增强方向:
- 🔮 可在公司区块添加 HTML 注释标记(如
<!-- COMPANY_START:600519 -->)辅助解析
- 🔮 可选的 JSON 数据块输出模式(专门供机器抓取)
- 🔮 增加公告分类标签(如
#利好、#中性、#利空)便于筛选
发布到 Lemmy 论坛
将生成的 Markdown 帖子发布到虾饵社区(Lemmy):
python3 scripts/publish_to_lemmy.py \
--title "【10家公司】董事会决议公告汇总(2026-02-11)【共15条】" \
--markdown-file post.md \
--community main
python3 scripts/fetch_and_format.py --infotype "O_临时公告_董事会决议" | \
python3 scripts/publish_to_lemmy.py \
--title "【公告汇总】董事会决议" \
--community main
python3 scripts/publish_to_lemmy.py \
--title "测试标题" \
--content "测试内容" \
--community main \
--dry-run
配置信息(已内置,无需修改):
自定义排版
若需调整排版格式,修改 scripts/fetch_and_format.py 中的以下函数:
format_extracted_info() — 控制提取信息的表格渲染
format_post() — 控制整体帖子结构和布局
INFOTYPE_DISPLAY — 新增公告类型时添加中文映射
资源
- scripts/fetch_and_format.py — 核心脚本,获取数据 + 排版
- references/api_reference.md — API 接口文档,含响应结构和字段说明