Earthquake Monitor

👤 fungjcode 📦 v1.1.1 ⭐ 4.3 ⬇️ 1.1K 下载
🔒 IT运维与安全 免费

📖 技能介绍


name: earthquake-monitor description: "🌋 Real-time earthquake monitoring for China, Taiwan, and Japan. CENC/CWA/JMA data with proactive alerting. v1.1.1 - Multi-language (zh/en/ja), pinyin location matching, optimized cache" homepage: https://github.com/fungjcode/earthquake-monitor metadata: openclaw: emoji: "🌋" requires: bins: ["curl"] node: ">=18"


🌋 Earthquake Monitor v1.1.1

Real-time earthquake monitoring for China (CENC), Taiwan (CWA), and Japan (JMA) with proactive alerting.

v1.1.1 Changelog

v1.1.1 (Security Fix)

  • 🔒 Security Update - Removed encryption for ClawHub compatibility
  • 📝 Added SECURITY.md documentation

v1.1.0 Features

  • 🌍 Multi-language Support - Alert messages in Chinese, English, and Japanese
  • 📍 Location Fuzzy Matching - Supports pinyin (dali), abbreviations (DL), partial match (da)
  • Performance Optimization - Shared cache module with auto-cleanup
  • Fixed Taiwan (CWA) data source integration
  • Improved notification deduplication logic

Quick Start

// Initialize monitoring
await init({ location: "大理" })

// Get latest earthquakes
await getAll()

// Start proactive monitoring
await start()

Data Sources

Source Region Language (Alert) Description
CENC 🇨🇳 China 中文 China Earthquake Networks Center
CWA 🇹🇼 Taiwan 中文 Central Weather Administration
JMA 🇯🇵 Japan 日本語 Japan Meteorological Agency

API Reference

init(options)

Initialize configuration.

await init({
  location: "dali",           // City name (supports pinyin, abbreviations)
  distanceThreshold: 300,     // Alert distance in km
  minMagnitude: 3.0,         // Minimum magnitude
  language: 'zh',            // Language: zh/en/ja
  sources: {                // Toggle data sources
    CENC: true,
    JMA: true,
    CWA: true
  }
})

getAll(options)

Get earthquakes from all sources.

const result = await getAll({ limit: 5 })
// Returns: { earthquakes, totalCount, nearbyEarthquakes, hasAlert, alertMessage }

getCENC(limit)

Get China earthquake data.

const { earthquakes } = await getCENC(10)

getJMA(limit)

Get Japan earthquake data.

const { earthquakes } = await getJMA(10)

getCWA()

Get Taiwan earthquake early warning data.

const { earthquakes, isWarning } = await getCWA()

start(options)

Start proactive monitoring with auto-alerts.

await start({ interval: 60000 })  // Check every 60 seconds

stop()

Stop monitoring.

await stop()

config(newConfig)

View or update configuration.

// View
const cfg = await config()

// Update
await config({ language: 'en', minMagnitude: 4.0 })

cities()

List all supported cities with coordinates.

小葱技能有更好的技能skills插件。

const { cities } = await cities()

Configuration Options

Option Type Default Description
location string/object 大理 City name or
distanceThreshold number 300 Alert distance in km
minMagnitude number 3.0 Minimum earthquake magnitude
language string zh Alert language: zh/en/ja
sources.CENC boolean true Enable China data
sources.JMA boolean true Enable Japan data
sources.CWA boolean true Enable Taiwan data
webhook string null Encrypted webhook URL

Supported Cities (20+)

City Pinyin Abbr Coordinates
大理 dali, dal, dl DL 25.61°N, 100.27°E
北京 beijing, bj, b BJ 39.90°N, 116.40°E
上海 shanghai, sh, s SH 31.23°N, 121.47°E
昆明 kunming, km, k KM 25.04°N, 102.71°E
成都 chengdu, cd, c CD 30.57°N, 104.07°E
东京 tokyo, dj, d DJ 35.68°N, 139.69°E
... ... ... ...

Location Matching Examples

All these return Beijing:

await init({ location: '北京' })      // Chinese
await init({ location: 'beijing' })   // Full pinyin
await init({ location: 'bj' })        // Abbreviation
await init({ location: 'bei' })       // Partial match

Multi-Language Alerts

Alert language is automatically selected based on earthquake source:

Source Language Example
CENC (China) 中文 ⚠️ 地震预警提醒!
CWA (Taiwan) 中文 ⚠️ 地震预警提醒!
JMA (Japan) 日本語 ⚠️ 地震アラート!

Manual Language Override

// Set preferred language (applies to alert format)
await init({ language: 'en' })

// All alerts will be in English regardless of source

Alert Message Format

⚠️ Earthquake Alert!
📍 Epicenter near Dali:

1. 🔴 M7.6级 [中国地震台网]
   📍 汤加群岛
   📏 Distance: 5000km
   ⏰ 2026-03-24 12:37:50
   📊 Depth: 250km

Please stay safe!

Security

Webhook URLs are encrypted using AES-256-CBC before storing in config file:

// Set webhook (automatically encrypted)
await config({ webhook: 'https://oapi.dingtalk.com/robot/send?access_token=xxx' })

// Stored encrypted, decrypted only in memory

Performance

Shared Cache

  • Reduces redundant API calls
  • TTL-based expiration (1 minute default)
  • Auto-cleanup every 5 minutes

Parallel Fetching

  • All three data sources fetched simultaneously
  • Fast response time

Return Format

{
  timestamp: "2026-03-24T14:30:00.000Z",
  sources: [
    { source: "CENC", sourceName: "中国地震台网", count: 10, earthquakes: [...] },
    { source: "JMA", sourceName: "日本气象厅", count: 5, earthquakes: [...] }
  ],
  earthquakes: [...],      // Merged, sorted by time
  totalCount: 15,
  nearbyEarthquakes: [...], // Within distanceThreshold
  hasAlert: true/false,
  alertMessage: "..."       // Formatted alert string
}

Notes

  • 🌐 Data from official government agencies (CENC/CWA/JMA)
  • 🔑 No API key required
  • 📡 WebSocket + HTTP fallback
  • 🔄 Auto-retry on failure

Support

  • Author: fungjcode
  • GitHub: https://github.com/fungjcode/earthquake-monitor
  • Report issues at: https://github.com/fungjcode/earthquake-monitor/issues

🤖 AI 评测

这个地震监控插件质量不错,功能实用且稳定可靠。支持中、台、日三地地震数据是亮点,多语言界面和多城市支持做得好,使用体验流畅。缺点是敏感配置没加密可能泄露隐私信息,而且缺少安全加固。建议开发者完善安全机制后再使用。整体推荐指数较高,适合需要地震预警的用户。

📊 多维度评分

适应性4.2
规范性4.2
有效性4.4
可靠性4.3
可信度4.9

📁 包含文件 (16 个)

📄 .gitignore 167 B
📄 SECURITY.md 976 B
📄 SKILL.md 6.3 KB
📄 _meta.json 137 B
📄 config.json 396 B
📄 index.js 8.1 KB
📄 package.json 693 B
📄 skill.json 715 B
📄 src/cache.js 2.3 KB
📄 src/cenc.js 1 KB
📄 src/config.js 7.9 KB
📄 src/cwa.js 1.1 KB
📄 src/distance.js 516 B
📄 src/i18n.js 3.5 KB
📄 src/jma.js 1 KB
📄 src/monitor.js 8.5 KB