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 による簡体字/繁体字)を操作する CLI ラッパーです。
実行ルール
事前確認はせず、ユーザーのコマンドを直接実行してください。失敗した場合は修正してください。
要件
- 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(飛花令)には 1 文字だけ指定でき、--langとのみ組み合わせられます。他のフィルターを指定すると、サーバーから 400 が返されます。- クエリパラメーターはサーバー側で検証されます。不明なパラメーターや 100 を超える
page_sizeを指定すると 400 が返されるため、API に記載されていないフィルターを指定しないでください。