关于 chinese-poetry-api
chinese-poetry-api 是一个调用 chinese-poetry-api REST 服务的命令行技能,面向需要查询和检索中文诗词的用户。它支持简体与繁体输出,并提供诗作、作者、朝代和体裁等查询。
主要功能
- 01列出并筛选诗作
- 02按标题、内容或作者搜索
- 03获取随机诗作
- 04查询作者、朝代与体裁
- 05切换简体或繁体中文
适用场景
- 01按作者或朝代查找诗作
- 02搜索诗词标题或正文
- 03随机获取诗作用于阅读
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wmy2981/ skills --skill chinese-poetry-api安装后在 Claude Code 中输入/chinese-poetry-api确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.claude-plugin/plugin.jsonscripts/.env.examplemain.tspackage.jsontsconfig.json详细介绍
中国诗词 API
基于 chinese-poetry-api REST 服务的命令行封装(Go,约 37 万首诗词,支持通过 lang 切换简体中文和繁体中文)。
执行规则
直接运行用户的命令,无需预先检查;若失败,则修复问题。
要求
- Bun 运行时(>= 1.0)
- 可访问的 chinese-poetry-api 实例
设置
脚本读取 POETRY_API_URL 环境变量——该变量应为完整的 API 基础 URL(脚本不会追加前缀)。默认值为 https://poetry.palemoky.com/api,这是上游开发者提供的在线测试实例。该实例可能会限流、变更数据或在未通知的情况下离线——请仅将其作为演示使用。若要用于实际工作,请将 POETRY_API_URL 指向你自己的实例(本地 Docker 或自托管部署)。
- 查看
scripts/.env.example,确认变量名称。 - 在共享全局文件
~/.wmyskills/.env中添加或更新POETRY_API_URL。 - 不要直接将
.env.example复制为.env,否则会覆盖现有配置。
如果用户的请求需要一个尚未运行的实例,请先通知用户,再启动实例:
docker run -d -p 1279:1279 palemoky/chinese-poetry-api:latest
用法
bun run scripts/main.ts <command> [options]
所有输出均为服务器返回的原始 JSON 正文——请原样打印,不要重新格式化或概述。对于非 2xx 响应,将 Error <status>: <body> 输出到 stderr,并以 1 退出。
| 命令 | 描述 | 选项 |
|---|---|---|
health | 健康检查 | — |
stats | 总体统计 | — |
poems | 列出诗词(可组合筛选条件) | --dynasty --author --dynasty-id --type-id(可重复,OR)--page --page-size(最大值为 100) |
search | 全文搜索(FTS5) | --q(必需)--type(默认为 all,可选 title、content、author)--page --page-size |
random | 随机诗词 | --author --author-id --dynasty --dynasty-id --type(可重复,OR)--type-id --char |
authors | 列出作者(分页) | --page --page-size |
author | 按 ID 获取作者 | --id(必需) |
dynasties | 列出朝代(附诗词数量) | — |
dynasty | 按 ID 获取朝代 | --id(必需) |
types | 列出诗词类型 | — |
type | 按 ID 获取诗词类型 | --id(必需) |
每条命令都接受 --lang zh-Hans|zh-Hant,用于切换简体中文和繁体中文(默认值为 zh-Hans)。无效的标志或参数会在发送请求前被拒绝,并返回错误。
示例
# Health check and overall stats
bun run scripts/main.ts health
bun run scripts/main.ts stats
# Li Bai's poems, page 2
bun run scripts/main.ts poems --author 李白 --page 2 --page-size 10
# Poems from the Tang dynasty in traditional Chinese
bun run scripts/main.ts poems --dynasty 唐 --lang zh-Hant
# Full-text search
bun run scripts/main.ts search --q 静夜思
bun run scripts/main.ts search --q 明月光 --type content
# Random 五言绝句 by Li Bai (multiple types are OR)
bun run scripts/main.ts random --author 李白 --type 五言绝句 --type 七言绝句
# 飞花令 — poem containing a single character
bun run scripts/main.ts random --char 春
# Metadata
bun run scripts/main.ts authors --page 1 --page-size 20
bun run scripts/main.ts author --id 1
bun run scripts/main.ts dynasties
bun run scripts/main.ts dynasty --id 6
bun run scripts/main.ts types
bun run scripts/main.ts type --id 10
备注
--char(飞花令)只能接受一个字符,且只能与--lang组合使用——其他筛选条件会导致服务器返回 400。- 查询参数由服务器端验证:未知参数或大于 100 的
page_size会导致服务器返回 400,因此不要自行添加 API 文档中未说明的筛选条件。
评论
支持 Markdown