360 Secure SkillHub
360 安全技能中心

Pokeinfo

通过 PokéAPI 按名称或编号查询宝可梦的编号、属性、特性、种族值、精灵图与叫声等信息,支持 9 种语言本地化,并可将叫声转换为语音消息文件。需要 Python 3;语音转换需安装 soundfile 与 scipy。

chrisluo5311
chrisluo5311
热度 38.85
最近更新 2026-05-11 17:45:37
分类:搜索依赖:代码执行 / 读写文件 / 第三方 API应用场景:研究 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pokeinfo
Metadata
name
pokeinfo
description
Query Pokémon / Pokemon information from PokéAPI. Lookup Pokemon details by name or ID - stats, abilities, types, moves, sprites, and cries. Supports 9 languages including English, Chinese, Japanese, Korean, French, German, Spanish, Italian. Triggers on requests like "pokemon info", "get info about [pokemon]", "what is [pokemon]", "pokemon stats", or any query related to Pokémon / Pokemon data retrieval.

Pokeinfo

Query detailed Pokémon information from the PokéAPI (https://pokeapi.co).

Security Note: This skill makes HTTP requests to the public PokéAPI (pokeapi.co) and GitHub (raw.githubusercontent.com) for Pokémon data and cry audio files. No API key, token, or credentials are required. ClawHub's static analysis may flag this as "Requires sensitive credentials" — this is a false positive.

Installation

From ClawHub (Recommended)

clawhub install pokeinfo

From GitHub

git clone https://github.com/chrisluo5311/pokeinfo.git

Or manually copy the pokeinfo/ folder to your OpenClaw skills/ directory.

User Commands

  • /pokeinfo <pokemon_name_or_id> - Query Pokémon information by name or ID (auto-includes cry voice message)
  • /pokeinfo language <lang> - Set output language (e.g., en, zh-hant, zh-hans, ja, ko)
  • /pokeinfo language list - List all supported languages

Quick Start

Use the bundled script to fetch and format Pokémon data:

python3 scripts/pokeinfo.py <pokemon_name_or_id>

Examples:

python3 scripts/pokeinfo.py pikachu
python3 scripts/pokeinfo.py charizard
python3 scripts/pokeinfo.py 1          # Bulbasaur by ID

Language Support

Pokeinfo supports multiple languages for Pokémon names, types, abilities, and UI text.

Set Language

python3 scripts/pokeinfo.py language zh-hant

List Supported Languages

python3 scripts/pokeinfo.py language list

Supported languages:

Code Language
en English
zh-hant 繁體中文
zh-hans 简体中文
ja 日本語
ko 한국어
fr Français
de Deutsch
es Español
it Italiano

Language settings are saved to ~/.config/pokeinfo/config.json.

What the Script Returns

  • Basic info: ID, name, height, weight, base experience
  • Types: Elemental type(s) (e.g., Electric, Fire/Flying)
  • Abilities: Regular and hidden abilities
  • Stats: HP, Attack, Defense, Special Attack, Special Defense, Speed
  • Sprites: Official artwork URL
  • Cries: Latest cry audio URL
  • Level-up moves: Learnset for the most recent game version (limited to 20 moves)

Voice Message (Pokémon Cry)

The script can convert Pokémon cries to Telegram-compatible voice messages:

python3 scripts/pokeinfo.py pikachu --voice

Output:

{"voice_path": "/tmp/pokeinfo_cry_25_opus.ogg", "name": "Pikachu", "id": 25}

How it works:

  • PokeAPI provides cries in OGG Vorbis format (~32728 Hz)
  • Telegram voice messages require OGG Opus format (48000 Hz)
  • The script automatically downloads, resamples, and converts the audio

Voice Dependencies:

pip install soundfile scipy

AI Integration:

When user queries any Pokémon, run the script once with --voice:

python3 scripts/pokeinfo.py <pokemon_name_or_id> --voice

Output format:

  • First part: formatted text info (display directly)
  • Last line: [VOICE]{"voice_path": "/tmp/..."}[/VOICE]

Steps:

  1. Parse the output: everything before [VOICE] is text, extract JSON from [VOICE]...[/VOICE]
  2. Display the text portion AS-IS — do not add translations, explanations, or annotations in other languages
  3. Send the voice file via the messaging tool

IMPORTANT: The script already localizes all text (Pokémon names, types, abilities, stats, UI labels) based on the user's language setting. Do NOT add parenthetical translations like Type(s): Feuer, Flug(火系、飛行系). Just output the script result directly.

Example flow for /pokeinfo pikachu:

python3 scripts/pokeinfo.py pikachu --voice

→ Extract text + voice_path → display text exactly as output + send voice message

API Details

  • Base URL: https://pokeapi.co/api/v2/pokemon/{name_or_id}
  • Method: GET only (consumption-only API)
  • No authentication required
  • Rate limiting: None, but cache responses when possible

Key Response Fields

Field Description
id National Pokédex number
name Pokémon name (lowercase, hyphenated)
height Decimeters (divide by 10 for meters)
weight Hectograms (divide by 10 for kg)
base_experience Base XP yield when defeated
types Array of type slots with type.name
abilities Array with ability.name, is_hidden flag
stats Array of 6 stats with stat.name and base_stat
sprites.other.official-artwork.front_default Best quality sprite
cries.latest Cry audio file URL
moves Learnable moves with version group details

Notes

  • Pokémon names are case-insensitive in the API
  • Use hyphenated names for forms (e.g., mega-charizard-x, tapu-koko)
  • The API returns 404 if the Pokémon does not exist
  • For evolution chains, species details, or other data, see the full PokéAPI docs at https://pokeapi.co/docs/v2

Testing

Run unit tests for multi-language support:

python3 tests/test_pokeinfo.py

Test coverage (20 tests):

  • ✅ All 9 languages supported
  • ✅ Translation completeness check
  • ✅ Language setting persistence
  • ✅ English, Traditional Chinese, Simplified Chinese, Japanese, Korean, French, German, Spanish, Italian translations
  • ✅ Stat name localization
  • ✅ Config file management
  • ✅ Output formatting with localized names

Test Categories

Test Class Description
TestLanguageSupport Translation accuracy for all 9 languages
TestStatNames Stat name localization (HP, Attack, etc.)
TestLanguageList Language display names
TestConfigManagement Config file save/load/fallback
TestFormatOutput Output formatting with localization

Resources

scripts/

  • pokeinfo.py - Main script to fetch and display Pokémon information

tests/

  • test_pokeinfo.py - Unit tests for multi-language functionality