Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/lihanghang/agent-daily-blog --skill memect-data-api명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Parse PDF and images into structured Markdown / JSON using PPX. Supports OCR, table extraction, formulas, multi-column layouts, and LLM backends.
Take the Clawvard entrance exam to evaluate your capabilities across 8 dimensions (Understanding, Execution, Retrieval, Reasoning, Reflection, Tooling, EQ). 16 questions, graded by AI.
Convert Markdown to WeChat Official Account HTML, inspect supported providers/themes/prompts, generate article images, create drafts, write with creator styles, and remove AI writing traces.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | memect-data-api |
| version | 1.0.0 |
| description | 获取 xiaer.ai 上市公司公告数据 API |
| homepage | http://39.104.68.74:8452 |
| metadata | {"api_base":"http://39.104.68.74:8452"} |
获取 xiaer.ai 上市公司公告数据的 API 服务。
| File | URL |
|---|---|
| SKILL.md (this file) | http://39.104.68.74:8452/skill.md |
| package.json (metadata) | http://39.104.68.74:8452/skill.json |
Install locally:
mkdir -p ~/.openclaw/skills/memect-data-api
curl -s http://39.104.68.74:8452/skill.md > ~/.openclaw/skills/memect-data-api/SKILL.md
curl -s http://39.104.68.74:8452/skill.json > ~/.openclaw/skills/memect-data-api/package.json
Base URL: http://39.104.68.74:8452
⚠️ NOTE: 这是一个内部 API 服务,需要提供认证信息。
Check for updates: Re-fetch these files anytime to see new features!
检查 API 服务状态:
curl http://39.104.68.74:8452/
响应:
{
"status": "healthy",
"timestamp": "2026-02-11T11:34:07.041557",
"service": "memect-data-api"
}
注意: 根地址返回健康检查状态,实际获取接口可能需要不同的端点或参数。请联系 API 提供方确认完整的 API 文档。
curl "http://39.104.68.74:8452/"
响应:
{
"status": "healthy",
"timestamp": "2026-02-11T11:34:07.041557",
"service": "memect-data-api"
}
默认:获取每日公告
curl "http://39.104.68.74:8452/"
注意: 具体端点路径需要根据实际 API 文档确认。当前根路径返回健康检查。
# 按类型获取
curl "http://39.104.68.74:8452/?type=O_临时公告_董事会决议"
# 获取多个类型
curl "http://39.104.68.74:8452/?type=O_临时公告_董事会决议,O_临时公告_股东大会决议"
curl "http://39.104.68.74:8452/?date=2026-02-11"
curl "http://39.104.68.74:8452/?company=600000"
{
"id": "12345",
"company_code": "600000",
"company_name": "浦发银行",
"title": "公告标题",
"type": "董事会决议公告",
"content": "公告内容摘要",
"url": "https://xiaer.ai/post/12345",
"published_at": "2026-02-11T10:00:00Z",
"extracted_at": "2026-02-11T10:05:00Z"
}
curl -s "http://39.104.68.74:8452/" | jq '.data'
# 获取 2026-02-11 的公告
curl -s "http://39.104.68.74:8452/?date=2026-02-11" | jq '.data[] | "\(.published_at): \(.title)"'
curl -s "http://39.104.68.74:8452/?type=O_临时公告_董事会决议" | jq '.data[] | "\(.company_name): \(.title)"'
curl -s "http://39.104.68.74:8452/?type=O_临时公告_人事变动" | jq '.data[] | "\(.published_at): \(.title)"'
curl -s "http://39.104.68.74:8452/?type=O_临时公告_业绩预告公告" | jq '.data[] | "\(.company_code): \(.title)"'
curl -s "http://39.104.68.74:8452/?date=2026-02-11&type=O_临时公告_董事会决议,O_临时公告_人事变动" | jq '.data'
# 保存上次获取的最大 ID
LAST_ID=10000
# 获取新公告(假设 API 支持 after_id 参数)
curl -s "http://39.104.68.74:8452/?after_id=$LAST_ID" | jq '.data'
# 获取单条公告详情
curl -s "http://39.104.68.74:8452/?id=10012345" | jq '.data'
{
"data": [
{
"id": "10012345",
"company_code": "600000",
"company_name": "浦发银行",
"title": "第七届董事会第十六次会议决议公告",
"type": "O_临时公告_董事会决议",
"content": "公告内容摘要...",
"url": "https://xiaer.ai/post/10012345",
"published_at": "2026-02-11T10:00:00Z",
"extracted_at": "2026-02-11T10:05:00Z"
}
],
"success": true,
"total": 50
}
字段说明:
id - 公告唯一标识company_code - 公司代码(股票代码)company_name - 公司名称title - 公告标题type - 公告类型(见上文完整列表)content - 公告内容摘要url - 原始公告链接published_at - 发布时间extracted_at - 提取时间Success:
{"success": true, "data": {...}}
Error:
{"success": false, "error": "Description"}
API 支持以下公告类型分类:
| 类型 | 说明 |
|---|---|
| O_临时公告_人事变动 | 高管人员变动 |
| O_临时公告_公司董事长、法定代表人辞职 | 董事长或法人代表辞职 |
| O_临时公告_推选职工董事或者监事 | 职工代表选举 |
| O_临时公告_核心技术人员离职 | 核心技术人员离职 |
| O_临时公告_核心技术人员新增认定 | 核心技术人员认定 |
| 类型 | 说明 |
|---|---|
| O_临时公告_董事会决议 | 董事会会议决议 |
| O_临时公告_监事会决议 | 监事会会议决议 |
| O_临时公告_董事会秘书辞职 | 董事会秘书辞职 |
| O_临时公告_董事会审议高送转 | 董事会审议送转股 |
| 类型 | 说明 |
|---|---|
| O_临时公告_股东大会决议 | 股东大会决议 |
| O_临时公告_股东大会召开通知 | 股东大会通知 |
| O_临时公告_职工代表大会决议 | 职工代表大会决议 |
| O_临时公告_召开业绩说明会 | 业绩说明会 |
| O_临时公告_股东大会法律意见书 | 股东大会法律意见 |
| O_临时公告_股东大会延期 | 股东大会延期 |
| O_临时公告_增加临时提案 | 新增临时提案 |
| 类型 | 说明 |
|---|---|
| O_临时公告_股票交易异常波动 | 股价异常波动说明 |
| O_临时公告_股份回购实施进展公告 | 股票回购进展 |
| O_临时公告_回购实施进展 | 回购执行情况 |
| O_临时公告_回购预案 | 回购计划预案 |
| O_临时公告_股票解除限售 | 股票解除限售 |
| 类型 | 说明 |
|---|---|
| O_临时公告_业绩预告公告 | 业绩预告披露 |
| O_临时公告_主要业务经营情况_000069 | 业务经营情况 |
| O_临时公告_生产经营数据_601006 | 生产经营数据 |
| O_临时公告_利润分配 | 利润分配方案 |
| O_临时公告_优先股股息分派 | 优先股分红 |
| O_临时公告_变更会计师事务所 | 更换会计机构 |
| O_临时公告_聘任会计师事务所 | 聘请会计机构 |
| 类型 | 说明 |
|---|---|
| O_临时公告_募集资金置换 | 募集资金置换 |
| O_临时公告_归还募集资金 | 归还募集资金 |
| O_临时公告_用募集资金置换预先投入的自筹资金 | 用募资置换自筹资金 |
| O_临时公告_变更募集资金用途 | 变更募资用途 |
| O_临时公告_可转债发行 | 可转换债券发行 |
| O_临时公告_可转债到期兑付及摘牌 | 可转债到期兑付 |
| O_临时公告_转债付息 | 可转债利息支付 |
| 类型 | 说明 |
|---|---|
| O_临时公告_药品批准上市公告 | 新药上市批准 |
| 类型 | 说明 |
|---|---|
| O_临时公告_设立产业基金 | 设立产业基金 |
| O_临时公告_对外投资 | 对外投资公告 |
| O_临时公告_对外捐赠 | 捐赠资产 |
| O_临时公告_购买资产 | 购买资产 |
| O_临时公告_出售资产 | 出售资产 |
| O_临时公告_与关联人共同投资 | 与关联方投资 |
| O_临时公告_向关联人购买资产 | 向关联方购资产 |
| O_临时公告_向关联人出售资产 | 向关联方售资产 |
| O_临时公告_签署合作协议 | 签订合作协议 |
| O_临时公告_签订战略框架协议 | 签战略框架协议 |
| 类型 | 说明 |
|---|---|
| O_临时公告_政府补助 | 政府补助公告 |
| O_临时公告_获得财政补贴 | 获得财政补贴 |
| O_临时公告_提供财务资助 | 提供财务资助 |
| O_临时公告_接受财务资助 | 接受财务资助 |
| 类型 | 说明 |
|---|---|
| O_临时公告_股权激励计划实施完成 | 股权激励完成 |
| O_临时公告_股权激励计划授予 | 股权激励授予 |
| O_临时公告_股权激励计划终止 | 股权激励终止 |
| 类型 | 说明 |
|---|---|
| O_临时公告_员工持股计划实施进展 | 员工持股进展 |
| 类型 | 说明 |
|---|---|
| O_临时公告_应当披露交易的进展 | 重大交易进展 |
| O_临时公告_应当披露交易的提示 | 重大交易提示 |
| O_临时公告_应当披露交易已完成 | 重大交易完成 |
| O_临时公告_重大资产重组终止 | 重组终止 |
| O_临时公告_取消重大资产重组并复牌 | 取消重组复牌 |
| O_临时公告_发生重大债务或重大债权到期未清偿 | 重大债务未清偿 |
| O_临时公告_重大亏损或重大损失 | 重大亏损公告 |
| O_临时公告_债务重组 | 债务重组公告 |
| 类型 | 说明 |
|---|---|
| O_临时公告_变更证券简称 | 证券简称变更 |
| O_临时公告_变更公司名称 | 公司名称变更 |
| O_临时公告_注册资本 | 注册资本变更 |
| O_临时公告_取得商标注册证书 | 商标注册证书 |
| O_临时公告_获得发明专利证书 | 发明专利证书 |
| O_临时公告_变更办公地址及联系方式 | 办公地址变更 |
| 类型 | 说明 |
|---|---|
| O_临时公告_公告元信息 | 公告元数据信息 |
| O_临时公告_澄清致歉 | 澄清致歉公告 |
| O_临时公告_主要业务经营情况_000069 | 业务情况说明 |
| O_临时公告_生产经营数据_601006 | 生产数据披露 |
| O_临时公告_公司涉嫌违法违规被其他机构调查 | 公司被调查 |
| O_临时公告_立案调查 | 立案调查公告 |
| O_临时公告_收到应诉通知书 | 收到起诉书 |
| O_临时公告_法院裁定重整、和解或破产清算 | 法院裁定公告 |
| O_临时公告_中标候选人公示 | 中标候选人公示 |
| O_临时公告_上市公司集体接待日 | 投资者接待日 |
| O_临时公告_开展套期保值业务 | 期货套保业务 |
| O_临时公告_列为被执行人 | 列为被执行人 |
| O_临时公告_董监高被调查、处罚或被采取强制措施 | 董监高被处罚 |
| O_临时公告_控股股东或实际控制人发生变动的提示 | 实控人变动提示 |
| O_临时公告_股票交易风险提示 | 股票风险提示 |
| O_临时公告_股东回馈活动 | 股东回馈活动 |
| O_临时公告_关联交易的完成 | 关联交易完成 |
| O_临时公告_重要前期会计差错更正 | 会计差错更正 |
| O_临时公告_其他股权变动 | 其他股权变动 |
| O_临时公告_员工持股计划实施进展 | 员工持股计划进展 |
| O_临时公告_购买理财产品 | 理财产品购买 |
| O_临时公告_委托管理资产和业务 | 委托管理资产 |
| O_临时公告_子公司注销 | 子公司注销 |
| O_临时公告_更换持续督导保荐代表人 | 更换保荐人 |
| O_临时公告_人员留置 | 人员留置 |
| O_临时公告_新建项目 | 新建项目公告 |
每日公告获取:
API 默认获取每日公告,以下是一些常用查询方式:
# 获取今日所有公告(默认行为)
curl "http://39.104.68.74:8452/"
# 获取特定类型的公告
curl "http://39.104.68.74:8452/?type=O_临时公告_董事会决议"
# 获取指定日期的公告
curl "http://39.104.68.74:8452/?date=2026-02-11"
可以按公告类别进行筛选:
# 董事会/监事会
curl "http://39.104.68.74:8452/?type=O_临时公告_董事会决议,O_临时公告_监事会决议"
# 人事变动
curl "http://39.104.68.74:8452/?type=O_临时公告_人事变动"
# 股东大会
curl "http://39.104.68.74:8452/?type=O_临时公告_股东大会决议,O_临时公告_股东大会召开通知"
# 业绩预告
curl "http://39.104.68.74:8452/?type=O_临时公告_业绩预告公告"
# 回购相关
curl "http://39.104.68.74:8452/?type=O_临时公告_股份回购实施进展公告"
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import json
from datetime import datetime
from collections import defaultdict
API_BASE = "http://39.104.68.74:8452"
def get_announcements(date=None, types=None):
"""获取公告数据"""
params = {}
if date:
params['date'] = date
if types:
params['type'] = ','.join(types)
response = requests.get(API_BASE, params=params)
return response.json()
def summarize_by_type(announcements):
"""按类型汇总公告"""
summary = defaultdict(list)
for item in announcements:
summary[item.get('type', 'Unknown')].append(item)
return dict(summary)
def main():
# 获取今日公告
today = datetime.now().strftime("%Y-%m-%d")
result = get_announcements(date=today)
if result.get('success') and result.get('data'):
announcements = result['data']
# 按类型汇总
by_type = summarize_by_type(announcements)
# 打印汇总
print(f"\n📊 公告汇总 ()")
( * )
ann_type, items (by_type.items(), key= x: (x[]), reverse=):
items:
()
item items[:]:
()
(items) > :
()
__name__ == :
main()
#!/bin/bash
API="http://39.104.68.74:8452"
TODAY=$(date +%Y-%m-%d)
LAST_ID_FILE="last_announcement_id.txt"
# 读取上次最后一条 ID
if [ -f "$LAST_ID_FILE" ]; then
LAST_ID=$(cat "$LAST_ID_FILE")
else
LAST_ID="0"
fi
# 获取公告
RESPONSE=$(curl -s "$API/?date=$TODAY")
# 解析并保存最新 ID
NEWEST_ID=$(echo "$RESPONSE" | jq -r '.data[0].id // empty')
if [ -n "$NEWEST_ID" ] && [ "$NEWEST_ID" != "empty" ]; then
echo "$NEWEST_ID" > "$LAST_ID_FILE"
fi
# 按类型统计
echo "$RESPONSE" | jq -r '.data | group_by(.type) | map({type: .[0].type, count: length}) | sort_by(.count) | reverse | .[] | "\(.type | split("_")[2:]): \(.count) 条"'
#!/bin/bash
API="http://39.104.68.74:8452"
LAST_ID_FILE="last_id.txt"
# 读取上次最后一条 ID
if [ -f "$LAST_ID_FILE" ]; then
LAST_ID=$(cat "$LAST_ID_FILE")
else
LAST_ID="0"
fi
# 获取新公告(假设支持 after_id)
RESPONSE=$(curl -s "$API/?after_id=$LAST_ID")
COUNT=$(echo "$RESPONSE" | jq '.data | length')
if [ "$COUNT" -gt 0 ]; then
# 保存最新的 ID
NEWEST_ID=$(echo "$RESPONSE" | jq -r '.data[-1].id')
echo "$NEWEST_ID" > "$LAST_ID_FILE"
# 打印新公告
echo "发现 $COUNT 条新公告:"
echo "$RESPONSE" | jq -r '.data[] | "\(.published_at): \(.company_name) - \(.title)"'
fi
ping 39.104.68.74jq 解析 JSON如有问题或建议,请联系 API 提供方。