Amtrtm/RedAlert

GitHub: Amtrtm/RedAlert

用于监控以色列本土司令部警报 API 并在检测到导弹袭击预警时自动通知用户的 Windows 系统托盘应用程序

Stars: 3 | Forks: 0

RedAlert Icon

RedAlert

License: MIT Platform Runtime Language Download MSI

适用于 Windows 的 Pikud HaOref(以色列本土司令部)实时警报监控程序

## 描述 RedAlert 是一款 Windows 系统托盘应用程序,用于监控 Pikud HaOref(以色列本土司令部)API 以获取实时导弹和火箭警报。当在您配置的区域检测到警报时,该应用会自动打开带有 HLS 视频直播的 N12 新闻源,显示桌面通知,并播放警报声音。 该应用程序包含一个 10 分钟的安全计时器,会保持警报状态直到收到官方解除警报信号,并提供一个基于 Web 的配置面板来管理监控区域和警报偏好设置。 ## 功能 - 实时轮询 Pikud HaOref 警报 API(可配置间隔,默认 5 秒) - 使用希伯来语区域名称进行基于区域的过滤 - 检测到警报时自动启动 Chrome 打开 N12 新闻直播 - 带警报详情的 Windows 桌面通知 - 警报声音播放 - 带暂停、恢复和退出控制的系统托盘图标 - 在 `localhost:3847` 上提供基于 Web 的配置面板 - 警报历史记录(最近 100 条警报) - 冷却机制,防止重复触发警报 - 连续 API 错误时使用指数退避策略 ## 前置条件 - **Node.js 18+**(使用原生 `fetch`) - **Windows** 操作系统 - **以色列 IP 地址** — Pikud HaOref API 已进行地理封锁,仅响应来自以色列 IP 地址的请求 ## 安装 ``` git clone cd RedAlert npm install node scripts/generate-assets.js ``` `generate-assets.js` 脚本会在 `assets/` 目录中创建所需的托盘图标和警报声音文件。 ## 使用方法 ``` npm start ``` 应用程序将开始轮询警报,并在 Windows 系统托盘中放置一个图标。在浏览器中打开配置面板 [http://localhost:3847](http://localhost:3847) 以调整设置。 ## 配置 所有设置都可通过 `http://localhost:3847` 上的基于 Web 的配置面板进行管理,也可以直接编辑 `config.json` 文件。 | 设置 | 描述 | 默认值 | |---------|-------------|---------| | **区域** | 要监控的希伯来语区域名称列表(例如 `תל אביב`)。留空以接收所有警报。 | `[]`(所有区域) | | **轮询间隔** | 检查新警报的频率,以毫秒为单位。 | `5000`(5 秒) | | **打开浏览器** | 警报时是否自动打开 Chrome 进入新闻源。 | `true` | | **通知** | 警报时是否显示 Windows 桌面通知。 | `true` | | **声音** | 是否播放警报声音。 | `true` | | **浏览器 URL** | 触发警报时打开的 URL。 | `https://www.n12.co.il/` | | **警报冷却时间** | 同一区域重复警报之间的最短时间,以毫秒为单位。 | `60000`(60 秒) | | **配置端口** | 基于 Web 的配置面板的端口。 | `3847` | ## 工作原理 1. **警报轮询器** 以配置的间隔向 Pikud HaOref 警报端点发送 HTTP 请求。 2. 当收到非空响应时,会对其进行解析并与最后已知的警报 ID 进行比较以检测新警报。 3. **警报处理器** 会将警报的区域列表与用户配置的区域进行过滤。 4. 如果找到匹配项且冷却时间已过,处理器会触发配置的操作:桌面通知、警报声音和/或打开 Chrome 进入 N12 直播。 5. 警报会被记录在内存历史日志中,可通过配置面板查看。 6. 如果发生连续轮询错误,轮询器会使用指数退避策略(最多 30 秒)然后重试。 ## 重要说明 - 此应用程序使用**非官方的** Pikud HaOref(本土司令部)警报 API。API 可能会随时更改或不可用,恕不另行通知。 - 该 API 已进行**地理封锁**,需要以色列 IP 地址才能运行。 - 此项目**不隶属于**以色列政府、IDF 或 Pikud HaOref。 - 此工具仅供**个人使用**。在紧急情况下,请始终遵循本土司令部的官方指示和指南。不要仅依赖此应用程序做出生命安全决策。 ## 安全 此应用程序已接受全面的安全审查。详细信息包括: - NPM 依赖项漏洞审计 - 代码级安全发现 - 威胁模型分析 - 安全建议 请参阅 [**SECURITY.md**](SECURITY.md)。 **简而言之:** 生产运行时是安全的(0 个漏洞)。为纵深防御建议进行一些代码级改进。 ## 许可证 此项目根据 [MIT 许可证](LICENSE) 授权。
标签:API集成, CMS安全, DNS解析, GNU通用公共许可证, HLS视频流, JavaScript, MITM代理, MSI安装包, Node.js, Web配置面板, Windows应用, 可观测性, 库, 应急响应, 开源项目, 数据可视化, 本土安全, 桌面通知, 系统托盘, 紧急预警, 自定义脚本, 警报系统