← 返回列表
未验证
dsh-quake-alert · 灾害预警 QuakeAlert
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/19 · 已提供中文文档
为 DeepSeek Harness(DSH)提供实时日本地震、紧急地震速报、海啸及日本气象厅天气警报——与您关注区域和阈值进行匹配。
综合分
30.7
GitHub 分
30.7
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/MurasakiIzumi/dsh-quake-alert.git数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-quake-alert · 灾害预警 QuakeAlert English · 中文 · 日本語 DeepSeek Harness(DSH)灾害预警插件:你在使用 DSH 时,实时接收日本的地震 / 海啸 / 气象灾害预警,以及全球的地震(EMSC / USGS)与海啸(NOAA)预警;按你配置的关注地区与阈值匹配命中后,以提示音 + 页面 toast + 系统通知提醒。 ⚠️ 免责声明(请先阅读):预警数据由 P2PQuake、日本气象厅公开 XML 电文、EMSC、USGS 与 NOAA 提供或转播,均非官方直接推送;紧急地震速报(EEW)等内容与配信品质无保证。本插件提醒仅供参考,避险请以当地官方机构(日本气象厅 気象庁 / 美国 NOAA 等)发布为准。插件仅在 DSH 页面开启时工作。 功能特性 - 实时推送:WebSocket 长连接 P2PQuake,收到预警第一时间解析(EEW 从气象厅发布到 P2PQuake 转播通常为数百毫秒级) - 断线自动重连:指数退避(1s → 60s 封顶),P2PQuake 每约 10 分钟强制断线属常态,无需干预。两种静默失效都会被检测并恢复:建连 15 秒仍无 onopen;以及连上之后长时间毫无数据(半开:没有 onclose 也没有消息,20 分钟) - 灾害类型:来自 P2PQuake 的地震情报(551)、紧急地震速报 EEW(556)、海啸预报(552),以及来自日本气象厅的灾害预警 —— 泥石流(土砂災害警戒情報、大雨警報(土砂災害))、洪水(指定河川洪水予報)、大雨、高潮等 - 关注地区:按国家 / 地区分三级:①「日本」选都道府县(可选到市区町村)②「中国大陆」选省 → 地级市 ③「其他地区」填坐标 + 半径。未选日本都道府县时默认提醒全日本 - 中国大陆地震(0.5.0):中国地震台网的地震预警(秒级,Wolfx 转播)与地震速报(分钟级确认与补报)。大陆源没有分区烈度,所以按「震中 + 半径」判定:在设置里选你所在的城市即可,不需要知道经纬度。速报的震级门槛单独一档(默认 M4.5),避免 M2.5 的小震刷屏 - 中国大陆气象灾害(0.5.2):中央气象台汇总的暴雨与地质灾害预警信号(各级气象台发布,粒度到县)。这两类只有橙色及以上才播报,黄色 / 蓝色只记入历史;匹配按行政区层级(你选的省 / 地级市),不需要半径。预警到期会直接从列表里消失——数据源没有"解除"标志,所以"没收到取消"不等于"警报仍然有效" - 半径用语义档位:仅本地(约 30 km)/ 本市及周边(约 100 km,新建时的默认)/ 较大范围(约 300 km),也可以直接填公里数 - 全球地震与海啸(0.4.0):EMSC 的 WebSocket 实时推送 + USGS 的全球地震目录(Host 单点轮询)覆盖全球地震;NOAA 的海啸 CAP 电文覆盖太平洋等海域。同一场地震被两个源同时报出时靠「发震时刻 + 震中」归并,只提醒一次 - 全球关注点:以「坐标 + 半径」表达你关心的位置(最多 20 个,可用浏览器定位一键填入)。震中落在半径内、且震级达到全球阈值(默认 M4.5,可调)才提醒。日本的地震 / 海啸不受它影响,仍按都道府县判定;没配任何关注点时全球源与大陆源的消息不会进历史,也不会打扰你 - 提醒阈值:地震按实测震度、EEW 按预测震度、海啸按等级(注意报 / 警报 / 大海啸警报)分别设置 - 通知方式:提示音(Web Audio 合成,地震 / EEW / 海啸 / 气象 / 取消五种音色,各灾害音色不同)+ 音量可调;页面可见时 toast,后台时系统通知。地震与 EEW 的提醒都带震度(实测或预测),一眼就知道强度 - 取消 / 解除提醒:此前提醒过的 EEW 被取消、或海啸预报被解除时,会补一条下行音提醒,告诉你之前的警报已作废;未曾提醒过的事件则只记历史、不打扰 - 静默时段:每天固定时段内不打扰(按浏览器本地时间,开始晚于结束表示跨午夜)。红色等级(EEW / 海啸警报以上 / 震度6弱以上的地震 / L4 以上的气象警报)默认仍会提醒,可关闭穿透;静默期间命中的预警仍记入历史。 - 气象灾害只在警戒レベル4 以上播报:气象厅在每条气象电文上标注了警戒レベル。只有 L4 以上(相当于「避难指示」级)才播报;L1〜L3 仍会拉取、解析并记入历史,L3 命中只在侧边栏的悬停提示里加一行。详见警戒レベル对照表。 - 连接状态指示:侧边栏底部一个状态圆点 —— 绿=已连接 / 黄=连接中、重连中或链路降级 / 中灰=数据已过期 / 蓝=数据格式异常(等插件更新)/ 红=已停止或无法连接 / 灰空心=你关掉了该灾种; 悬停可看逐源明细。设置页的「源状态」还会列出每个轮询源收到多少增量、失败几次、有没有增量缺口、 最近一次拉取距今多久,以及上游是否停更(0.4.1) - 机器级持久化:配置存到 DSH 的 settings.yaml(Host settings 服务),跨浏览器、跨机器都在;浏览器 localStorage 保留为镜像,以及 settings 服务不可用时的回退。首次运行会把已有的本地配置一次性迁移到 Host - 市区町村细化:地震情报可细化到你关注的市 / 区 / 町 / 村,按都道府县提供可搜索列表(1,917 条)。观测点名会先归一到所属市町村,官方各种写法都能命中(大阪北区茶屋町→大阪市北区、福島伊達市→伊達市、渡島北斗市→北斗市)。只有实测震度的观测点带这一级粒度;EEW 与海啸仍按都道府县判定,归一不到的条目一律放行而不丢弃 - 数据源切换:正式源(实时)与沙箱源(回放 2023 年历史,约 30 秒/条,用于测试) - 智能去重:同一次地震的多次发布(震度速报 → 各地震度、EEW 多报)只提醒一次,仅在震度升级时再次提醒;多开 DSH 页面时也只有一个标签页响铃 - 历史记录:最近 30 条处理记录(含未达阈值未提醒的条目),点击条目展开详情 工作原理 P2PQuake WebSocket ──┐ (日本:地震 / EEW / 海啸,Client 直连) EMSC WebSocket ──────┤ (全球:地震,Client 直连) ├──▶ 解析器(→ 统一预警对象) 気象庁 Atom feed ─────┤ (日本:泥石流 / 洪水 / 大雨 / 高潮) USGS GeoJSON ────────┤ (全球:地震目录) Host 轮询,Client 读本地增量路由 NOAA CAP ────────────┘ (全球:海啸) │ ▼ 匹配引擎(行政区 × 阈值 / 坐标 + 半径) │ 命中 ▼ 通知:提示音 + toast(前台)/ 系统通知(后台) │ ▼ 最近预警记录(localStorage 持久化) - 实时逻辑全部在浏览器端(Client 半边):WebSocket 连接、解析、匹配、通知与历史列表。Host 半边负责注册 quake-alert settings namespace(机器级 settings.yaml)、以只读路由 /dsh-quake-alert/areas 提供市区町村表与河川予報区域表,以及为三个轮询源拉取 feed。 - 两条实时链路(Client 直连):P2PQuake(日本,秒级)与 EMSC(全球)。全球地震的推送频率远低于日本——M4+ 平均约 30 分钟一条——所以 EMSC 连接刻意用一个很长的「久无数据」阈值(3 小时)而不是短窗口,否则会把一条完全正常的连接反复掐断重连;真正的断开仍由 onclose 与建连看门狗捕获。 - 三个轮询源(Host 单点):気象庁 Atom feed(泥石流 / 洪水 / 大雨 / 高潮,约每分钟)、USGS GeoJSON(全球地震目录,每 2 分钟)、NOAA 事件列表 + CAP 电文(海啸,每 5 分钟)。Host 记住已经取过哪些 entry,把增量暴露在本地只读路由 /dsh-quake-alert/feed?source=jma|usgs|noaa&since=N;Client 每 15 秒读一次,把每条电文交给同一个 handleAlert。把唯一的外部请求者放在 Host,意味着多开标签页 / 窗口不会放大请求——気象庁明确要求不要重复下载已取过的文件,并对违规 IP 做封禁。Client 会把每个源的游标分别落盘,刷新后从上次位置继续,不会重放缓冲里的旧警报;首次运行(还没有游标)用 ?since=tail 只对齐当前位置、不回历史。 - 两种关注模式并存:日本源按「都道府县 +(可选)市区町村」判定;全球源只有震中坐标,按「关注点 + 半径」用球面距离(Haversine)判定。震级与震度不可换算,所以全球源有自己的阈值旋钮(默认 M4.5)。 - WebSocket 消息与 HTTP /history 返回内容一致,但 id 字段名不同(WS 为 _id),解析器两者兼容。 - 区域名归一:EEW / 海啸消息里的区域名(如 上川地方北部、東京湾内湾)先经显式区域表、再按 47 都道府县名做前缀匹配,最后用 EEW 的府県予報区名兜底;跨县区域(如 有明・八代海)会展开为多个县分别判定。気象庁电文的县则直接取自区域码前两位(前两位就是都道府県码),比名称可靠——名称有 25 例同名跨县;河川予報区域另经生成的映射表归到市町村。 - 三层去重:① 消息 id(防重连重放)② 事件键(同一地震的多次发布;强度升级时穿透,仍会再次提醒)③ 跨标签页(BroadcastChannel,只由一个页面播报)。 - 静默时段在命中之后判定:被抑制的预警仍会记入历史并标注原因;红色等级默认穿透。 安装 直接从 GitHub 安装 dsh plugin --profile web add github:MurasakiIzumi/dsh-quake-alert 重启 dsh web 使插件生效 升级:替换包内容后重启 dsh web。只涉及 Client 半边(client/)的改动刷新页面即可生效;lib/(Host 半边)的任何改动都需要重启。 使用 1. 打开 设置 → 灾害预警。 2. ① 日本:都道府县 / 市区町村:点选你所在 / 关注的都道府县(不选 = 提醒全日本)。 3. ② 中国大陆:省 / 地级市(0.5.0):选省 → 选市 → 选半径 →「添加这个城市」。也可以点「用我的位置」直接按浏览器定位添加(定位可能不精确,会明确提示)。表里的坐标是行政区中心点——面积特别大的州 / 市(如甘孜州、哈尔滨市)离城区可差一百多公里,住在边缘时请把半径调大。 4. 提醒阈值:设置地震 / EEW / 海啸的最低提醒档位,避免无关打扰;大陆速报另有独立门槛。 5. ③ 其他地区:坐标 + 半径(0.4.0):如果你关心东南亚、欧美等位置,在这里填「名称 + 纬度 + 经度 + 半径」(最多 20 个)。点「用当前位置」可由浏览器定位一键填入坐标。震中落在半径内、且震级达到「全球地震(最低震级)」才提醒。不添加任何关注点时,全球源与大陆源的消息不会打扰你(也不进历史)。这里填的坐标与第 3 步加进来的城市是同一份列表。 - 想立刻验证这条链路:点同一区域下方的「发送测试全球警报(轮换场景)」。它在本地构造 EMSC / USGS / NOAA 三种源格式的电文,走真实解析与匹配,不发任何网络请求,可反复点击。四个场景轮换,其中「远地地震」那条在约 550km 外(半径小于这个距离时不命中、大于命中),用来演示半径的作用;结果会如实告诉你实际有没有播报。 - 「全球源状态」显示 EMSC 的连接状态,以及気象庁 / USGS / NOAA 三个轮询源各自收到多少增量、最近一次拉取距今多久——用来确认链路确实在工作(全球地震本来就不频繁,等不到消息是常态)。 6. 灾害类型:三个开关 —— 地震 / 紧急地震速报、海啸、气象灾害(泥石流 / 洪水 / 大雨 / 高潮)。气象灾害没有阈值可调:固定只在警戒レベル4 以上播报。「发送测试气象警报(轮换场景)」用本地构造的电文验证整条链路(不发任何网络请求),每次点击轮换:泥石流 / 洪水 / 大雨 / 高潮,外加一条刻意不响铃的 L3 场景。结果会如实告诉你实际有没有播报、没播报的原因。 7. 通知与声音:开启提示音 / 系统通知,调节音量;可用「试听」按钮验证音色,「测试系统通知」授权并验证。 8. 数据源:日常保持「正式」;想验证链路或看效果时切「沙箱」(约 30 秒收到一条 2023 年历史回放)。 收到命中预警时:提示音 + 前台 toast 或后台系统通知,并记录到「最近预警记录」。 连不上某个源?(大陆网络) 本插件在中国大陆网络下可能遇到某个数据源连不上、数据不更新、或提醒不响。这类问题只在大陆 网络下出现,本机开发环境(出口在日本)无法事先验证,所以处理方式是把故障变成可见状态, 再配一份给 AI 读的排查文档: 把 TROUBLESHOOTING.zh.md 交给你的 AI 助手,让它按步骤处理。 那份文档不解释原理、不需要你"打开某个菜单看看"——每一节都是「触发条件 → 可直接跑的命令 / 可直接读到的状态 → 结果对应的处置」。AI 修不了网络,它的目标是判断出属于哪一类、说清影响 范围(哪几条链路还好、哪几条不行),并在有降级路径时选它;如果结论是"环境不可达",它会明确 告诉你这不是你能修的。 日常自检不用看文档:设置 → 灾害预警 → 源状态 会逐源列出连接状态、收到多少增量、失败几次、 有没有增量缺口、最近一次拉取距今多久;侧边栏底部的状态点悬停也能看到(只列异常源)。 已知限制 - 插件随 DSH 页面运行:页面关闭则停止;浏览器若冻结后台标签页,通知可能延迟。 - 取消 / 解除提醒只针对此前提醒过的事件;没提醒过的取消消息只进历史,不会打扰。 - 海啸预报(552)没有可归并的事件 id,同一海啸的多次发布(追加区域 / 等级升级)会逐条提醒。 - 多开 DSH 页面时每个页面各维持两条 WebSocket 连接(P2PQuake + EMSC)。提醒已通过 BroadcastChannel 去重,但连接数随标签页数成倍增加;P2PQuake 存在并发连接数限制,大量多开时请留意。 - 多个 DSH 页面共享同一套按源划分的游标(每个源一个,跨页面共享):某个页面已处理过的电文 / 地震不会在另一个页面重放(跨标签页去重本来也只让一个页面播报)。代价是后开或刷新过的页面不会把这些已被消费的条目补进自己的「最近预警」列表。 - 震源情报(551 的「震源情报 / 远地地震」)不含震度数据,无法按阈值判定,只会记录到「最近预警」并标注说明。 - 系统通知权限需首次点击「测试系统通知」授权;提示音需一次用户交互后可用(浏览器自动播放策略)。 - 覆盖范围:日本的地震 / EEW / 海啸来自 P2PQuake 的 WebSocket 推送,气象灾害来自气象厅 Atom feed(Host 约每分钟轮询);日本以外由 EMSC(实时推送)、USGS(Host 每 2 分钟轮询地震目录)与 NOAA(Host 每 5 分钟轮询海啸 CAP)覆盖;中国大陆的地震预警与速报由 Host 单点常连 Wolfx(转播中国地震台网 CENC),经 SSE 推给页面;大陆的气象预警另接中央气象台 nmc.cn 的预警信号列表(Host 每 120 秒轮询),只接暴雨与地质灾害两类。区域气象源(美国 NWS、欧洲 MeteoAlarm 等)为后续版本规划。 - 全球源的粒度与日本源不同:全球源只有震中坐标与震级,没有市区町村级信息;海啸以 NOAA 的海域(如 SCOTIA SEA)为单位,不是日本的津波予報区;日本以外的"泥石流 / 洪水"目前没有接入通道。 - 同一场地震可能被两个全球源各报一次:EMSC 与 USGS 的发震时刻若跨过分钟边界,归并会失败。取舍是宁可多响一次也不漏报。 - 大陆源没有取消 / 最终报标志(安全相关):中国地震台网的这两路数据既没有"取消"也没有"最终报"字段,所以此前播报过的预警被上游撤销或修订时,插件不会补一条"警报已作废"——日本 EEW / 海啸那条取消链路对大陆源不适用。这是数据源的缺口,不是实现能补上的。收到大陆预警后请以中国地震台网(CENC)官方发布为准。 - 大陆气象源同样没有"解除"标志,且橙色预警不穿透静默时段:nmc.cn 的预警是"当前生效集合",预警过期即从列表消失,插件看不到"解除"这个动作——所以此前播报过的暴雨 / 地质灾害预警到期后不会补一条"警报已作废"。另外橙色预警的严重度按官方等级如实映射(橙色≠红色),而静默时段默认只放行红色,因此夜间发布的橙色预警只在「最近预警记录」里留痕。 - 大陆地震预警的门槛约 M4.0:预警本身稀疏(实测数天一次),实际收到的提醒会明显少于日本。速报(每天都有数据)的震级门槛默认 M4.5,在设置页单独一档可调。 - 大陆源的推送可能被降级:页面走 SSE 长连接(延迟秒级);若被网络中间设备掐断(EventSource 不可用 / 连续拿不到首帧 / 连上但不推流),会自动降级为每 15 秒一次的轮询,并在设置页「源状态」里显示当前走哪条路。也可以在设置里强制选轮询。 - 大陆的预警与速报是两条独立链路:同一场地震若两边都报,靠「发震时刻(分钟)+ 震中(0.1°)」归并成一次提醒;跨过分钟边界或震中测定差过 0.1° 时归并会失败,同一场地震可能响两次。取舍与全球源一致:宁可多响一次也不漏报。 - EMSC 的连接用很长的"久无数据"阈值(3 小时):全球 M4+ 平均约 30 分钟一条,用短窗口判断连接死活不成立。真正的断开仍会被检测并重连。 - 气象灾害刻意不给阈值:边界固定为警戒レベル4,设置页只有开关、没有档位。 - 沙箱回放的历史多为低震度小地震,默认「震度4以上」阈值下可能长时间无命中属正常。 0.4.1 起需要知道的行为 - 关注地区的过滤对"认不出归属县的区域"更严谨了(0.4.2 微调):同一条消息里只要有区域能 归到县,认不出的那部分就不参与县级过滤(不会因为一个未收录的预报区名而提醒所有人); 只有整条消息的区域都归不到县时才放行(宁可多报,避免整条静默)。 - 气象灾害按「气象台 + 灾种」归并成一个事件:同一气象台对同一灾种在 3 小时内的持续发布 (更新、扩区、维持)只提醒一次,强度升级(L3→L4 等)仍会再次提醒。跨小时边界、或同一事件由 不同气象台发布时,仍可能重复提醒一次——取舍是宁可多响一次也不漏。 - 播报闸门看「命中地区自己的级别」:同一条电文里不同市町村的级别可以不同(实测 2026-09-14 兵庫県:姫路市 L4、相生市 L3、西脇市 L2)。只关注低级别地区时不会被同县的 L4 连坐,反过来也 不会因为只到 L2 而收到「避难指示级」的夸大提醒。 - 海啸的解除提醒需要电文给出预报区列表才能与发布匹配;不带列表的解除只记历史、不打扰 (这是为了避免"任意海域的解除都被当成你关心的事件"那种假解除)。 - 全球地震的严重度按震级判定(EMSC / USGS 没有震度);因此静默时段的红色穿透对 M7 以上 全球地震同样生效。 - "源在响应但数据是旧的"会被单独标出:JMA 的 feed 更新时刻或 USGS 的 feed 生成时刻超出阈值时, 状态显示「上游数据已过期」(中灰),与"没有新闻"区分开。 - 数据格式异常是蓝色的:源改版导致解析不了时显示蓝点而不是红点——那不是用户的网络问题, 等插件更新即可;设置页提供「重试」。 - P2PQuake 的时间按 JST 解析后转成本地时区显示:历史详情里的时间现在是你所在时区的时间 (此前直接显示 JST 原文,大陆用户会看到一个差 1 小时、且没有任何标注的时间)。 警戒レベル(日本) 气象厅在每条气象电文上都标注了警戒レベル。本插件只在 L4 以上播报: | 级别 | 在日本意味着 | 典型电文 | 本插件的处理 | | ----- | ---------------- | ---------------------------------------------------------- | ---------------------------------------- | | 1 | 提高警惕 | 早期注意情報 | 仅记历史 | | 2 | 确认 hazard map | 大雨注意報、洪水注意報(レベル2…) | 仅记历史 | | 3 | 老年人等开始避难 | 大雨警報(土砂災害)、洪水警報(レベル3…) | 只在侧边栏悬停提示 —— 不响铃、不弹窗 | | 4 | 避难指示 | 土砂災害警戒情報、氾濫危険情報、大雨危険警報、高潮危険警報 | 播报 —— 提示音 + toast / 系统通知 | | 5 | 紧急安全确保 | 大雨特別警報、氾濫発生情報 | 播报 | 为什么卡在 4 级:L1〜L2 要求的动作是"确认 hazard map",这不是桌面弹窗能承载的;L3 面向老年人等需要提前避难的人群,与 DSH 的使用场景不匹配。L4 才是真正威胁人身财产、气象厅标注为「避難指示」的等级。L1〜L3 仍然会被拉取、解析并记入「最近预警记录」,所以随时可以核对插件确实收到了。 开发 client/src/.js # 客户端源码:19 个标准 ESM 模块(显式 import/export,各文件头部写职责与依赖) client/client.js # DSH 单文件 bundle —— 由 rollup 打包生成,勿手改 lib/index.js # Host 半边:settings 命名空间(schemastery)+ /areas 与 /feed 只读路由 lib/poller.js # Host 半边:通用 feed 轮询器(entry 去重、环缓冲、游标;支持单级与两级源) lib/global-sources.js # Host 半边:USGS / NOAA 的 feed 解析与地址(日気象厅的解析器仍是 poller 默认值) lib/data/cities.js # 市区町村表(由公开数据生成;提供给浏览器端) lib/data/river-areas.js # 河川予報区域 → 市町村(由 build-areas.mjs 生成) scripts/build-client.mjs # 构建:rollup 把 client/src 打包成 client/client.js scripts/build-areas.mjs # 从気象庁公开 zip 重新生成河川区域表 scripts/lib/zip.mjs # 零依赖 zip 读取器(构建脚本共用) scripts/check-imports.mjs # 跨模块引用检查(漏 import / 赋值给未声明的名字都报错) cordis.patch.yml # 插件行 insert 声明 tests/sync-test.cjs # 回归测试:解析器 / 匹配引擎 / 区域归一 / Host 轮询器 / 增量拉取 / WebSocket 状态机(node 直接运行,无需浏览器) tests/area-tables.cjs # 気象庁 区域名 / 津波予報区 → 都道府县 期望值(测试数据) node scripts/build-client.mjs # 改完 client/src 后重新打包(必须先跑!见下方注意) node scripts/build-areas.mjs # 从気象庁公开 zip 重新生成河川区域表(需联网) node scripts/check-imports.mjs # 跨模块引用检查(漏 import / 未声明赋值) node scripts/build-client.mjs --check # 校验已提交的 bundle 是否陈旧 node tests/sync-test.cjs # 回归测试(1070 项断言) node scripts/check-contracts.mjs # 契约检查:拉真实源过一遍解析器,看上游是否改版(--offline 用 samples/ 快照,不联网) 注意:tests/sync-test.cjs 加载的是已构建的 client/client.js。改了 client/src/ 之后一定要先 node scripts/build-client.mjs,否则你看到的是上一版的成绩。 一条命令搞定:node scripts/build-client.mjs && node tests/sync-test.cjs。 Windows 上若 pnpm 报「无法加载文件 pnpm.ps1,因为在此系统上禁止运行脚本」(执行策略为 Restricted),改用 pnpm.cmd check / pnpm.cmd test(或 npx pnpm check)。 pnpm check 只校验 bundle 是否为最新,pnpm test 会先重建再跑回归。 要改客户端代码请改 client/src/.js,不要改 client/client.js——DSH 要求客户端 bundle 是单文件 (扁平模块图:一个 bundle 就是一个模块节点,不支持包内多文件 import),所以 ESM 模块在构建时由 rollup 打包。 这也是 DSH 官方插件的形态:官方包同样只发布构建产物,源码是多文件。 samples/ 与 tests/ 随仓库分发(纯文本测试件,无外部依赖、无网络访问),克隆后可直接运行上面的回归测试;两者不随 npm 包分发(package.json 的 files 未包含)。DESIGN.md 为内部设计稿(已 git-ignore)。 更新记录 当前版本 0.5.4(review 版:展示状态收敛到唯一的合成入口,蓝点不会再被一次常态断线或停更探针 抹掉;跨标签页「清空记录」真的清干净;JMA 汇总副本不再一律标成「特别警报」;CI 也跑回归套件 而不只是契约自检)。回归断言 1070 → 1103。各版本的变更明细见 CHANGELOG.md。 数据来源 - 日本地震 / EEW / 海啸:P2PQuake(转播气象厅数据),WebSocket - 气象灾害预警(泥石流 / 洪水 / 大雨 / 高潮):气象厅防災情報XML 的 Atom feed(extra.xml,每分钟更新),由 Host 半边拉取。河川予報区域 → 市町村表(lib/data/river-areas.js)由气象厅「指定河川洪水予報区域と市区町村に関するCSVファイル」加工而成 - 中国大陆气象预警(暴雨 / 地质灾害):中央气象台的预警信号列表(rest/findAlarm,Host 每 120 秒轮询),发布主体是各级气象台,详情页正文另取 - 全球地震:EMSC(WebSocket 实时推送)与 USGS(GeoJSON 摘要,Host 轮询) - 全球海啸:NOAA / 太平洋海啸警报中心(CAP 1.2 电文,Host 轮询) - 市区町村表(lib/data/cities.js):由総務省「都道府県コード及び市区町村コード」(公共データ利用規約 第1.0版)与 jp-local-gov(MIT)的政令指定都市行政区合并加工而成,本文件为加工产物 License MIT © XuZhichao
同作者(MurasakiIzumi)的其他插件
扫码进群