Compare commits

..

78 Commits
v4.0.1 ... main

Author SHA1 Message Date
hotyue
9f32bc990d chore: bump version to v4.0.6 准备全舰队换装终极三核纠偏雷达 2026-04-28 13:29:52 +00:00
hotyue
3a981f24e3 fix(core): 修复 Music/Premium 探针被拦截为无状态页的问题,注入 UA 伪装,并扩容前端配置变量特征库 2026-04-28 10:10:42 +00:00
hotyue
a626283b54 fix(core): 优化三核纠偏判决权重,以 YouTube 流媒体解锁为主导,解决基础路由库漂移导致的虚假黄灯警告 2026-04-28 10:08:11 +00:00
hotyue
12eaf89f48 fix(core): 重构 Google 雷达为三核交叉机制,引入 URL 精准跳转解析与强一致性拦截算法,准确暴击漂移与假阳性 2026-04-28 08:43:32 +00:00
hotyue
5e1331bad0 fix(core): 升级三核雷达,引入 URL 域名跳转探测并对齐业界权威的 contentRegion 判决机制 2026-04-28 08:32:55 +00:00
hotyue
e44418d381 fix(core): 补充缺失的 scheduler 抹杀逻辑根除幽灵循环,并为战报模块引入 60s 冷却装甲阻断并发风暴 2026-04-28 08:13:54 +00:00
hotyue
c86f1e509b fix(core): 修复 Music 版权探针正则提取逻辑,匹配其专属前端架构解决获取失败问题 2026-04-28 08:05:16 +00:00
github-actions[bot]
f7f2421843 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-28] 2026-04-28 05:52:26 +00:00
hotyue
014486e558 perf(core): 优化 Google 模块行为拉伸策略,单步休眠上限缩短至 120s,提升巡逻执行效率 2026-04-28 04:30:05 +00:00
hotyue
ce4a40d860 fix(core): 升级终极双核版权雷达 (YT Premium + YT Music),剥除 CDN 伪装,彻底剿灭送中检测假阳性 2026-04-28 04:23:32 +00:00
hotyue
36847aeaa2 fix(core): 升级双核纠偏雷达,引入 IPv6 法律边界探测并恢复 Premium 穿透,彻底根除 Google 首页缓存造成的送中假阳性 2026-04-28 01:03:46 +00:00
hotyue
43adf55a4b fix(master): 对齐全网防御架构,为司令部安装/卸载器引入 mktemp 动态沙盒与无落地内存流,彻底阻断 TOCTOU 提权劫持 2026-04-28 00:58:27 +00:00
hotyue
838dc01ebc fix(core): 封堵本地安全漏洞,为安装/卸载器引入 mktemp 动态沙盒与无落地内存流,彻底阻断 TOCTOU 提权与配置投毒 2026-04-28 00:49:15 +00:00
hotyue
641055ab74 fix(core): 为深海声呐探针拉取引入源文件基因防伪校验,彻底阻断 HTML 投毒与网络劫持导致的假死变砖 2026-04-28 00:20:49 +00:00
hotyue
5c19b6a6e1 fix(master): 修复态势感知入库的高危 SQL 注入漏洞,并全量斩断 HTTP 降级通道封死 MITM 劫持 2026-04-28 00:20:37 +00:00
hotyue
af2570f15d fix(core): 对齐架构,为 Agent 卸载脚本引入 SIGKILL 瞬间抹杀机制,防止 Systemd 卡死与遗言触发 2026-04-28 00:07:15 +00:00
hotyue
df77f397aa fix(master): 对齐 Agent 架构,重构中枢安装器引入原子化防砖交接与 SIGKILL 绝对抹杀机制 2026-04-28 00:05:26 +00:00
hotyue
d6dee813c5 fix(core): 重构 install.sh 实现原子化热更新防断网变砖,并对齐双栈裸奔 IP 缓存根除 OTA 误发日报 Bug 2026-04-27 23:49:19 +00:00
hotyue
d20f576908 fix(core): 升级 Google 纠偏自检雷达,引入 Maps+YouTube 双核交叉验证,彻底修复送中假阳性漏洞 (closes #39) 2026-04-27 23:12:06 +00:00
hotyue
17dd927719 feat(data): 新增美洲战区 - 德克萨斯州休斯顿 (Houston, TX) 节点支持 2026-04-27 22:59:39 +00:00
hotyue
bff49cd2b9 feat(data): 新增非洲战区 - 尼日利亚 (Nigeria, NG) 节点支持 (closes #38) 2026-04-27 10:38:00 +00:00
github-actions[bot]
49090f1b97 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-27] 2026-04-27 05:47:01 +00:00
hotyue
15324d0840 fix(core): 强制 updater.sh 后台静默更新日志使用绝对 UTC 时间,补齐全舰队时空对齐最后一块拼图 2026-04-27 03:05:05 +00:00
hotyue
8b632fe4f9 chore: bump MASTER_VERSION to v4.0.5 触发司令部防连点与 Toast 弹窗交互换代 2026-04-27 02:50:48 +00:00
hotyue
11ff23bf94 fix(master): 修复深海声呐战报入库交互 Bug,新增 Toast 气泡弹窗反馈与防连点 UI 重绘机制 2026-04-27 02:45:13 +00:00
hotyue
332765a72e fix(core): 强制所有业务模块日志与独立战报使用绝对 UTC 时间,彻底根除跨时区排障时的时间线错乱 2026-04-27 02:28:41 +00:00
hotyue
38869e8681 chore: bump AGENT_VERSION to v4.0.5 触发全舰队高频巡逻架构换代 2026-04-27 02:14:48 +00:00
hotyue
85cd1dc594 docs: 深度重构 README 核心极客特性与基建说明,全量展现 UTC 全球时钟、Fail-Fast 预检容灾及云端双轨军工厂等终极架构 2026-04-27 02:13:44 +00:00
hotyue
55f7ee0c8c feat(core): 升级舰队巡逻密度,将全局养护频率由 30 分钟缩短至 20 分钟 (每日 72 次) 并对齐所有日志与战报标定 2026-04-27 02:05:24 +00:00
hotyue
d24be4da0b feat(core): 重构全球时钟同步架构,强制挂载绝对 UTC 时区,实现分布节点天然并发削峰与战报时间对齐 2026-04-27 01:54:59 +00:00
github-actions[bot]
ae36155545 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-26] 2026-04-26 19:05:44 +00:00
hotyue
dc5560f8fd fix(core): 重构 Systemd 定时器调度逻辑,剥离 OnActiveSec 触发器并强制使用日历半点锚定,彻底根除 OTA 重载引发的并发风暴与误发日报 2026-04-26 09:23:44 +00:00
hotyue
18985cb57d fix(core): 恢复 -f 完整 IP 显示参数并清理冗余拦截逻辑,终极固化极速预检(Fail-Fast)容灾架构 2026-04-26 08:57:39 +00:00
hotyue
830d62ead8 fix(core): 引入 4 秒极速预检(Fail-Fast)机制彻底根除复杂路由下的探针死等假死,并重构三级容灾打靶策略 2026-04-26 08:31:23 +00:00
hotyue
5c8d9d6096 fix(core): 完善声呐拉取防伪校验,并为纯IPv6/WARP等极端路由环境引入三级阶梯脱壳与裸跑容灾机制 2026-04-26 06:41:26 +00:00
hotyue
22d26079e4 fix(core): 完善声呐探针拉取的防伪校验,并为极端路由环境引入阶梯式剥离与终极裸跑容灾机制 2026-04-26 06:26:10 +00:00
hotyue
c564ea0ab8 fix(core): 剔除探测探针负优化参数,修复含掩码IP导致的情报直达链接失效问题 2026-04-26 05:59:46 +00:00
hotyue
ec7bf0f2b9 fix(core): 重构声呐探针拉取逻辑引入双栈智能容灾,并增加应对 WARP 复杂路由死锁的脱壳抢救机制 2026-04-26 05:47:34 +00:00
hotyue
be241ab6bd bump: version to 4.0.4 2026-04-26 03:08:26 +00:00
hotyue
4b2985b4ef fix(core): 切除 agent_daemon 冗余的开机注册发信逻辑,实现部署过程的绝对静音与不打扰 2026-04-26 02:26:38 +00:00
hotyue
d4afb57f9f feat(core): 引入智能环境嗅探,针对受限 Alpine 容器启用自建高可用死循环调度器,彻底根除 Cron 假死顽疾 2026-04-26 02:19:46 +00:00
hotyue
230a59bbb3 feat(master): 节点销毁时同步清理ip_trend_log历史污染数据,并加装严格的防越权删除(IDOR)拦截锁 2026-04-26 01:44:01 +00:00
hotyue
f4a5cf8306 fix(core): 彻底抹除 Alpine 卸载时的 crontab 报错,并加入 OpenRC 调度器双向同步与强力唤醒机制 2026-04-26 01:38:18 +00:00
hotyue
b606fe02ff feat(core): 为深海声呐战报底部追加控制台快捷唤出按钮,实现全链路闭环操作 2026-04-26 01:28:55 +00:00
hotyue
3375356143 fix(core): 彻底修复 Alpine/OpenRC 环境下 crond 调度器路径割裂与假死的顽疾 2026-04-26 01:23:26 +00:00
github-actions[bot]
d9255ecbca chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-25] 2026-04-25 19:04:17 +00:00
hotyue
6ad6f6b4b3 fix(core): 大道至简 2026-04-25 16:59:23 +00:00
hotyue
a8caea3b6d fix(core): 升级深海声呐探测机制为源码物理篡改版,彻底封死第三方脚本在多IP/NAT环境下的网卡逃逸漏洞 2026-04-25 16:42:53 +00:00
hotyue
1a49e18200 fix(core): 升级幽灵网卡劫持为 v3 源码包裹版,彻底解决底层脚本 PATH 逃逸问题 2026-04-25 16:35:59 +00:00
hotyue
c223d7a476 fix(core): 修复深海声呐战报中高危警告换行符转义失效的问题 2026-04-25 16:24:37 +00:00
hotyue
eaa51358a8 fix(core): 彻底修复 Alpine/Busybox 环境下的开机自启顽疾、去色乱码及幽灵网卡劫持失效问题 2026-04-25 16:15:51 +00:00
hotyue
00827b3b15 docs: 更新 README.md,补充 Master 与 Agent 的官方图文部署教程链接 2026-04-25 09:04:57 +00:00
hotyue
ccddaf4386 chore(release): bump version to v4.0.3 2026-04-25 06:26:23 +00:00
hotyue
0f0ba46989 feat(core): 优化部署与升级链路,新节点入列及 OTA 捷报底部追加 [一键唤醒控制台] 按钮 2026-04-25 06:18:22 +00:00
hotyue
f83db38a6b feat(agent): 优化实时日志推送链路,底部追加 [一键唤醒控制台] 交互式内联按钮 2026-04-25 06:09:37 +00:00
hotyue
ba5582ab4c fix(master): 修复态势感知面板升级 JSON 交互后的换行符乱码 (%0A 转换为 \n) 2026-04-25 06:02:25 +00:00
hotyue
fb4e1d9b31 feat(master): 优化态势感知面板,底部追加 [一键唤醒控制台] 交互式内联按钮 2026-04-25 05:57:10 +00:00
hotyue
2dea6e382b feat(agent): 优化每日简报推送链路,底部追加 [一键唤醒控制台] 交互式内联按钮 2026-04-25 05:48:53 +00:00
hotyue
fa8eada97b docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:34:32 +00:00
hotyue
c102f66234 docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:33:22 +00:00
hotyue
68a50fdb4a docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:32:20 +00:00
hotyue
aac83acb8f docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:30:24 +00:00
hotyue
4be4d5e9ef docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:29:30 +00:00
hotyue
1f925b307f docs: 更新 README.md,增加对底层 IP 质量检测组件 xykt/IPQuality 的开源鸣谢 2026-04-25 01:27:08 +00:00
hotyue
49afe032d6 fix(agent): 重构 Google 区域探测逻辑,穿透 YouTube GeoIP 底层彻底解决跨区漂移与假阳性误判 (Resolves #14, Resolves #35) 2026-04-25 00:48:00 +00:00
hotyue
f0f054c8cd feat(data): 扩容美国得克萨斯州 (Texas/Dallas) 部署坐标与地图基建 (Resolves #33) 2026-04-25 00:36:07 +00:00
hotyue
699e9ca31a feat(master): 重构全球旗帜渲染引擎,支持 US-* 等州级行政区划自适应 (Resolves #33) 2026-04-25 00:25:06 +00:00
github-actions[bot]
76cace4ff6 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-24] 2026-04-24 19:03:51 +00:00
hotyue
9f3218ab7f chore: release v4.0.2 版本号跃升 2026-04-24 15:23:39 +00:00
hotyue
8a61f518f5 fix(agent): 移除 awk 暴力裁剪引发的 UTF-8 中文多字节劈裂乱码 Bug 2026-04-24 15:13:14 +00:00
hotyue
e9d5023263 fix: 紧急重构态势感知入库链路,引入交互式 [存档] 按钮,彻底解决 TG API 消息监听死锁 2026-04-24 15:06:02 +00:00
hotyue
05b1e21bba fix(master): 紧急修复 tr 命令语法死锁,并彻底解决态势感知面板的 URL-encoded 换行排版问题 2026-04-24 14:53:38 +00:00
hotyue
4a496fdab3 fix(master): 紧急修复 tr 命令中单引号转义引发的 Bash 语法崩溃死锁 2026-04-24 14:46:23 +00:00
hotyue
8ae3a6534d feat: 🚀 跃升至 v4.0.2,全面重构 IP 质量态势感知矩阵,新增 Google 与 ChatGPT 历史轨迹追踪 2026-04-24 14:36:36 +00:00
hotyue
3269376c94 fix(agent): 彻底重构探针参数装配机制,完美兼容多IP站群并补回尾部直达链接所需IP变量 2026-04-24 14:01:20 +00:00
hotyue
7a92de4d62 fix(agent): 重构探针参数装配机制,完美兼容多IP站群路由绑定与 NAT 容灾,并修复底部 Scamalytics 链接的变量丢失问题 2026-04-24 13:47:10 +00:00
hotyue
5fbc1e3fb3 fix(agent): 修复 NAT 架构下强制绑定出口导致探针崩溃的死锁,注入 -f 标志输出完整明文 IP,并规范化面板术语 2026-04-24 13:36:11 +00:00
hotyue
d73c3154f9 feat(agent): 丰富深海声呐战报,底部追加探针引擎的运行时版本号与情报生成时间戳 2026-04-24 12:29:54 +00:00
65 changed files with 2291 additions and 999 deletions

View File

@@ -2,8 +2,8 @@ name: Daily Data Factory
on:
schedule:
# 每天 UTC 18:00 (北京时间凌晨 02:00) 执行,赶在节点凌晨3点更新前造好子弹
- cron: '0 18 * * *'
# 每天 UTC 03:00 执行,为各节点全天随机拉取准备好弹药
- cron: '0 3 * * *'
workflow_dispatch:
env:

View File

@@ -2,8 +2,8 @@ name: Automated Massive UA Factory
on:
schedule:
# 每个月 1 号凌晨 00:00 执行
- cron: '0 0 1 * *'
# 每个月 1 号凌晨 04:00 执行
- cron: '0 4 1 * *'
workflow_dispatch: # 允许手动点击运行
jobs:

View File

@@ -12,18 +12,18 @@
## ✨ 核心极客特性 (Core Architecture)
- 📊 **深海声呐全维探针 (Deep Sea Sonar v4.0)**:内嵌强效正则清洗的 JSON 提取引擎,异步生成情报级 IP 质量战报。聚合 Scamalytics、AbuseIPDB 等五大权威防欺诈库,精准嗅探代理/VPN特征、25端口封堵情况及原生流媒体Netflix/Disney+/TikTok等解锁状态,并自带 Google “送中”高危预警与基于 SQLite 的历史污染趋势追踪图谱。
-**无损高并发引擎 (WAL Concurrency)**:司令部 SQLite 数据库全面激活 `WAL` (Write-Ahead Logging) 模式与毫秒级排队削峰算法。即使您同时对 500 台边缘节点发起全军总攻,也能完美规避 `database is locked` 与 Telegram `429` 频率拦截,实现 100% 战报送达
- 🪶 **抽脂级极简部署 (Zero-Bloat Native)**:全栈剔除 `pip``flask` 等臃肿第三方依赖,完全基于 Python3 原生标准库运行。安装底层强制注入 `--no-install-recommends` 防捆绑参数。无论是 128MB 内存的极简 NAT 小鸡,还是 Alpine/Arch Linux 特种系统,均可如丝般顺滑运行。
- 🎛️ **扁平化指挥矩阵 (Flat Command Matrix)**[v3.6.1 重构] 引入扁平化 L0-L3 四级战区降维视图与双轨身份制。深度定制 Inline Keyboard 逃生舱交互,支持在统一哨兵终端进行原位丝滑重绘 (In-place UI Edit),实现毫秒级模块热启停与日志抓取,彻底告别刷屏烦恼
- 🔄 **全栈零信任 OTA 引擎 (Zero-Trust OTA Upgrade)**:首创双端物理熔断机制。长官可通过私有中枢,一键向全舰队下发静默热重载指令;更支持**「司令部金蝉脱壳」**中枢大脑可在此面板自我抛出幽灵进程进行免交互直装覆盖,实现真正的全栈去 SSH 化运维。
- 🛡️ **SSOT 溯源与热更新装甲 (Smooth Upgrade Engine)**:全系脚本彻底消灭硬编码,部署时动态抓取云端版本信标。自带状态机嗅探逻辑与防撞甲探测,即使是手动在终端运行安装,也仅需回车瞬间完成配置继承、数据同步与无损换代。
- 🗺️ **全球拓扑矩阵与活体词库 (Global Nexus)**守护版图横跨亚欧美三大洲。接入 GitHub Actions 云端流水线,每日静默同步全球各大区当日 Google 真实热搜榜单与高权重本土站点,让伪装行为永远贴合当地网络脉搏。
- 👻 **资产持久化与错峰调度 (Hash-Seeded Persona)**:摒弃随机抽取指纹,基于节点物理 IP 哈希永久锁定 3 个绝对专属设备,完美构建高权重真实家庭内网画像。叠加按需智能分频与随机防并发休眠,化解“惊群效应”
- 🖧 **底层路由死锁与高精度探针 (Hard-Bind Routing)**:底层探测引擎强力接管 curl 核心参数 (`--interface`),将发出的每一滴伪装流量死死绑定在物理网卡或隧道 IP 上。配合多级 ISP 容灾链路,彻底杜绝双栈环境下的流量溢出与 API 误判
- 📊 **深海声呐全维探针 (Deep Sea Sonar v4.0.4)**:内嵌强效正则去污的 JSON 提取引擎,无损展现免掩码的真实 IP 报。聚合 Scamalytics、AbuseIPDB 等五大权威防欺诈库,精准嗅探代理/VPN特征、25端口及流媒体原生解锁状态,并自带 Google “送中”高危预警与污染趋势图谱。
-**无损高并发引擎 (WAL Concurrency)**:司令部 SQLite 数据库全面激活 `WAL` (Write-Ahead Logging) 模式与毫秒级排队算法。即使对 500 台边缘节点发起全军总攻,也能完美规避 `database is locked` 与 Telegram `429` 拦截
- 🪶 **抽脂级极简部署 (Zero-Bloat Native)**:全栈剔除第三方依赖,基于 Python3 原生标准库运行。安装强制注入 `--no-install-recommends` 防捆绑参数。无论是 128MB 内存的极简 NAT还是 Alpine 游击队容器,均可如丝般顺滑运行。
- 🎛️ **扁平化指挥矩阵 (Flat Command Matrix)**引入扁平化四级战区降维视图与双轨身份制。深度定制 Inline Keyboard 逃生舱交互,支持原位丝滑重绘 (In-place UI Edit),实现毫秒级模块热启停与跨地域深海声呐投放
- 🔄 **全栈零信任 OTA 引擎 (Zero-Trust OTA Upgrade)**:首创双端物理熔断机制。长官可通过私有中枢,一键向全舰队下发静默热重载指令;更支持**「司令部金蝉脱壳」**,实现真正的全栈去 SSH 化运维。
- 🛡️ **SSOT 溯源与热更新装甲 (Smooth Upgrade Engine)**:全系脚本彻底消灭硬编码,动态抓取云端版本信标。自带状态机嗅探逻辑,即便是手动在老节点执行安装,也仅需回车瞬间完成配置继承与无损换代。
- 🗺️ **全球拓扑矩阵与活体词库 (Global Nexus)**:接入 GitHub Actions 云端兵工厂,每日静默同步全球各大区真实热搜榜单与高权重本土站点,让伪装行为永远贴合当地网络脉搏。
- 👻 **绝对时空对齐与高频错峰 (UTC-Seeded Scheduling)**:摒弃传统随机轮询,全栈强制接管底层时钟为**绝对 UTC 时间**。全舰队以 **20 分钟 (每日 72 次)** 的极高密度进行养护巡逻,叠加基于部署锚点的天然削峰与随机防并发休眠,完美化解十万级集群的“惊群效应”与 API 熔断
- 🖧 **极速预检与三级容灾架构 (Fail-Fast & Fallback)**:底层引擎强力接管发包参数 (`--interface`) 的同时,创新引入 **4 秒极速预检 (Fail-Fast)** 雷达与**三级阶梯脱壳**机制。无论是纯 IPv6 孤岛、WARP 劫持死锁还是复杂 NAT 嵌套,系统均能瞬间避开网络黑洞,彻底杜绝探针假死与流量溢出
**—— 💎 骨干基建特征 ——**
- 🏭 **自动化指纹兵工厂**:依托 GitHub Actions CI/CD 流水线,每月 1 日无人值守锻造 4000+ 带绝对物理分区的真实终端设备数据
- 🏭 **自动云端军工厂 (CI/CD Data Factory)**:依托 GitHub Actions 构建双轨无人值守流水线。**每月 1 日**批量锻造 4000+ 带绝对物理分区的原生终端指纹库;**每日凌晨 (UTC)** 实时抓取全球各战区 Google 真实热搜榜单与本土骨干新闻 RSS。为前线舰队源源不断地输送最鲜活的伪装弹药
- 🔒 **叹息之墙 (Zero-Trust HMAC)**:底层通讯引入 时间戳 + HMAC-SHA256 军用级动态签名。指令有效期仅 60 秒(阅后即焚),未授权请求直接触发系统级 403 物理熔断,彻底免疫中间人抓包与重放攻击。
- ☁️ **云端中枢 (Public Master)**:官方公共机器人 [@OmniBeacon_bot](https://t.me/OmniBeacon_bot) ,新手免自建,一键接入极速入伍!同时支持硬核极客私有化 SQLite 分布式部署。
- 👁️‍🗨️ **玻璃房透明遥测 (Glasshouse)**:基于 Cloudflare Workers 的全透明计数中枢,绝对零隐私收集,仅作原子累加,底层网关源码全开源。
@@ -57,11 +57,12 @@
> ☢️ **核按钮系统已就绪**:采用私有部署,您将解锁 **OTA 远程静默升级** 权限!所有私有前线节点均可通过您的 TG 面板实现一键全网代码热重载换代!
- **部署 Master (中枢大脑)**:找一台 VPS 作为司令部(仅需部署一台),执行:
- [官方部署教程](https://blog.iot-architect.com/engineering-practice/ip-sentinel-master-deployment-guide/)
```bash
curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/master/install_master.sh -o /tmp/ins_master.sh && sudo bash /tmp/ins_master.sh
```
- 部署 Agent (边缘哨兵):在需要养护的机器上执行 Agent 脚本,安装时选择私有独立中枢,并分别输入您自建机器人的 [Token](https://blog.iot-architect.com/engineering-practice/create-private-telegram-bot-via-botfather) 以及您的个人 [Chat ID](https://blog.iot-architect.com/engineering-practice/get-telegram-personal-id-via-userinfobot)
- [官方部署教程](https://blog.iot-architect.com/engineering-practice/ip-sentinel-installation-and-upgrade-guide/)
```Bash
curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh -o /tmp/ins_agent.sh && sudo bash /tmp/ins_agent.sh
```
@@ -73,7 +74,7 @@ curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/instal
- 关注机器人:在 TG 中关注官方安全网关 [@OmniBeacon_bot](https://t.me/OmniBeacon_bot) 并发送 /start。
- 部署 Agent在目标 VPS 上执行以下指令,安装过程中选择官方公共网关,并输入您的 Chat ID
- [官方部署教程](https://blog.iot-architect.com/engineering-practice/ip-sentinel-installation-and-upgrade-guide/)
```Bash
curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh -o /tmp/ins_agent.sh && sudo bash /tmp/ins_agent.sh
```
@@ -128,6 +129,9 @@ bash <(curl -sL https://raw.githubusercontent.com/hotyue/IP-Sentinel/legacy/core
如果你想为项目增加新的节点区域(例如德国、英国、大洋洲等),或者提供更丰富的本土化搜索词库,非常欢迎提交 Pull Request
> - 感谢 @xykt 本项目IP质量检测采用[xykt/IPQuality](https://github.com/xykt/IPQuality) 脚本!
**💡 全球节点贡献规范:**
1.`data/regions/国家代码/省州代码/` 目录下新增对应城市的配置 `.json`
2.`data/keywords/` 目录下新增或完善配套国家的词库 `kw_XX.txt`

View File

@@ -40,24 +40,15 @@ else
fi
if [ -n "$AGENT_IP" ]; then
# --- [重点升级 2: 智能防打扰注册机制] ---
LAST_IP=""
[ -f "$IP_CACHE" ] && LAST_IP=$(cat "$IP_CACHE" | tr -d '[:space:]')
# 只有当这是第一次运行,或者公网 IP 发生变动时,才发送 Telegram 申请
if [ "$AGENT_IP" != "$LAST_IP" ]; then
# [v3.6.0 核心修复] 携带 7 字段身份发起注册申请 (追加 ENABLE_OTA防止 IP 变动重新注册时丢失 OTA 权限)
REG_MSG="👋 **[边缘节点接入申请]**%0A大区: \`${REGION_CODE}\`%0A节点: \`${NODE_ALIAS}\`%0A地址: \`${AGENT_IP}:${AGENT_PORT}\`%0A%0A⚠ **安全验证**: 为防止非法节点接入,请长按复制下方代码,并**发送给我**以完成最终授权录入:%0A%0A\`#REGISTER#|${REGION_CODE}|${NODE_NAME}|${AGENT_IP}|${AGENT_PORT}|${NODE_ALIAS}|${ENABLE_OTA:-false}\`"
curl -s -m 5 -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "text=${REG_MSG}" \
-d "parse_mode=Markdown" > /dev/null
echo "✅ [Agent] 已向司令部发送接入申请,请在 Telegram 手机端完成授权!"
# [静音手术] 仅在本地静默更新 IP 缓存,彻底切除重复的 TG 发信逻辑,做沉默的守夜人
echo "$AGENT_IP" > "$IP_CACHE"
echo " [Agent] 发现本地 IP 变动,已静默更新缓存: $AGENT_IP"
else
echo " [Agent] IP 未变动 ($AGENT_IP)跳过重复注册申请"
echo " [Agent] IP 未变动 ($AGENT_IP)继续后台静默监听"
fi
fi
@@ -244,17 +235,27 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
text_msg = f"📄 <b>[{node_alias}] 实时日志 (v{local_ver}):</b>\n<pre><code>{log_data}</code></pre>"
data = urllib.parse.urlencode({
# [v4.0.3 体验升级] 引入 json 模块并改用 JSON Payload挂载返回控制台按钮
import json
node_name_cb = config.get('NODE_NAME', 'Unknown')
payload = {
'chat_id': config.get('CHAT_ID', ''),
'text': text_msg,
'parse_mode': 'HTML'
}).encode('utf-8')
'parse_mode': 'HTML',
'reply_markup': {
'inline_keyboard': [[{'text': '⚙️ 调出该节点控制台', 'callback_data': f'manage:{node_name_cb}'}]]
}
}
data = json.dumps(payload).encode('utf-8')
req = urllib.request.Request(
config.get('TG_API_URL', ''),
data=data,
# [动态化] 彻底消灭硬编码,使用运行态版本号
headers={'User-Agent': f'IP-Sentinel-Agent/{local_ver}'}
# [动态化] 彻底消灭硬编码,使用运行态版本号,并声明 JSON 头
headers={
'User-Agent': f'IP-Sentinel-Agent/{local_ver}',
'Content-Type': 'application/json'
}
)
urllib.request.urlopen(req, timeout=10)

View File

@@ -14,10 +14,14 @@ if [ "$EUID" -ne 0 ]; then
exit 1
fi
# 🟢 [防劫持沙盒] 创建具备随机哈希且仅 root 可见的专属安全工作区
SECURE_TMP=$(mktemp -d /tmp/ips_install.XXXXXX)
# 确保脚本退出、异常中断或被强杀时,自动销毁沙盒,不留痕迹
trap 'rm -rf "$SECURE_TMP"' EXIT HUP INT QUIT TERM
# 你的 GitHub 仓库 Raw 数据直链前缀
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# 临时改为开发地址用于测试
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/v3.6.2-rc"
INSTALL_DIR="/opt/ip_sentinel"
CONFIG_FILE="${INSTALL_DIR}/config.conf"
@@ -110,9 +114,8 @@ echo -e "\033[32m✅ 基础环境检测通过。\033[0m"
# 2. 交互式引导与动态地图解析 (v3.0 全球网络)
echo -e "\n[2/7] 正在连线云端,拉取全球节点地图..."
curl -sL "${REPO_RAW_URL}/data/map.json" -o "/tmp/map.json"
if [ ! -s "/tmp/map.json" ]; then
curl -sL "${REPO_RAW_URL}/data/map.json" -o "${SECURE_TMP}/map.json"
if [ ! -s "${SECURE_TMP}/map.json" ]; then
echo -e "\033[31m❌ 拉取全球地图失败!请检查网络或 GitHub 仓库地址。\033[0m"
exit 1
fi
@@ -137,10 +140,10 @@ else
if [ "$ACTION_CHOICE" == "2" ]; then
echo -e "\n⏳ 正在拉取卸载程序..."
curl -sL "${REPO_RAW_URL}/core/uninstall.sh" -o "/tmp/ip_uninstall.sh"
chmod +x "/tmp/ip_uninstall.sh"
bash "/tmp/ip_uninstall.sh"
rm -f "/tmp/ip_uninstall.sh"
curl -sL "${REPO_RAW_URL}/core/uninstall.sh" -o "${SECURE_TMP}/ip_uninstall.sh"
chmod +x "${SECURE_TMP}/ip_uninstall.sh"
bash "${SECURE_TMP}/ip_uninstall.sh"
rm -f "${SECURE_TMP}/ip_uninstall.sh"
exit 0
fi
@@ -169,21 +172,26 @@ else
fi
# ================== [v3.1.1/v3.2.2 优化: 安装前环境纯净度清理] ==================
echo -e "\n⏳ 正在清理旧版守护进程与冗余任务..."
# [新增] 优雅停止 Systemd 服务,防止代码替换时引发无限复活风暴
if command -v systemctl >/dev/null 2>&1; then
systemctl stop ip-sentinel-runner.timer ip-sentinel-updater.timer ip-sentinel-report.timer ip-sentinel-agent-daemon.service >/dev/null 2>&1 || true
fi
echo -e "\n⏳ 正在清理系统定时任务中的旧版条目..."
# 1. 强制超度可能存活的 Webhook 及各类看门狗进程,释放端口
pkill -9 -f "webhook.py" >/dev/null 2>&1 || true
pkill -9 -f "agent_daemon.sh" >/dev/null 2>&1 || true
pkill -9 -f "runner.sh" >/dev/null 2>&1 || true
# 1. 清除系统定时任务 (Cron) 中的旧版条目 (安全容错版)
crontab -l 2>/dev/null | grep -v "ip_sentinel" > "${SECURE_TMP}/cron_clean" || true
# [追加 >/dev/null 2>&1 堵死 Alpine 的脏话输出]
[ -f "${SECURE_TMP}/cron_clean" ] && crontab "${SECURE_TMP}/cron_clean" >/dev/null 2>&1
rm -f "${SECURE_TMP}/cron_clean"
# 2. 清除系统定时任务 (Cron) 中的旧版条目 (安全容错版)
crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_clean || true
[ -f /tmp/cron_clean ] && crontab /tmp/cron_clean 2>/dev/null
rm -f /tmp/cron_clean
# ==========================================
# 🛑 [物理抹除] 彻底扫除 Alpine 系统的底层残留与双路径文件
# ==========================================
for CRON_FILE in "/var/spool/cron/crontabs/root" "/etc/crontabs/root"; do
if [ -f "$CRON_FILE" ]; then
grep -v "ip_sentinel" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
cat "${CRON_FILE}.tmp" > "$CRON_FILE" 2>/dev/null || true
rm -f "${CRON_FILE}.tmp" 2>/dev/null
fi
done
# 清理 OpenRC 开机启动项
rm -f /etc/local.d/ip_sentinel.start 2>/dev/null
# 3. 抹除旧版核心代码,杜绝代码冲突 (根据模式分流)
if [ "$UPGRADE_MODE" == "true" ]; then
@@ -210,13 +218,13 @@ if [ "$UPGRADE_MODE" == "false" ]; then
# 📍 动态零级菜单:战区(大洲)选择
echo -e "\n\033[36m📍 【第零级】请选择目标战区 (Continent):\033[0m"
jq -r '.continents[] | "\(.id)|\(.name)"' /tmp/map.json > /tmp/continents.txt
jq -r '.continents[] | "\(.id)|\(.name)"' "${SECURE_TMP}/map.json" > "${SECURE_TMP}/continents.txt"
i=1; CONT_MAP=()
while IFS="|" read -r cont_id cont_name; do
echo " $i) $cont_name"
CONT_MAP[$i]="$cont_id"
((i++))
done < /tmp/continents.txt
done < "${SECURE_TMP}/continents.txt"
read -p "请输入选择 [1-$((i-1))] (默认1): " CONT_SEL
CONT_SEL=${CONT_SEL:-1}
@@ -224,14 +232,14 @@ if [ "$UPGRADE_MODE" == "false" ]; then
# 📍 动态一级菜单:国家选择 (基于选中战区)
echo -e "\n\033[36m📍 【第一级】正在检索 [$CONT_ID] 战区下的国家/地区...\033[0m"
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | \"\(.id)|\(.name)|\(.keyword_file)\"" /tmp/map.json > /tmp/countries.txt
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | \"\(.id)|\(.name)|\(.keyword_file)\"" "${SECURE_TMP}/map.json" > "${SECURE_TMP}/countries.txt"
i=1; COUNTRY_MAP=(); KEYWORD_MAP=()
while IFS="|" read -r c_id c_name k_file; do
echo " $i) $c_name"
COUNTRY_MAP[$i]="$c_id"
KEYWORD_MAP[$i]="$k_file"
((i++))
done < /tmp/countries.txt
done < "${SECURE_TMP}/countries.txt"
read -p "请输入选择 [1-$((i-1))] (默认1): " C_SEL
C_SEL=${C_SEL:-1}
@@ -241,11 +249,11 @@ if [ "$UPGRADE_MODE" == "false" ]; then
# 📍 动态二级菜单:省/州选择 (基于选中战区和国家)
echo -e "\n\033[36m📍 【第二级】正在检索 [$COUNTRY_ID] 的行政区数据...\033[0m"
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | select(.id==\"$COUNTRY_ID\") | .states[] | \"\(.id)|\(.name)\"" /tmp/map.json > /tmp/states.txt
STATE_COUNT=$(wc -l < /tmp/states.txt)
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | select(.id==\"$COUNTRY_ID\") | .states[] | \"\(.id)|\(.name)\"" "${SECURE_TMP}/map.json" > "${SECURE_TMP}/states.txt"
STATE_COUNT=$(wc -l < "${SECURE_TMP}/states.txt")
if [ "$STATE_COUNT" -eq 1 ]; then
IFS="|" read -r STATE_ID STATE_NAME < /tmp/states.txt
IFS="|" read -r STATE_ID STATE_NAME < "${SECURE_TMP}/states.txt"
echo -e "\033[32m💡 该国家下仅有单一配置 [$STATE_NAME],已自动跃迁。\033[0m"
else
i=1; STATE_MAP=()
@@ -253,7 +261,7 @@ if [ "$UPGRADE_MODE" == "false" ]; then
echo " $i) $s_name"
STATE_MAP[$i]="$s_id"
((i++))
done < /tmp/states.txt
done < "${SECURE_TMP}/states.txt"
read -p "请输入选择 [1-$((i-1))] (默认1): " S_SEL
S_SEL=${S_SEL:-1}
STATE_ID="${STATE_MAP[$S_SEL]}"
@@ -261,11 +269,11 @@ if [ "$UPGRADE_MODE" == "false" ]; then
# 📍 动态三级菜单:城市选择 (基于战区、国家、州三层过滤)
echo -e "\n\033[36m📍 【第三级】请锁定具体城市节点:\033[0m"
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | select(.id==\"$COUNTRY_ID\") | .states[] | select(.id==\"$STATE_ID\") | .cities[] | \"\(.id)|\(.name)\"" /tmp/map.json > /tmp/cities.txt
CITY_COUNT=$(wc -l < /tmp/cities.txt)
jq -r ".continents[] | select(.id==\"$CONT_ID\") | .countries[] | select(.id==\"$COUNTRY_ID\") | .states[] | select(.id==\"$STATE_ID\") | .cities[] | \"\(.id)|\(.name)\"" "${SECURE_TMP}/map.json" > "${SECURE_TMP}/cities.txt"
CITY_COUNT=$(wc -l < "${SECURE_TMP}/cities.txt")
if [ "$CITY_COUNT" -eq 1 ]; then
IFS="|" read -r CITY_ID CITY_NAME < /tmp/cities.txt
IFS="|" read -r CITY_ID CITY_NAME < "${SECURE_TMP}/cities.txt"
echo -e "\033[32m💡 该区域下仅有单一城市 [$CITY_NAME],已自动锁定。\033[0m"
else
i=1; CITY_MAP=(); CITY_NAME_MAP=()
@@ -274,7 +282,7 @@ if [ "$UPGRADE_MODE" == "false" ]; then
CITY_MAP[$i]="$c_id"
CITY_NAME_MAP[$i]="$c_name"
((i++))
done < /tmp/cities.txt
done < "${SECURE_TMP}/cities.txt"
read -p "请输入选择 [1-$((i-1))] (默认1): " CI_SEL
CI_SEL=${CI_SEL:-1}
CITY_ID="${CITY_MAP[$CI_SEL]}"
@@ -282,7 +290,7 @@ if [ "$UPGRADE_MODE" == "false" ]; then
fi
# 清理临时文件 (增加清理 continents.txt)
rm -f /tmp/map.json /tmp/continents.txt /tmp/countries.txt /tmp/states.txt /tmp/cities.txt
rm -f "${SECURE_TMP}/map.json" "${SECURE_TMP}/continents.txt" "${SECURE_TMP}/countries.txt" "${SECURE_TMP}/states.txt" "${SECURE_TMP}/cities.txt"
# 本地工作目录初始化 (支持 v3.0 的深度层级)
mkdir -p "${INSTALL_DIR}/core"
@@ -322,11 +330,12 @@ if [ "$UPGRADE_MODE" == "false" ]; then
# [v3.6.0 优化] 使用 OSC 8 终端超链接协议,实现“点击即打开”的极客交互
echo -e "\n\033[36m📘 私有 Bot 创建教程: \033[4m\033]8;;https://blog.iot-architect.com/engineering-practice/create-private-telegram-bot-via-botfather/\033\\👉 [点击此处直接在浏览器中打开] 👈\033]8;;\033\\\033[0m"
echo -e "\033[90m (若您的终端较老不支持点击,请手动复制: https://blog.iot-architect.com/engineering-practice/create-private-telegram-bot-via-botfather/ )\033[0m"
read -p "请输入您的私有 Telegram Bot Token: " USER_TOKEN
read -p "请输入您的私有 Telegram Bot Token: " RAW_TOKEN
USER_TOKEN=$(echo "$RAW_TOKEN" | tr -cd 'a-zA-Z0-9_:-')
# 🛡️ 核心防误触修复:拦截空回车或粘贴换行导致的跳过 Bug
while [ -z "$USER_TOKEN" ]; do
read -p "⚠️ Token 不能为空,请重新输入您的 Bot Token: " USER_TOKEN
read -p "⚠️ Token 不能为空或包含非法字符,请重新输入: " RAW_TOKEN
USER_TOKEN=$(echo "$RAW_TOKEN" | tr -cd 'a-zA-Z0-9_:-')
done
TG_TOKEN="$USER_TOKEN"
@@ -349,7 +358,9 @@ if [ "$UPGRADE_MODE" == "false" ]; then
echo -e "\n\033[33m💡 提示:如果您不知道下方自己的 Chat ID 是什么,可以关注 @userinfobot 获取。\033[0m"
echo -e "\033[36m📘 查看图文教程: \033[4m\033]8;;https://blog.iot-architect.com/engineering-practice/get-telegram-personal-id-via-userinfobot/\033\\👉 [点击此处直接在浏览器中打开] 👈\033]8;;\033\\\033[0m"
echo -e "\033[90m (若您的终端较老不支持点击,请手动复制: https://blog.iot-architect.com/engineering-practice/get-telegram-personal-id-via-userinfobot/ )\033[0m"
read -p "请输入你的 Chat ID (必须准确,否则无法联控): " CHAT_ID
read -p "请输入你的 Chat ID (必须准确,否则无法联控): " RAW_CHAT_ID
# 强制只保留数字和负号,封死注入
CHAT_ID=$(echo "$RAW_CHAT_ID" | tr -cd '0-9-')
# ================== [v3.0.3 变更: 智能随机高位端口生成系统] ==================
echo -e "\n\033[36m[4.2/7] 正在构建 Webhook 安全通信隧道...\033[0m"
@@ -407,7 +418,8 @@ if [ "$UPGRADE_MODE" == "false" ]; then
if [ ${#IP_OPTIONS[@]} -eq 0 ]; then
echo -e "\033[33m⚠ 雷达受阻:未能自动探测到公网 IP请手动指定。\033[0m"
read -p "请输入您要绑定的公网 IP (v4 或 v6): " PUBLIC_IP
read -p "请输入您要绑定的公网 IP (v4 或 v6): " RAW_PUBLIC_IP
PUBLIC_IP=$(echo "$RAW_PUBLIC_IP" | tr -cd 'a-fA-F0-9.:[]')
[[ "$PUBLIC_IP" == *":"* ]] && IP_PREF="6" || IP_PREF="4"
else
echo "📍 发现可用出口 IP请选择要注册与养护的锚点:"
@@ -581,7 +593,8 @@ if [ "$UPGRADE_MODE" == "true" ]; then
BIND_IP="$NEW_BIND_IP"
else
# 如果是未来再升级,配置文件已是最新,直接提取变量供安装脚本尾部使用
SAFE_PUBLIC_IP=$(grep "^PUBLIC_IP=" "$CONFIG_FILE" | cut -d'"' -f2)
# [修复] 避免 cut 提取无引号变量失败,直接复用已 source 的原生变量
SAFE_PUBLIC_IP="${PUBLIC_IP}"
fi
# [v3.5.2 热修复] 兼容老版本没有 NODE_NAME 和 NODE_ALIAS 的情况,无损补齐
@@ -615,7 +628,7 @@ echo -e "\n[6/7] 正在部署核心引擎与热数据..."
mkdir -p "${INSTALL_DIR}/data/keywords"
# [核心修复] 开辟临时下载区,确保下载 100% 成功后再替换旧核心
TMP_CORE="/tmp/ip_sentinel_core_$$"
TMP_CORE="${SECURE_TMP}/core_update"
mkdir -p "$TMP_CORE"
# 拉取核心代码至临时区
@@ -636,7 +649,21 @@ if [ ! -s "${TMP_CORE}/runner.sh" ] || [ ! -s "${TMP_CORE}/agent_daemon.sh" ]; t
exit 1
fi
# 校验完美通过,执行原子化交接
# 🟢 [原子化交接核心]: 校验完美通过,新代码已在本地备妥!
# 此时再以雷霆手段镇压旧进程,杜绝遗言陷阱与断网变砖的可能!
echo "⏳ 新引擎校验通过,正在抹杀旧版守护进程..."
if command -v systemctl >/dev/null 2>&1; then
systemctl kill --signal=SIGKILL ip-sentinel-agent-daemon.service >/dev/null 2>&1 || true
systemctl stop ip-sentinel-runner.timer ip-sentinel-updater.timer ip-sentinel-report.timer ip-sentinel-agent-daemon.service >/dev/null 2>&1 || true
fi
pkill -9 -f "webhook.py" >/dev/null 2>&1 || true
pkill -9 -f "agent_daemon.sh" >/dev/null 2>&1 || true
pkill -9 -f "runner.sh" >/dev/null 2>&1 || true
pkill -9 -f "tg_report.sh" >/dev/null 2>&1 || true
pkill -9 -f "updater.sh" >/dev/null 2>&1 || true
pkill -9 -f "sentinel_scheduler.sh" >/dev/null 2>&1 || true
# 执行代码目录的物理替换
rm -rf "${INSTALL_DIR}/core" 2>/dev/null
mv "$TMP_CORE" "${INSTALL_DIR}/core"
chmod +x ${INSTALL_DIR}/core/*.sh
@@ -653,8 +680,12 @@ fi
# 7. 配置系统定时任务 (高频调度与看门狗)
echo -e "\n[7/7] 正在注入系统守护进程与调度器..."
# [v3.3.0 新增] 初始化 UA 指纹库更新时间戳,确立 30 天滚动周期的计算锚点
echo $(date +%s) > "${INSTALL_DIR}/core/.ua_last_update"
# [时钟同步核心] 获取部署时的绝对 UTC 时间锚点,用于打散全球节点的云端拉取并发
DEPLOY_UTC_HOUR=$(date -u +%H)
DEPLOY_UTC_MIN=$(date -u +%M)
# [v3.3.0 新增] 初始化 UA 指纹库更新时间戳,确立 30 天滚动周期的计算锚点 (强制 UTC)
echo $(date -u +%s) > "${INSTALL_DIR}/core/.ua_last_update"
if command -v systemctl >/dev/null 2>&1; then
echo "💡 检测到 Systemd 环境,正在部署原生守护服务..."
@@ -678,8 +709,8 @@ EOF
[Unit]
Description=Timer for IP-Sentinel Runner Service
[Timer]
OnActiveSec=10s
OnUnitActiveSec=30min
# [频率优化] 改用严格的 20 分钟步进,杜绝 OTA 瞬间的并发走火!
OnCalendar=*:0/20
RandomizedDelaySec=180
Persistent=true
Unit=ip-sentinel-runner.service
@@ -706,7 +737,8 @@ EOF
[Unit]
Description=Timer for IP-Sentinel Updater Service
[Timer]
OnCalendar=*-*-* 03:00:00
# [绝对 UTC 锚点] 每天精确在部署的时刻触发,实现全球请求的天然削峰
OnCalendar=*-*-* ${DEPLOY_UTC_HOUR}:${DEPLOY_UTC_MIN}:00 UTC
Persistent=true
Unit=ip-sentinel-updater.service
[Install]
@@ -736,7 +768,8 @@ EOF
[Unit]
Description=Timer for IP-Sentinel Telegram Report Service
[Timer]
OnCalendar=*-*-* 08:00:00
# [绝对 UTC 锚点] 全球统一:每天 UTC 16:00 准时向司令部发送战报
OnCalendar=*-*-* 16:00:00 UTC
Unit=ip-sentinel-report.service
[Install]
WantedBy=timers.target
@@ -762,28 +795,131 @@ WantedBy=multi-user.target
EOF
# [修复竞态]: 提前写入公网 IP 缓存,阻断重复推送
echo "$SAFE_PUBLIC_IP" > "${INSTALL_DIR}/core/.last_ip"
# 强制使用无参数 curl 裸奔探测,对齐 agent_daemon 的认知,防止双栈机型 IPv4/v6 认知错乱导致重启误报
DAEMON_IP=$( (curl -s -m 5 api.ip.sb/ip || curl -s -m 5 ifconfig.me) 2>/dev/null | tr -d '[:space:]' )
[ -n "$DAEMON_IP" ] && echo "$DAEMON_IP" > "${INSTALL_DIR}/core/.last_ip" || echo "$(echo "$SAFE_PUBLIC_IP" | tr -d '[]')" > "${INSTALL_DIR}/core/.last_ip"
systemctl daemon-reload
systemctl enable --now ip-sentinel-report.timer
systemctl enable --now ip-sentinel-agent-daemon.service
fi
else
echo "💡 未检测到 Systemd (可能是 Alpine Linux),回退到 Cron 调度模式..."
crontab -l 2>/dev/null | grep -v "ip_sentinel" > /tmp/cron_backup || true
echo "*/30 * * * * ${INSTALL_DIR}/core/runner.sh >/dev/null 2>&1" >> /tmp/cron_backup
echo "0 3 * * * ${INSTALL_DIR}/core/updater.sh >/dev/null 2>&1" >> /tmp/cron_backup
if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then
echo "0 8 * * * ${INSTALL_DIR}/core/tg_report.sh >/dev/null 2>&1" >> /tmp/cron_backup
echo "$SAFE_PUBLIC_IP" > "${INSTALL_DIR}/core/.last_ip"
echo "@reboot nohup bash ${INSTALL_DIR}/core/agent_daemon.sh >/dev/null 2>&1 &" >> /tmp/cron_backup
echo "* * * * * nohup bash ${INSTALL_DIR}/core/agent_daemon.sh >/dev/null 2>&1 &" >> /tmp/cron_backup
nohup bash "${INSTALL_DIR}/core/agent_daemon.sh" >/dev/null 2>&1 &
else
echo "💡 未检测到 Systemd,正在配置备用调度器 (兼容 Alpine/OpenRC)..."
# ==========================================
# 🛑 智能环境嗅探: 判定是否为受限的 Alpine 容器环境
# ==========================================
IS_RESTRICTED_ALPINE="false"
if [ -f /etc/alpine-release ]; then
# 探测虚拟化类型:/proc/vz(OpenVZ), environ包含lxc(LXC), /.dockerenv(Docker)
if [ -d /proc/vz ] || grep -qa container=lxc /proc/1/environ 2>/dev/null || [ -f /.dockerenv ]; then
IS_RESTRICTED_ALPINE="true"
fi
fi
if [ "$IS_RESTRICTED_ALPINE" == "true" ]; then
echo -e "⚠️ 探测到受限的 LXC/OpenVZ Alpine 环境,系统自带 Cron 极易假死。"
echo -e "🔧 自动降维打击:启用 [自定义高可用死循环调度器] 接管全局任务..."
# 1. 禁用原有的 Cron 大管家 (防止冲突)
rc-update del crond default >/dev/null 2>&1 || true
rc-service crond stop >/dev/null 2>&1 || true
pkill -9 crond >/dev/null 2>&1 || true
crontab -l 2>/dev/null | grep -v "ip_sentinel" > "${SECURE_TMP}/cron_clean" || true
[ -f "${SECURE_TMP}/cron_clean" ] && crontab "${SECURE_TMP}/cron_clean" >/dev/null 2>&1
rm -f "${SECURE_TMP}/cron_clean"
# 2. 写入我们的死循环守护进程
# [极客修复] 将 << 'EOF' 变为 << EOF以允许在安装时将部署时刻的 DEPLOY_UTC 变量作为硬编码注入脚本中
cat > ${INSTALL_DIR}/core/sentinel_scheduler.sh << EOF
#!/bin/bash
while true; do
# 强制获取绝对 UTC 时分,免疫系统错误时区
MIN=\$(date -u +%M)
HOUR=\$(date -u +%H)
# [频率优化] 匹配 20 分钟步进 (00, 20, 40)
if [ "\$MIN" == "00" ] || [ "\$MIN" == "20" ] || [ "\$MIN" == "40" ]; then
/bin/bash /opt/ip_sentinel/core/runner.sh >/dev/null 2>&1
fi
# [绝对 UTC 锚点] 基于部署时刻的锚点触发热数据更新,天然并发削峰
if [ "\$HOUR" == "${DEPLOY_UTC_HOUR}" ] && [ "\$MIN" == "${DEPLOY_UTC_MIN}" ]; then
/bin/bash /opt/ip_sentinel/core/updater.sh >/dev/null 2>&1
fi
# [绝对 UTC 锚点] 统一 UTC 16:00 发送战报
if [ "\$HOUR" == "16" ] && [ "\$MIN" == "00" ]; then
/bin/bash /opt/ip_sentinel/core/tg_report.sh >/dev/null 2>&1
fi
if ! pgrep -f 'webhook.py' >/dev/null; then
/bin/bash /opt/ip_sentinel/core/agent_daemon.sh >/dev/null 2>&1 &
fi
sleep 60
done
EOF
chmod +x ${INSTALL_DIR}/core/sentinel_scheduler.sh
# 3. 写入 OpenRC 开机自启
if command -v rc-update >/dev/null 2>&1 && [ -d "/etc/local.d" ]; then
echo "nohup bash ${INSTALL_DIR}/core/sentinel_scheduler.sh >/dev/null 2>&1 &" > /etc/local.d/ip_sentinel_scheduler.start
chmod +x /etc/local.d/ip_sentinel_scheduler.start
rc-update add local default >/dev/null 2>&1
else
# 连 OpenRC 都没有的极端环境,写入 profile 兜底
grep -q "sentinel_scheduler" /etc/profile || echo "nohup bash ${INSTALL_DIR}/core/sentinel_scheduler.sh >/dev/null 2>&1 &" >> /etc/profile
fi
# 4. 立即后台启动
[ -n "$PUBLIC_IP" ] && echo "$PUBLIC_IP" > "${INSTALL_DIR}/core/.last_ip"
nohup bash ${INSTALL_DIR}/core/sentinel_scheduler.sh >/dev/null 2>&1 &
else
# ==========================================
# 🟢 走常规调度路线 (正常的 Linux 或 KVM 型 Alpine)
# ==========================================
crontab -l 2>/dev/null | grep -v "ip_sentinel" > "${SECURE_TMP}/cron_backup" || true
# [频率优化] 调整为 */20
echo "*/20 * * * * ${INSTALL_DIR}/core/runner.sh >/dev/null 2>&1" >> "${SECURE_TMP}/cron_backup"
# [绝对 UTC 锚点] 每天精确在部署的 UTC 时刻触发
echo "${DEPLOY_UTC_MIN} ${DEPLOY_UTC_HOUR} * * * ${INSTALL_DIR}/core/updater.sh >/dev/null 2>&1" >> "${SECURE_TMP}/cron_backup"
if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then
# [绝对 UTC 锚点] 统一 UTC 16:00
echo "0 16 * * * ${INSTALL_DIR}/core/tg_report.sh >/dev/null 2>&1" >> "${SECURE_TMP}/cron_backup"
echo "$SAFE_PUBLIC_IP" > "${INSTALL_DIR}/core/.last_ip"
# [修复竞态]: 提前写入公网 IP 缓存,阻断重复推送
# 强制使用无参数 curl 裸奔探测,对齐 agent_daemon 的认知,防止双栈机型 IPv4/v6 认知错乱导致重启误报
DAEMON_IP=$( (curl -s -m 5 api.ip.sb/ip || curl -s -m 5 ifconfig.me) 2>/dev/null | tr -d '[:space:]' )
[ -n "$DAEMON_IP" ] && echo "$DAEMON_IP" > "${INSTALL_DIR}/core/.last_ip" || echo "$(echo "$SAFE_PUBLIC_IP" | tr -d '[]')" > "${INSTALL_DIR}/core/.last_ip"
if command -v rc-update >/dev/null 2>&1 && [ -d "/etc/local.d" ]; then
echo "nohup bash ${INSTALL_DIR}/core/agent_daemon.sh >/dev/null 2>&1 &" > /etc/local.d/ip_sentinel.start
chmod +x /etc/local.d/ip_sentinel.start
rc-update add local default >/dev/null 2>&1
else
echo "@reboot nohup bash ${INSTALL_DIR}/core/agent_daemon.sh >/dev/null 2>&1 &" >> "${SECURE_TMP}/cron_backup"
fi
echo "* * * * * pgrep -f 'webhook.py' >/dev/null || nohup bash ${INSTALL_DIR}/core/agent_daemon.sh >/dev/null 2>&1 &" >> "${SECURE_TMP}/cron_backup"
nohup bash "${INSTALL_DIR}/core/agent_daemon.sh" >/dev/null 2>&1 &
fi
[ -f "${SECURE_TMP}/cron_backup" ] && crontab "${SECURE_TMP}/cron_backup" >/dev/null 2>&1
if [ -d "/etc/crontabs" ] && [ -f "/var/spool/cron/crontabs/root" ]; then
cp -f /var/spool/cron/crontabs/root /etc/crontabs/root 2>/dev/null || true
chmod 600 /etc/crontabs/root 2>/dev/null || true
fi
if command -v rc-service >/dev/null 2>&1; then
rc-service crond restart >/dev/null 2>&1 || crond -b >/dev/null 2>&1
else
pkill -9 crond 2>/dev/null || true
crond -b >/dev/null 2>&1 || true
fi
rm -f "${SECURE_TMP}/cron_backup"
fi
fi
[ -f /tmp/cron_backup ] && crontab /tmp/cron_backup 2>/dev/null
rm -f /tmp/cron_backup
fi
# ================== [v3.4.0 核心: 状态机驱动的热更新路由] ==================
if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then
@@ -797,31 +933,34 @@ if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then
[ -z "$OLD_VERSION" ] && OLD_VERSION="3.3.1"
# [路由表 1]: 跨代兼容 (老版本 < v3.3.2)
# 必须强制下发带有 #REGISTER# 的警告,引导长官重新同步哈希身份
if version_lt "$OLD_VERSION" "3.3.2"; then
echo -e "\n📡 [路由枢纽] 正在执行跨代架构重组 (v${OLD_VERSION} -> v${TARGET_VERSION})..."
curl -s -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "parse_mode=Markdown" \
-d "text=✨ *IP-Sentinel 引擎热更新完成!*
TEXT_MSG="✨ *IP-Sentinel 引擎热更新完成!*
📍 节点:\`${NODE_ALIAS}\`
🌐 IP\`${SAFE_PUBLIC_IP}\`
🚀 状态v${TARGET_VERSION} OTA 动态活体引擎已部署
⚠️ *战区架构已重组,请务必点击下方指令并发送,以同步新的防撞档案:*
\`${REG_MSG}\`" >/dev/null 2>&1
\`${REG_MSG}\`"
# [v4.0.3 体验升级] 注入交互式控制台按钮
JSON_PAYLOAD=$(jq -n --arg cid "$CHAT_ID" --arg txt "$TEXT_MSG" --arg cb "manage:${NODE_NAME}" '{chat_id: $cid, text: $txt, parse_mode: "Markdown", reply_markup: {inline_keyboard: [[{text: "⚙️ 调出该节点控制台", callback_data: $cb}]]}}')
curl -s -X POST "${TG_API_URL}" -H "Content-Type: application/json" -d "$JSON_PAYLOAD" >/dev/null 2>&1
echo -e "\033[32m✅ 升级通知已推送!请前往 TG 点击注册指令完成身份同步!\033[0m"
# [路由表 2]: 现代静默升级 (老版本 >= v3.3.2)
else
echo -e "\n📡 [路由枢纽] 正在执行静默平滑升级 (v${OLD_VERSION} -> v${TARGET_VERSION})..."
curl -s -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "parse_mode=Markdown" \
-d "text=✨ *IP-Sentinel 引擎热更新完成!*
TEXT_MSG="✨ *IP-Sentinel 引擎热更新完成!*
📍 节点:\`${NODE_ALIAS}\`
🌐 IP\`${SAFE_PUBLIC_IP}\`
🚀 状态v${TARGET_VERSION} OTA 动态活体引擎已部署" >/dev/null 2>&1
🚀 状态v${TARGET_VERSION} OTA 动态活体引擎已部署"
# [v4.0.3 体验升级] 注入交互式控制台按钮
JSON_PAYLOAD=$(jq -n --arg cid "$CHAT_ID" --arg txt "$TEXT_MSG" --arg cb "manage:${NODE_NAME}" '{chat_id: $cid, text: $txt, parse_mode: "Markdown", reply_markup: {inline_keyboard: [[{text: "⚙️ 调出该节点控制台", callback_data: $cb}]]}}')
curl -s -X POST "${TG_API_URL}" -H "Content-Type: application/json" -d "$JSON_PAYLOAD" >/dev/null 2>&1
echo -e "\033[32m✅ 升级成功通知已推送到您的 Telegram\033[0m"
fi
@@ -836,16 +975,17 @@ if [[ -n "$TG_TOKEN" ]] && [[ -n "$CHAT_ID" ]]; then
else
# [全新安装路由]
echo -e "\n📡 正在向指挥部发送注册暗号..."
PUSH_RESULT=$(curl -s -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "parse_mode=Markdown" \
-d "text=✨ *IP-Sentinel 部署成功!*
TEXT_MSG="✨ *IP-Sentinel 部署成功!*
📍 区域:${REGION_NAME}
🌐 IP${SAFE_PUBLIC_IP}
🔌 端口:${AGENT_PORT}
🔑 *请点击下方指令复制并回复给机器人:*
\`${REG_MSG}\`")
\`${REG_MSG}\`"
# [v4.0.3 体验升级] 注入交互式控制台按钮
JSON_PAYLOAD=$(jq -n --arg cid "$CHAT_ID" --arg txt "$TEXT_MSG" --arg cb "manage:${NODE_NAME}" '{chat_id: $cid, text: $txt, parse_mode: "Markdown", reply_markup: {inline_keyboard: [[{text: "⚙️ 调出该节点控制台", callback_data: $cb}]]}}')
PUSH_RESULT=$(curl -s -X POST "${TG_API_URL}" -H "Content-Type: application/json" -d "$JSON_PAYLOAD")
if echo "$PUSH_RESULT" | grep -q '"ok":true'; then
echo -e "\033[32m✅ 注册信息已推送到您的 Telegram请按指令完成最终激活\033[0m"
@@ -863,7 +1003,7 @@ else
echo "🎉 边缘节点 (Agent) 部署流程彻底完成!"
fi
echo "📍 你的本地守护区域已锁定为: $REGION_NAME"
echo "⚙️ 哨兵现已开启 [每30分钟] 的高频高拟真养护循环。"
echo "⚙️ 哨兵现已开启 [每20分钟] 的高频高拟真养护循环。"
if [[ -n "$TG_TOKEN" ]]; then
echo "📡 Webhook 监听已启动 (端口: $AGENT_PORT) 并向中枢发送了注册请求。"

View File

@@ -27,7 +27,8 @@ if ! type log >/dev/null 2>&1; then
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$2" "$1" "$REGION_CODE" "$3")
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $core_msg" >> "${INSTALL_DIR}/logs/sentinel.log"
# [时区对齐] 强制无视本地时区,以绝对 UTC 时间写入日志
echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] $core_msg" >> "${INSTALL_DIR}/logs/sentinel.log"
# 强制推送到 Systemd Journal (如果系统支持)
if command -v logger >/dev/null 2>&1; then
@@ -161,53 +162,133 @@ for ((i=1; i<=TOTAL_ACTIONS; i++)); do
log "$MODULE_NAME" "EXEC " "动作[$i/$TOTAL_ACTIONS]完成 | HTTP状态: $CODE | 抖动坐标: $ACTION_LAT, $ACTION_LON"
# 【核心升级】行为拉伸:每次动作后强制休眠 90 - 150 秒
# 结合动作总数,总耗时将稳定在 10 分钟 到 25 分钟之间
# 【核心升级】行为拉伸:每次动作后强制休眠 90 - 120 秒
# 结合动作总数,总耗时将稳定在 10 分钟 到 20 分钟之间
if [ $i -lt $TOTAL_ACTIONS ]; then
SLEEP_TIME=$((90 + RANDOM % 61))
SLEEP_TIME=$((90 + RANDOM % 31))
log "$MODULE_NAME" "WAIT " "阅读当前页面内容,模拟停留 $SLEEP_TIME 秒..."
sleep $SLEEP_TIME
fi
done
# --- [结果纠偏自检 (V3.2.1 高精度容错版)] ---
# [V3.2.1 热修复] 探针同样应用 $DYNAMIC_IP_PREF 协议自适应
PROBE_RESULT=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 15 -s -L -o /dev/null -w "%{http_code}|%{url_effective}" https://www.google.com)
# --- [结果纠偏自检 (V4.0.9 终极三核雷达: URL跳转 + Premium + Music)] ---
# 战术揭秘:汲取开源社区顶级探针的精髓!
# 1. 传统 URL 跳转探测:捕捉 www.google.com 底层 302 重定向域名的真实归属。
# 2. YT Premium 深度探测:提取核心 contentRegion 变量,并强匹配 www.google.cn 送中特征。
# 3. 严格一致性校验:任何一端出现非预期偏移,立即判定为漂移,彻底消除虚假“成功”。
# 分离状态码与 URL
PROBE_CODE=$(echo "$PROBE_RESULT" | cut -d'|' -f1)
FINAL_URL=$(echo "$PROBE_RESULT" | cut -d'|' -f2)
log "$MODULE_NAME" "INFO " "启动三核交叉验证 (URL跳转 + YT Premium + YT Music) 穿透获取 GeoIP..."
# 0. 致命拦截网络断开、DNS 解析失败或严重超时
if [ "$PROBE_CODE" == "000" ] || [ -z "$FINAL_URL" ]; then
STATUS="🚨 探针失效 (网络阻断或底层路由异常)"
# 核心 1: 传统 URL 跳转探测 (请求 www 才能触发准确跳转)
JUMP_HDR=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -sI "http://www.google.com/")
JUMP_LOC=$(echo "$JUMP_HDR" | grep -i "^location:" | tr -d '\r\n')
JUMP_GL=""
if [ -z "$JUMP_LOC" ]; then
# 无跳转 (HTTP 200) 通常意味着原生被定位于 US
JUMP_GL="US"
elif [[ "$JUMP_LOC" == *".google.cn"* ]] || [[ "$JUMP_LOC" == *"gl=CN"* ]]; then
JUMP_GL="CN"
elif [[ "$JUMP_LOC" == *"gl="* ]]; then
JUMP_GL=$(echo "$JUMP_LOC" | grep -o 'gl=[A-Za-z]\{2\}' | head -n 1 | cut -d'=' -f2 | tr 'a-z' 'A-Z')
else
# 核心战术:精准提取最终 URL 的域名部分
ACTUAL_DOMAIN=$(echo "$FINAL_URL" | awk -F/ '{print $3}')
# [V3.2.1 优化] 使用通配符 * 剔除任意前缀 (无论是 www.google. 还是 ipv4.google.)
ACTUAL_SUFFIX=${ACTUAL_DOMAIN#*google.}
# 从域名中提取区域后缀 (如 .co.jp -> JP, .com.hk -> HK, .de -> DE)
JUMP_DOMAIN=$(echo "$JUMP_LOC" | grep -o 'google\.[a-z\.]*' | head -n 1 | sed 's/google\.//')
case "$JUMP_DOMAIN" in
"com") JUMP_GL="US" ;;
"com.hk") JUMP_GL="HK" ;;
"com.tw") JUMP_GL="TW" ;;
"co.jp") JUMP_GL="JP" ;;
"co.uk") JUMP_GL="GB" ;;
"co.kr") JUMP_GL="KR" ;;
"co.in") JUMP_GL="IN" ;;
"co.id") JUMP_GL="ID" ;;
"co.th") JUMP_GL="TH" ;;
"com.sg") JUMP_GL="SG" ;;
"com.my") JUMP_GL="MY" ;;
"com.au") JUMP_GL="AU" ;;
"com.br") JUMP_GL="BR" ;;
"com.mx") JUMP_GL="MX" ;;
"com.ar") JUMP_GL="AR" ;;
"co.za") JUMP_GL="ZA" ;;
"cn") JUMP_GL="CN" ;;
"") JUMP_GL="" ;;
*)
# 提取标准两字母后缀 (.de, .fr, .nl)
LAST_EXT=$(echo "$JUMP_DOMAIN" | awk -F'.' '{print $NF}' | tr 'a-z' 'A-Z')
if [ ${#LAST_EXT} -eq 2 ]; then
JUMP_GL="$LAST_EXT"
else
JUMP_GL="US"
fi
;;
esac
fi
# 1. 优先验证:绝对匹配目标后缀 (彻底杜绝 com 包含于 com.hk 的陷阱)
if [ "$ACTUAL_SUFFIX" == "$VALID_URL_SUFFIX" ]; then
STATUS="✅ 目标区域达成 ($ACTUAL_SUFFIX)"
# 核心 2: YouTube Premium 探测
YT_PR_GL=""
# [修复] 必须带上本轮循环的专属 UA (-A "$SESSION_UA"),防止被 Google CDN 丢进无状态爬虫兜底页
YT_PR_HTML=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -L -A "$SESSION_UA" "https://www.youtube.com/premium")
if echo "$YT_PR_HTML" | grep -q 'www.google.cn'; then
YT_PR_GL="CN"
else
# 穷举风控变量提取
YT_PR_GL=$(echo "$YT_PR_HTML" | grep -o '"contentRegion":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
[ -z "$YT_PR_GL" ] && YT_PR_GL=$(echo "$YT_PR_HTML" | grep -o '"countryCode":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
[ -z "$YT_PR_GL" ] && YT_PR_GL=$(echo "$YT_PR_HTML" | grep -o '"INNERTUBE_CONTEXT_GL":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
fi
# 2. 核心拦截:精准捕捉送中特征 (com.hk)
elif [ "$ACTUAL_SUFFIX" == "com.hk" ]; then
if [ "$REGION_CODE" == "HK" ]; then
STATUS="✅ 目标区域达成 (HK 专属 com.hk)"
# 核心 3: YouTube Music 探测
YT_MU_GL=""
# [修复] 同样加持 UA 装甲,强行唤出完整版前端框架
YT_MU_HTML=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -L -A "$SESSION_UA" "https://music.youtube.com/")
if echo "$YT_MU_HTML" | grep -q 'www.google.cn'; then
YT_MU_GL="CN"
else
# [修复] Music 的核心配置变量是 INNERTUBE_CONTEXT_GL
YT_MU_GL=$(echo "$YT_MU_HTML" | grep -o '"INNERTUBE_CONTEXT_GL":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
[ -z "$YT_MU_GL" ] && YT_MU_GL=$(echo "$YT_MU_HTML" | grep -o '"countryCode":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
[ -z "$YT_MU_GL" ] && YT_MU_GL=$(echo "$YT_MU_HTML" | grep -o '"GL":"[A-Za-z]\{2\}"' | head -n 1 | cut -d'"' -f4 | tr 'a-z' 'A-Z')
fi
# [基准对齐] 提取配置大区 (兼容州级穿透),并修正英国的 ISO 代码
TARGET_CC="${REGION_CODE%%-*}"
[ "$TARGET_CC" == "UK" ] && TARGET_CC="GB"
# --- 终极审判逻辑 (以 YouTube 核心业务为主导,兼顾底层雷达权重) ---
IS_CN=0
VALID_PROBES=0
# 1. 扫描所有探针,统计有效性并执行“送中”一票否决
for val in "$JUMP_GL" "$YT_PR_GL" "$YT_MU_GL"; do
if [ -n "$val" ]; then
((VALID_PROBES++))
[ "$val" == "CN" ] && IS_CN=1
fi
done
if [ $VALID_PROBES -eq 0 ]; then
STATUS="🚨 探针失效 (三核全部熔断,可能遭严重风控拦截)"
elif [ $IS_CN -eq 1 ]; then
STATUS="❌ 严重高危!三核雷达判定 IP 已被中国大陆锁定 (送中)"
else
# 2. 评估核心流媒体业务是否达标 (只要 YT_PR 或 YT_MU 其一达标,即视为成功)
YT_MATCH=0
[ "$YT_PR_GL" == "$TARGET_CC" ] && YT_MATCH=1
[ "$YT_MU_GL" == "$TARGET_CC" ] && YT_MATCH=1
if [ $YT_MATCH -eq 1 ]; then
# 3. 核心业务达标,进一步评估底层路由权重
if [ -n "$JUMP_GL" ] && [ "$JUMP_GL" != "$TARGET_CC" ]; then
# YT 解锁了,但基础跳转 IP 库漂移了 (降级为 ✅,但备注底层漂移)
STATUS="✅ 目标区域达成 (YT主导成功, Jump副雷达漂移至 ${JUMP_GL}) | Prem: ${YT_PR_GL:-} | Music: ${YT_MU_GL:-}"
else
STATUS="❌ 严重漂移!判定为送中区 (实际跳往 $ACTUAL_SUFFIX)"
# 完美达成
STATUS="✅ 目标区域达成 (Jump: ${JUMP_GL:-} | Prem: ${YT_PR_GL:-} | Music: ${YT_MU_GL:-})"
fi
# 3. 宽容处理:遵守 Google 无跳转新规 (严格限定必须是纯粹的 com)
# [视觉优化] 留在 .com 代表 IP 极度纯净未被区域沙盒锁定,计入成功战绩!
elif [ "$ACTUAL_SUFFIX" == "com" ]; then
STATUS="✅ 目标区域达成 (免签停留 .com 通用主站)"
# 4. 跨区漂移:所有预判之外的后缀,全部视为异常
else
STATUS="⚠️ 跨区跳板漂移 (当前实际归属: $ACTUAL_SUFFIX)"
# YouTube 流媒体核心未能解锁目标区域,宣判漂移
STATUS="⚠️ 区域发生漂移!目标 $TARGET_CC,实际 (Jump: ${JUMP_GL:-} | Prem: ${YT_PR_GL:-} | Music: ${YT_MU_GL:-})"
fi
fi

View File

@@ -5,24 +5,102 @@
source /opt/ip_sentinel/config.conf
TARGET_IP=$(echo "${BIND_IP:-$PUBLIC_IP}" | tr -d '[]')
IP_PROTO="${IP_PREF:-4}"
# ==========================================
# 1. 动态网络锚定与协议自适应 (专为多 IP / NAT 架构打造)
# ==========================================
DYNAMIC_IP_PREF="${IP_PREF:-4}"
PROBE_ARGS=("-y" "-j" "-f") # 默认注入: 自动确认、JSON格式、明文无掩码IP
# 1. 静默拉取原始数据 (消除短链接 RCE 劫持风险,收编为本地固化执行)
# 强壮正则:支持 V4, V6 以及带有 [] 护甲的 V6 (兼容多 IP 站群机)
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\[\]\.]+$ ]]; then
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
# 严格探测物理网卡/虚拟 IP 存活状态,防止 IP 漂移导致探针彻底报错
if ip addr show 2>/dev/null | grep -qw "$RAW_BIND_IP"; then
# 恢复使用官方原生参数 -i不再进行徒劳的底层劫持
PROBE_ARGS+=("-i" "$RAW_BIND_IP")
# 智能识别 V4 / V6强制覆盖系统默认的 IP_PREF
if [[ "$RAW_BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="6"
elif [[ "$RAW_BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="4"
fi
fi
fi
# 补齐协议版本参数 (-4 或 -6)
PROBE_ARGS+=("-${DYNAMIC_IP_PREF}")
# 2. 智能拉取引擎 (官方主干优先防 RCE双栈 CDN 保底,外加文件防伪强校验)
PROBE_SCRIPT="/opt/ip_sentinel/core/ip_probe.sh"
if [ ! -x "$PROBE_SCRIPT" ]; then
# 若本地探针尚未就绪,直接从 GitHub 官方主干拉取底层源码,绕过未知域名
curl -sL "https://raw.githubusercontent.com/xykt/IPQuality/main/ip.sh" -o "$PROBE_SCRIPT" 2>/dev/null
# [校验 1] 验证本地残留脚本是否损坏 (防止之前被墙或拦截返回了 HTML 报错页)
if [ -f "$PROBE_SCRIPT" ] && ! grep -q "xykt" "$PROBE_SCRIPT" 2>/dev/null; then
rm -f "$PROBE_SCRIPT"
fi
if [ ! -s "$PROBE_SCRIPT" ]; then
# 🛡️ 首选防线: 严格遵守从 GitHub 官方主干拉取,捍卫纯净底线
curl -sL -m 10 "https://raw.githubusercontent.com/xykt/IPQuality/main/ip.sh" -o "$PROBE_SCRIPT" 2>/dev/null
# 🚑 文件防伪校验: 如果纯 V6 无法解析 GitHub 返回了 HTML 报错页,剔除它!
if ! grep -q "xykt" "$PROBE_SCRIPT" 2>/dev/null; then
rm -f "$PROBE_SCRIPT" 2>/dev/null
# 降级到双栈 CDN 节点兜底 (仅在 GitHub 彻底失效时启用)
curl -sL -m 15 "https://IP.Check.Place" -o "$PROBE_SCRIPT" 2>/dev/null
fi
chmod +x "$PROBE_SCRIPT" 2>/dev/null
fi
# 采用本地执行,彻底封死运行时的外部投毒通道
RAW_OUTPUT=$(timeout 180 bash "$PROBE_SCRIPT" -y -j -${IP_PROTO} -i "${TARGET_IP}" 2>/dev/null)
# ==========================================
# 3. 极速预检与容灾打靶系统
# ==========================================
# 2. 极致截取 JSON (无视开头的赞助商广告与不可见字符,精准提取)
# 封装链路预检函数 (4秒极速探路拒绝死等)
preflight_check() {
local curl_args=("-s" "-m" "4")
# 提取网卡和协议约束
for ((i=1; i<=$#; i++)); do
if [[ "${!i}" == "-i" ]]; then
local next=$((i+1))
curl_args+=("--interface" "${!next}")
elif [[ "${!i}" == "-4" ]]; then
curl_args+=("-4")
elif [[ "${!i}" == "-6" ]]; then
curl_args+=("-6")
fi
done
# 验证该路由设置是否能成功连通外部网络
curl "${curl_args[@]}" "https://www.cloudflare.com/cdn-cgi/trace" >/dev/null 2>&1
return $?
}
# 📡 寻路雷达:测定哪一组参数可以走通
FINAL_ARGS=()
if preflight_check "${PROBE_ARGS[@]}"; then
# 阶梯 0: 原定参数 (带 BIND_IP 和协议) 通畅
FINAL_ARGS=("${PROBE_ARGS[@]}")
else
# 阶梯 1: 剥离物理网卡限制,只保留协议限制
FALLBACK_ARGS=("-y" "-j" "-${DYNAMIC_IP_PREF}")
if preflight_check "${FALLBACK_ARGS[@]}"; then
FINAL_ARGS=("${FALLBACK_ARGS[@]}")
else
# 阶梯 2: 终极裸跑 (不限网卡,不限协议)
FINAL_ARGS=("-y" "-j")
fi
fi
# ==========================================
# 4. 终极实弹打靶
# ==========================================
# 此时 FINAL_ARGS 已经被证实是连通的,我们只执行 1 次 ip.sh
# 将超时放宽至 300 秒,给第三方 API (如 ipregistry) 充足的响应时间
RAW_OUTPUT=$(timeout 300 bash "$PROBE_SCRIPT" "${FINAL_ARGS[@]}" 2>/dev/null)
JSON_DATA="{${RAW_OUTPUT#*\{}"
# 2. 提取基础物理定位与身份特征 (兼作合法性校验)
ESC=$(printf '\033')
JSON_DATA=$(printf "%s" "$JSON_DATA" | sed -e "s/${ESC}\[[0-9;]*[a-zA-Z]//g" -e "s/${ESC}[0-9;]*[a-zA-Z]//g" -e "s/x1b\\[[0-9;]*[a-zA-Z]//g" -e "s/x1b[0-9;]*[a-zA-Z]//g")
IP_ADDR=$(echo "$JSON_DATA" | jq -r '.Head.IP // empty' 2>/dev/null)
if [ -z "$IP_ADDR" ]; then
@@ -36,7 +114,6 @@ if [ -z "$IP_ADDR" ]; then
exit 1
fi
[ -z "$IP_ADDR" ] && IP_ADDR="$PUBLIC_IP"
ASN=$(echo "$JSON_DATA" | jq -r '.Info.ASN // "Unknown"' 2>/dev/null)
ORG=$(echo "$JSON_DATA" | jq -r '.Info.Organization // "Unknown"' 2>/dev/null)
CITY=$(echo "$JSON_DATA" | jq -r '.Info.City.Name // "Unknown"' 2>/dev/null)
@@ -51,6 +128,13 @@ IPQS_SCORE=$(echo "$JSON_DATA" | jq -r '.Score.IPQS // "0"' 2>/dev/null)
IP2L_SCORE=$(echo "$JSON_DATA" | jq -r '.Score.IP2LOCATION // "0"' 2>/dev/null)
FRAUD_RISK=$(echo "$JSON_DATA" | jq -r '.Score.ipapi // "0%"' 2>/dev/null)
# [修复] 清洗 API 阻断返回的 null 值,保障面板整洁
[ "$SCAM_SCORE" == "null" ] || [ -z "$SCAM_SCORE" ] && SCAM_SCORE="N/A"
[ "$ABUSE_SCORE" == "null" ] || [ -z "$ABUSE_SCORE" ] && ABUSE_SCORE="N/A"
[ "$IPQS_SCORE" == "null" ] || [ -z "$IPQS_SCORE" ] && IPQS_SCORE="N/A"
[ "$IP2L_SCORE" == "null" ] || [ -z "$IP2L_SCORE" ] && IP2L_SCORE="N/A"
[ "$FRAUD_RISK" == "null" ] || [ -z "$FRAUD_RISK" ] && FRAUD_RISK="N/A"
# 代理/VPN 特征探针 (只要有一家认为是代理,就亮黄灯)
IS_PROXY="🟢 干净"
if echo "$JSON_DATA" | jq -e '.Factor.Proxy | to_entries | any(.value == true)' >/dev/null 2>&1 || \
@@ -65,11 +149,15 @@ parse_media() {
local type=$(echo "$JSON_DATA" | jq -r ".Media.$1.Type // \"\"" 2>/dev/null)
if [[ "$status" == *"解锁"* ]]; then
echo "🟢 $reg ($type)"
elif [[ "$status" == *"屏蔽"* ]] || [[ "$status" == *"失败"* ]]; then
echo "🔴 屏蔽"
echo "🟢 ${reg} (${type})"
elif [[ "$status" == *"仅"* ]] || [[ "$status" == *"机房"* ]] || [[ "$status" == *"待支持"* ]]; then
# 捕捉 Netflix "仅自制"、ChatGPT "仅网页"、TikTok "机房" 等半残状态
echo "🟡 ${status} ${reg}"
elif [[ "$status" == *"屏蔽"* ]] || [[ "$status" == *"失败"* ]] || [[ "$status" == *"中国"* ]] || [[ "$status" == *"禁"* ]]; then
# 捕捉 "屏蔽"、"失败"、"禁会员"、"中国"(送中)
echo "🔴 ${status}"
else
echo "$status"
echo "${status}"
fi
}
@@ -93,11 +181,20 @@ DNS_MARK=$(echo "$JSON_DATA" | jq -r '.Mail.DNSBlacklist.Marked // "0"' 2>/dev/n
# 6. “送中” 逻辑判定
WARNING_MSG=""
if [[ "$RAW_YT_REG" == *"[CN]"* ]] || [[ "$RAW_YT_STAT" == *"China"* ]]; then
WARNING_MSG="%0A🚨 **[高危] 该节点已被 Google 判定为中国大陆 (送中)**%0A"
# [修复] 官方 JSON 已经去除了方括号,直接匹配 CN 或者状态包含中国
if [[ "$RAW_YT_REG" == "CN" ]] || [[ "$RAW_YT_STAT" == *"中国"* ]]; then
# [修复] 采用 Bash 扩展转义 ($'...'),彻底解决直接打印 \n 字符的问题
WARNING_MSG=$'\n🚨 **[高危] 该节点已被 Google 判定为中国大陆 (送中)**\n'
fi
# 7. 组装情报级 Markdown 战报
# 提取本地运行态版本与生成时间戳
LOCAL_VER="${AGENT_VERSION:-未知}"
# [时区对齐] 深海声呐战报落款强制采用绝对 UTC 时间
CURRENT_TIME=$(date -u "+%Y-%m-%d %H:%M:%S UTC")
# [体验修复] 探针返回的 IP 带有星号掩码,强制使用中枢下发的真实 IP 拼接,以防直达链接失效!
LINK_IP=$(echo "$PUBLIC_IP" | tr -d '[]')
REPORT="🎯 *IP-Sentinel 深海声呐报告*
📍 节点:\`${NODE_ALIAS}\`
🌐 地址:\`${IP_ADDR}\`${WARNING_MSG}
@@ -111,7 +208,7 @@ REPORT="🎯 *IP-Sentinel 深海声呐报告*
*🛡️ 欺诈雷达 (0为最优)*
• **Scamalytics:** \`${SCAM_SCORE}/100\`
• **AbuseIPDB:** \`${ABUSE_SCORE}/100\`
• **IPQuality:** \`${IPQS_SCORE}/100\`
• **IPQS:** \`${IPQS_SCORE}/100\`
• **IP2Location:** \`${IP2L_SCORE}/100\`
• **IPAPI 风险率:** \`${FRAUD_RISK}\`
@@ -127,13 +224,43 @@ REPORT="🎯 *IP-Sentinel 深海声呐报告*
• **25 端口出站:** ${P25_TEXT}
• **DNS 污染库:** 严重 \`${DNS_BLACK}\` | 轻微 \`${DNS_MARK}\`
_👉 [🔍 详细信用图谱直达 (Scamalytics)](https://scamalytics.com/ip/${TARGET_IP})_
_👉 [🔍 详细信用图谱直达 (Scamalytics)](https://scamalytics.com/ip/${LINK_IP})_
\`[SYSTEM_REPORT]|QUALITY|${NODE_NAME}|${SCAM_SCORE}|${RAW_NF_STAT}\`"
⏱️ \`${CURRENT_TIME}\` | ⚙️ \`v${LOCAL_VER}\`"
# 8. 直送指挥部
curl -s -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "parse_mode=Markdown" \
-d "disable_web_page_preview=true" \
-d "text=${REPORT}" >/dev/null
# [修复] 剥离显示层的 N/A确保传给 Master 趋势数据库的是纯数字 (无效则记为0)
SAFE_SCAM_SCORE=$(echo "$SCAM_SCORE" | tr -cd '0-9')
[ -z "$SAFE_SCAM_SCORE" ] && SAFE_SCAM_SCORE="0"
# [v4.0.2 扩容] 提取 Google(基于YouTube) 和 ChatGPT 的原生状态
RAW_GOOG_STAT="${RAW_YT_REG:-$RAW_YT_STAT}"
[ -z "$RAW_GOOG_STAT" ] && RAW_GOOG_STAT="未知"
RAW_GPT_STAT=$(echo "$JSON_DATA" | jq -r '.Media.ChatGPT.Status // "未知"' 2>/dev/null)
# [修复] 废除会导致中文 UTF-8 字节被劈裂(产生乱码 )的 awk 暴力截断。
# 原始状态文本极短(如"解锁"、"屏蔽"、"US"),只需洗掉隐形换行符即可安全传输。
S_GOOG=$(echo "$RAW_GOOG_STAT" | tr -d '\n\r ')
S_NF=$(echo "$RAW_NF_STAT" | tr -d '\n\r ')
S_GPT=$(echo "$RAW_GPT_STAT" | tr -d '\n\r ')
CB_DATA="svq|${NODE_NAME}|${SAFE_SCAM_SCORE}|${S_GOOG}|${S_NF}|${S_GPT}"
# 8. 挂载内联键盘并直送指挥部
JSON_PAYLOAD=$(jq -n \
--arg cid "$CHAT_ID" \
--arg txt "$REPORT" \
--arg cb "$CB_DATA" \
--arg cb_manage "manage:${NODE_NAME}" \
'{
chat_id: $cid,
text: $txt,
parse_mode: "Markdown",
disable_web_page_preview: true,
reply_markup: {
inline_keyboard: [
[{text: "📥 将本次体检录入趋势库", callback_data: $cb}],
[{text: "⚙️ 调出该节点控制台", callback_data: $cb_manage}]
]
}
}')
curl -s -X POST "${TG_API_URL}" -H "Content-Type: application/json" -d "$JSON_PAYLOAD" >/dev/null

View File

@@ -45,7 +45,8 @@ fi
log_msg() {
local TYPE=$1
local MSG=$2
local TIME=$(date "+%Y-%m-%d %H:%M:%S")
# [时区对齐] 强制无视本地时区,以绝对 UTC 时间生成日志时间戳
local TIME=$(date -u "+%Y-%m-%d %H:%M:%S UTC")
# [v3.4.0 核心] 提取当前配置中的版本锚点
local local_ver="${AGENT_VERSION:-未知}"

View File

@@ -36,7 +36,7 @@ log() {
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$level" "$module" "$REGION_CODE" "$msg")
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $core_msg" >> "$LOG_FILE"
echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] $core_msg" >> "$LOG_FILE"
# 强制推送到 Systemd Journal (如果系统支持)
if command -v logger >/dev/null 2>&1; then
@@ -50,7 +50,7 @@ export -f log
export CONFIG_FILE INSTALL_DIR
# 3. 防僵尸网络特征 (Cron Jitter) - 核心隐蔽逻辑
# 配合每 30 分钟的调度周期,将随机休眠控制在 0 到 180 秒内,彻底打散全球并发请求
# 配合每 20 分钟的调度周期,将随机休眠控制在 0 到 180 秒内,彻底打散全球并发请求
if [ -t 1 ]; then
log "SYSTEM" "INFO " "💻 检测到人工终端干预,跳过静默休眠,立即执行任务!"
else

View File

@@ -18,6 +18,22 @@ if [ -z "$TG_TOKEN" ] || [ -z "$CHAT_ID" ]; then
exit 0
fi
# ================== [v4.0.8 核心: 防并发风暴与 60 秒冷却机制] ==================
LOCK_FILE="${INSTALL_DIR}/core/.report_lock"
if [ -f "$LOCK_FILE" ]; then
LAST_RUN=$(cat "$LOCK_FILE" 2>/dev/null)
NOW=$(date +%s)
# 校验 LAST_RUN 是否为有效数字,并比对 60 秒冷却期
if [[ "$LAST_RUN" =~ ^[0-9]+$ ]]; then
if [ $((NOW - LAST_RUN)) -lt 60 ]; then
echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] [v${AGENT_VERSION:-未知}] [WARN ] [Report ] [SYSTEM] ⚠️ 战报请求过于频繁,触发 60 秒防并发风暴拦截。" >> "${INSTALL_DIR}/logs/sentinel.log"
exit 0
fi
fi
fi
echo $(date +%s) > "$LOCK_FILE"
# ==============================================================================
# 2. 节点元数据抓取 (v3.2.2 协议自适应与多级容灾版)
# [v3.5.2 核心: 引入双轨身份架构]
if [ -z "$NODE_NAME" ]; then
@@ -96,7 +112,7 @@ case "$REGION_CODE" in
*) FLAG="🌐" ;;
esac
# 3. 截取过去 24 小时的日志 (每天48次轮询,保留最新 1000 行足以覆盖单日战报)
# 3. 截取过去 24 小时的日志 (每天72次轮询,保留最新 1000 行足以覆盖单日战报)
LOG_CONTENT=$(tail -n 1000 "$LOG_FILE" 2>/dev/null)
if [ -z "$LOG_CONTENT" ]; then
@@ -164,7 +180,7 @@ else
MSG="$MSG
🕒 **最近执行快照 [${LAST_MOD:-"System"}]:**
时间: ${LAST_TIME:-"暂无数据"}
时间: ${LAST_TIME:-"暂无数据"} (节点本地)
结论: ${LAST_SCORE:-"暂无数据"}"
fi
@@ -174,6 +190,8 @@ fi
# ==========================================
# 从配置文件提取当前本地版本,若无则默认为未知
LOCAL_VER="${AGENT_VERSION:-未知}"
# [时区对齐] 强制获取当前绝对 UTC 时间,作为全局统一的战报落款
REPORT_UTC_TIME=$(date -u "+%Y-%m-%d %H:%M:%S UTC")
# 极轻量级探针: 抓取 GitHub 云端的 version.txt (超时 3 秒KV解析法)
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
@@ -183,6 +201,7 @@ REMOTE_VER=$(curl -s -m 3 "${REPO_RAW_URL}/version.txt" | grep "^AGENT_VERSION="
MSG="$MSG
----------------------------
🛡️ **系统引擎状态**
⏱️ 战报生成: \`${REPORT_UTC_TIME}\`
当前运行版本: \`v${LOCAL_VER}\`"
# 比对逻辑:如果成功抓到了远端版本,且和本地不一样
@@ -200,11 +219,24 @@ else
💡 *哨兵正在后台默默守护您的资产。*"
fi
# 5. 调用 API 推送 (接入安全网关)
# 5. 调用 API 推送 (接入安全网关,挂载交互式控制台按钮)
JSON_PAYLOAD=$(jq -n \
--arg cid "$CHAT_ID" \
--arg txt "$MSG" \
--arg cb "manage:${NODE_NAME}" \
'{
chat_id: $cid,
text: $txt,
parse_mode: "Markdown",
disable_web_page_preview: true,
reply_markup: {
inline_keyboard: [[{text: "⚙️ 调出该节点控制台", callback_data: $cb}]]
}
}')
RESPONSE=$(curl -s -m 10 -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "text=${MSG}" \
-d "parse_mode=Markdown")
-H "Content-Type: application/json" \
-d "$JSON_PAYLOAD")
if [[ "$RESPONSE" != *"\"ok\":true"* ]]; then
echo "❌ 战报发送失败API 响应: $RESPONSE" >> "${INSTALL_DIR}/logs/error.log"

View File

@@ -30,6 +30,8 @@ echo "========================================================"
echo "[1/4] 正在停止并删除 Systemd 服务..."
if command -v systemctl >/dev/null 2>&1; then
echo "💡 检测到 Systemd 环境,正在抹除 Systemd 服务单元..."
# [防死锁与走火修复] 先发送 SIGKILL 瞬间抹杀常驻守护进程,防止卡死或触发遗言
systemctl kill --signal=SIGKILL ip-sentinel-agent-daemon.service >/dev/null 2>&1 || true
systemctl disable --now ip-sentinel-runner.service ip-sentinel-runner.timer \
ip-sentinel-updater.service ip-sentinel-updater.timer \
ip-sentinel-report.service ip-sentinel-report.timer \
@@ -58,13 +60,30 @@ pkill -9 -f "updater.sh" >/dev/null 2>&1
pkill -9 -f "tg_report.sh" >/dev/null 2>&1
pkill -9 -f "mod_google.sh" >/dev/null 2>&1
pkill -9 -f "mod_trust.sh" >/dev/null 2>&1
pkill -9 -f "sentinel_scheduler.sh" >/dev/null 2>&1
# 3. 清除系统定时任务 (Cron)
echo "[3/4] 正在清理系统定时任务 (Cron)..."
if crontab -l >/dev/null 2>&1; then
crontab -l | grep -v "ip_sentinel" > /tmp/cron_backup
crontab /tmp/cron_backup
rm -f /tmp/cron_backup
# [终极安全防御] 直接使用管道流过滤并覆盖,不产生任何 /tmp 落地文件,杜绝劫持提权
crontab -l 2>/dev/null | grep -v "ip_sentinel" | crontab - >/dev/null 2>&1 || true
# ==========================================
# 🛑 [物理抹除] 彻底扫除 Alpine 系统的底层残留与双路径文件
# ==========================================
for CRON_FILE in "/var/spool/cron/crontabs/root" "/etc/crontabs/root"; do
if [ -f "$CRON_FILE" ]; then
grep -v "ip_sentinel" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
cat "${CRON_FILE}.tmp" > "$CRON_FILE" 2>/dev/null || true
rm -f "${CRON_FILE}.tmp" 2>/dev/null
fi
done
# 清理 OpenRC 开机启动项
rm -f /etc/local.d/ip_sentinel.start 2>/dev/null
rm -f /etc/local.d/ip_sentinel_scheduler.start 2>/dev/null
# 清理极端环境写在 /etc/profile 里的兜底启动项
if grep -q "sentinel_scheduler.sh" /etc/profile 2>/dev/null; then
sed -i '/sentinel_scheduler\.sh/d' /etc/profile 2>/dev/null || true
fi
# 4. 删除所有文件、日志与临时缓存
@@ -73,10 +92,6 @@ if [ -d "$INSTALL_DIR" ]; then
rm -rf "$INSTALL_DIR"
fi
# 拔除 /tmp 目录下的所有更新下载临时文件和 V1/V2 遗留的偏移量记录
rm -f /tmp/ip_sentinel_*.txt
rm -f /tmp/ip_sentinel_*.json
echo "========================================================"
echo "✅ 卸载彻底完成IP-Sentinel 已从您的系统中无痕移除。"
echo "💡 提示:如果安装时在防火墙放行了 Webhook 随机端口,请您按需手动关闭。"

View File

@@ -30,7 +30,8 @@ log() {
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$2" "$1" "$REGION_CODE" "$3")
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $core_msg" >> "$LOG_FILE"
# [时区对齐] 强制无视本地时区,以绝对 UTC 时间写入日志
echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] $core_msg" >> "$LOG_FILE"
# 强制推送到 Systemd Journal (如果系统支持)
if command -v logger >/dev/null 2>&1; then
@@ -138,10 +139,15 @@ fi
# ==========================================================
TMP_PROBE="/tmp/ip_sentinel_probe.sh"
$CURL_CMD "https://raw.githubusercontent.com/xykt/IPQuality/main/ip.sh" -o "$TMP_PROBE"
if [ -s "$TMP_PROBE" ]; then
# 🛡️ 供应链防毒:验证脚本内是否包含原作者特有签名,防止被墙重定向为 HTML
if [ -s "$TMP_PROBE" ] && grep -q "xykt" "$TMP_PROBE" 2>/dev/null; then
mv "$TMP_PROBE" "${INSTALL_DIR}/core/ip_probe.sh"
chmod +x "${INSTALL_DIR}/core/ip_probe.sh"
log "Updater" "INFO " "✅ 深海声呐底层探针 (ip_probe.sh) 源文件安全对齐"
else
log "Updater" "WARN " "❌ 探针源文件拉取受损或遭投毒劫持,已触发防砖机制,保留本地旧版本"
rm -f "$TMP_PROBE" 2>/dev/null
fi
# ==========================================================

View File

@@ -1,3 +1,53 @@
prince harry working royal
retirement
rebate
denver nuggets
rudy gobert
driver's license
nuggets
jessica biel justin timberlake ultimatum
qatar
thales
destroyer
nrl news latrell mitchell
heavy snow warning
the rookie dead ringer
ducks vs oilers
ivan soldo
uae vs oman
cheryl hines
deandre ayton
real estate market
weather brisbane
raptors vs cavaliers
galatasaray
multan sultans vs islamabad united
galatasaray vs fenerbahçe
torino vs inter
hearts fc
scottish premier league
mohsin khan
angkrish raghuvanshi
psl
magic vs pistons
celtic fc
peshawar zalmi vs lahore qalandars
angers vs psg
la liga
prem
premier league table
epl fixtures
premier league games
alex de minaur
sunderland vs nottm forest
real betis vs real madrid
sai sudharsan
jannik sinner
gt vs rcb
amd stock
carey mulligan
jermaine jackson
hulk hogan
coles
elon musk
ben roberts-smith
@@ -27,7 +77,6 @@ bayern munich
barcelona vs celta vigo
bournemouth vs leeds
leverkusen vs bayern
psl
burnley vs man city
elche vs atlético madrid
lsg vs rr
@@ -69,7 +118,6 @@ bundesliga
pl
afc cup
mars rover
celtic fc
bayern vs vfb stuttgart
bom radar
sydney weather
@@ -150,51 +198,3 @@ margot robbie
oscar piastri
formula 1
supercars championship
ufc
optus sport
telstra outage
kayo sports
domain real estate
realestate.com.au
seek jobs
gumtree
westpac login
anz internet banking
nab login
aldi catalogue
big w
target australia
the good guys
officeworks
dan murphys
bws
chemist warehouse
priceline
uber eats
menulog
dominos
centrelink login
medicare online
passport renewal
aec enrolment
agl energy
origin energy
stan
binge
9now
7plus
abc iview
hoyts cinemas
event cinemas
big bash league
the ashes
socceroos
bathurst 1000
booking.com
airbnb
webjet
bali weather
smartraveller
lotto results
powerball results
oz lotto

View File

@@ -1,3 +1,53 @@
shea theodore
nikola jokić
mark stone
naz reid
cameron johnson
dea
dylan guenther
jamal murray
euphoria cast
mlb bo bichette
明天的天氣
edmonton news
radko gudas
oil
jeffrey viel
boat
joel quenneville
evan bouchard
jada wallace
oilers
boston bruins
patrick corbin
avs vs sporting
peyton krebs
elena rybakina
shane doan
ja'kobe walter
mitch marner
radio-canada
golf
hurricanes vs senators
al ahli
the white house
turkish airlines
fa cup games
atlético madrid vs athletic club
tyree wilson
monic néron
nvidia
aryna sabalenka
lpga leaderboard
randy travis
execution by firing squad
nelly korda
leicester city vs millwall
asteroid
sunderland vs nottm forest
real betis vs real madrid
betis real madrid
napoli vs cremonese
gta 6
japon
padres vs rockies

View File

@@ -1,3 +1,53 @@
фридрих мерц
zdf-fernsehgarten
halberstadt
cathie wood
fabian güstrow
spencer jones
jean alesi
hilary duff
nhl playoffs
msci
1. mai
ronnie osullivan
loris karius
koningsdag 2026
ryan reynolds
julia stiles
saïd el mala
tag der arbeit
gesundheitspolitik
der bergdoktor
bulgarien
george clooney
jork
star citizen
donau
krassnitzer harald
buxtehude
chernobyl
avs sporting
running point
darmstadt
dahoam is dahoam
أتلتيكو مدريد ضد أتلتيك بيلباو
atlético madryt ath. bilbao
portugal
erling haaland
galatasaray fenerbahce
anna carina woitschack
nord bei nordwest
wil wheaton
christian lindner
kevin costner
samu haber
gillian anderson
peggy jerofke
rafael jódar
ernie dosio
bibi heinicke
denia
der alte blaue stunde
matthias ginter
ralf schmitz
maximilian eggestein
@@ -148,16 +198,3 @@ abschiebung
steuer
masters rory mcilroy
großglockner
news38
jessie cave
michael schulte
wetter frankfurt heute
bundesliga ergebnisse
aktuelle nachrichten deutschland
restaurant in der nähe
deutsche bahn fahrplan
urlaub buchen
rezept für kartoffelsalat
dax aktueller stand
apotheke notdienst frankfurt
günstige flüge

View File

@@ -1,3 +1,53 @@
nepotismo
instituto cervantes
airbus
tiempo en bilbao
el
el tiempo en granada
tiempo
spencer jones
encuesta
lili pink
meteocat
trail blazers - spurs
el tiempo hoy
clasificacion segunda
20minutos
internacional de bogotá - boyacá chicó
el tiempo en valencia
lakers vs rockets
fluminense - chapecoense
rockets - lakers
heraldo de aragón
víctor muñoz villanueva
de tapas por españa
milan
aitana sánchez gijón
clasificacion liga
palencia
milan vs juventus
marseille nice
cartagena fc
vivienda
hellas verona - lecce
marbella
alfonso vazquez mayoral fuente ymbro
bucaramanga - jaguares
toulouse - mónaco
eldense
nicolai budkov kjær
aryna sabalenka
jaqueline cristian
rafa jodar
samantha vallejo-nágera
ريال بتيس ضد الريال
nvidia
rafael jódar
jodar tenista
sunderland afc - nottingham forest
rb leipzig - fc union berlin
julián alvarez
stade brestois - lens
clasificación de primera división
javier hidalgo
cayetano martínez de irujo
@@ -26,7 +76,6 @@ macarena gómez
luis merlo
bournemouth vs leeds
racing de estrasburgo - niza
rafael jódar
burnley vs man city
alaska cantante
raúl gonzález blanco
@@ -47,7 +96,6 @@ laura moure
lens - toulouse
girona vs real betis
yuri berchiche
clasificacion liga
posiciones de la liga
resultados liga
lfp

View File

@@ -1,3 +1,52 @@
taylor swift
meteo amiens
meteo le mans
salle de bal
reine camilla
david hockney
jacques dutronc
franck thilliez
squamish
nasa
nba spurs portland
mourad zeghidi
maries au premier regard episode 10
tchad
meteofrance
meteo grenoble
film
meteo vannes
cnews direct
toulouse clermont
martin short
le diable s'habille en prada 2 sortie
gautier larsonneur
milan vs juventus
stanley tucci
avs sporting
lambert wilson
tochukwu nnadi
greenwood
jaqueline cristian
thomas ramos
om nice
bordeaux-bègles montpellier
drone
rochdale association football club
doctor who
c à vous c à vous
sabalenka
national 2 groupe a
lena situation
rafael jódar
mask singer
alex de minaur
oyonnax agen
lucie castets
napoli - cremonese
ligue1+
agnes lassalle
jean luc reichmann
m6
caitlyn jenner
star academy
@@ -149,9 +198,3 @@ meteo paris
actualités en direct
résultats ligue 1
pharmacie de garde
horaires sncf
recette crêpes
cac 40 en direct
acheter billet louvre
boulangerie autour de moi
carte vitale ameli

View File

@@ -1,3 +1,53 @@
粉嶺繞道
nuggets vs timberwolves
蔡卓妍
港 漂
suns vs thunder
鍾澍佳
萧正楠
金塊 對 灰狼
魔術 對 活塞
太陽 對 雷霆
港 人 北上
hsbc
何守信
謝賢
房協
rockets vs lakers
火箭 對 湖人
曾志偉
簡淑兒
北海道地震
莫 雷 拉
蔡一傑
車路士
羅志祥
自助餐
馮盈盈
無時空之戀
方力申
可嵐
切爾西 對 里茲聯
谷 婭 溦
曼城
印度
英超
利物浦
pl
arsenal vs newcastle
premier league standings
曼城 對 南安普敦
寒戰
米高積遜
jaafar jackson
nvda
吳業坤
麻疹
林盛斌
cuaca besok
明天的天氣
weather tomorrow
rthk
weather hong kong
天文台
hk observatory
@@ -5,7 +55,6 @@ observatory
csk vs mi
長沙灣
魔音女團
明天的天氣
球迷世界
天星銀行
game
@@ -21,7 +70,6 @@ weather
班來 對 曼城
埃爾切 對 馬德里競技
rosenior
jaafar jackson
艾納斯
liam rosenior
巴黎聖日耳曼 對 南特
@@ -29,7 +77,6 @@ chatgpt image 2
啟德醫院
李泳漢老婆
破產
weather tomorrow
繼承人
英皇群星演唱會
布浩榮
@@ -58,20 +105,16 @@ srh vs dc
麥當勞
首岸
中国商飞c919
pl
bundesliga
hailey bieber
德甲
cherki
now
曼城
now tv
al nassr
洪金寶
曼聯
車路士
切爾西 對 曼聯
英超
何沛珈
熱刺
tottenham vs brighton
@@ -115,7 +158,6 @@ nba直播
全民國家安全教育日
運輸署
liverpool vs psg
利物浦
barcelona
歐冠
馬德里競技 對 巴塞隆納

View File

@@ -1,10 +1,59 @@
村上宗隆
ゴー イントゥ スカイ
地球温暖化
文部科学省
カベポスター
奈良県
バナナマン日村
山本由伸
警視正
中国電力
jr九州
村田製作所
四谷大塚
外崎 修 汰
備蓄
日産 キックス 新型
ドナルド・トランプ
ニューヨーク
小谷昌太郎 イケパラ
東京エレクトロン
ミラン 対 ユヴェントス
宇連ダム 貯水率
櫻坂46
与沢翼
岩手県 大槌町 山林火災
谷原章介
端午
週間天気予報
トリノ 対 インテル
佐野海舟
アーセナル
高岡蒼佑
マンチェスター・シティfc
ゲンク 対 スタンダール
kick
chat gpt
hulu
nac 対 アヤックス
エプスタイン
arsenal đấu với newcastle
ベティス 対 rマドリード
dior
伊藤美来
フィギュア
玉置浩二
生田絵梨花
日本高野連会長辞任
anaheim
sbiグローバルアセットマネジメント
ストレンジャーシングス
石油
ios 26.4 2
ポケモンカード
シュトゥットガルト 対 フライブルク
ドラクエ スマグロ 攻略
ipl
kick
アコム
鈴木愛理
sox指数
@@ -28,7 +77,6 @@ sbi新生銀行 株価
ボーンマス 対 リーズ u
elche vs atlético madrid
レバークーゼン 対 バイエルン
dior
ソシエダ 対 ヘタフェ
サイメモリ
b リーグ 順位
@@ -117,7 +165,6 @@ wowow
新名神高速道路
わたせせいぞう
ピーチ航空
山本由伸
アレックス・ベシア
リバプール
champions league
@@ -151,4 +198,3 @@ man united vs leeds
最新のニュース 速報
ゴールド 相場 チャート
近くの静かなカフェ
円安 影響 生活

View File

@@ -1,3 +1,52 @@
채원빈
분식
위례신도시
박동혁
박용호
한화첨단소재
한상진
차승원
한국경제
효성중공업
최홍라
uae vs oman
mlb
부정승차
박하나
일본인
공천
한고은
우체국
sk증권
세리에 a
암호화폐
수지
새마을금고
사주
차두리
평택시 을
야닉 시너
정성호
첼시
psg
리그앙
arsenal đấu với newcastle
맨시티
man city đấu với southampton
아스널
arsenal vs newcastle
아스널 대 뉴캐슬
man city vs southampton
안보현
트와이스
s
엔비디아 주가
이경실
신발
하현상
김수희
gt vs rcb
amd 주가
왕다루
시그널
모하메드 살라

View File

@@ -1,3 +1,53 @@
anggota tentera
阿sa
掘金 - 森林狼
one championship
apple iphone foldable
太阳 - 雷霆
labour day
p1p plate
nuggets vs timberwolves
electronic invoicing
malaysian meteorological department
datuk seri aminuddin harun
court
bella astillah
today wordle hints
ezi ray 01
lakers
uae vs oman
rekod dunia
mayat
milan vs juventus
osasuna vs sevilla
estrela amadora vs porto
lockheed martin
galatasaray vs fenerbahçe
polis
torino vs inter
terengganu fc
angkrish raghuvanshi
dortmund vs sc freiburg
atlético madrid vs athletic club
fa cup games
แมนซิตี พบ เซาแธมป์ตัน
benfica vs moreirense
city
valencia vs girona
man city games
bayern vs barcelona
英超积分榜
angers vs psg
sunderland vs nottm forest
real betis lwn real madrid cf
napoli vs cremonese
real betis vs real madrid
perfect crown ep 5
siti mastura mohamad
jannik sinner
sai sudharsan
yaris cross hybrid
cretaceous kraken
rayo vallecano vs espanyol
dji lito x1
levante vs sevilla

20
data/keywords/kw_NG.txt Normal file
View File

@@ -0,0 +1,20 @@
nuggets vs timberwolves
suns vs thunder
magic vs pistons
ig
bybit
jack grealish
sanwo olu
saheed balogun
man u fc
live score today
tinubu
lagos weather
nigeria news
super eagles
naira exchange rate
davido
wizkid
burna boy
afcon
nollywood

View File

@@ -1,3 +1,52 @@
europese unie
florence pugh
concert golden earring ahoy
de telegraaf
openai
crypto insiders
stefano domenicali
brand emmeloord
loosdrecht
taylor swift
militair
emma heesters
luik-bastenaken-luik
luilakken koningsdag
rusland
shakira
car rental
112 leiden
taxi
michael
passengers
finale wie is de mol
bourtange
marseille - nice
unchosen
prinses
sylvester stallone
28 years later
programma koningsdag 2026
milan - juventus
aryna sabalenka
fortuna
curacao
atlético madrid - ath. bilbao
digid solvinity
baywatch
boy kemper
donyell malen
twente - nec
afc champions league
wesley sonck
arnold schwarzenegger
devil wears prada
jagiellonia białystok górnik zabrze
max verstappen redbull
mvv - top oss
energiecontract
real betis - real madrid
fc den bosch
maarten van rossem
jake paul
financiën

View File

@@ -1,3 +1,53 @@
诈骗
us-iran
flight
jeanette aw
jisoo
nuggets vs timberwolves
suns vs thunder
magic vs pistons
drug
jimmy kimmel
erika kirk
elon musk
hokkaido earthquake today
rockets vs lakers
labour day
angela palmares
76ers vs celtics
nba scores
chernobyl disaster
tengah garden residences
torino vs inter
dortmund vs sc freiburg
angkrish raghuvanshi
mohsin khan
running man
arsenal vs lyon
genoa vs como
kkr vs lsg
bwf
chelsea vs leeds
bologna vs roma
angers vs psg
giant octopus fossil
premier league standings
apple iphone fold
arsenal vs newcastle
man city vs southampton
bundesliga
israel iran war
freddie woodman
sunderland vs nottm forest
real betis vs real madrid
anne hathaway
michael jackson
sai sudharsan
madrid open
amd
gt vs rcb
ijooz
raghav chadha
darren wang
mukesh choudhary
danish malewar
@@ -22,9 +72,7 @@ leverkusen vs bayern
burnley vs man city
elche vs atlético madrid
psg vs nantes
michael jackson
al-nassr vs al ahli
mohsin khan
changi
rr vs lsg
primary school
@@ -150,10 +198,3 @@ asia flights cancelled delayed
singapore weather forecast
mrt map singapore
straitstimes breaking news
cpf board login
hdb bto launch updates
best chicken rice near me
public holidays sg
singpass login portal
changi airport flight status
iras tax filing

View File

@@ -1,3 +1,53 @@
spencer jones
張凌赫
山本由伸
陳德修
國巨
台玻
俠 盜 獵 車手 vi
晶豪科
無限城
謝淑薇
台中停電
公務員
停電
hito 流行音樂獎
國際珍奶日
台積電 內 鬼
日圓
佳能
聯電 股東 會 紀念品
張雪機車
航空
暴龍 對 騎士
王苡丞
遊戲
chelsea đấu với leeds
เชลซี พบ ลีดส์
聯發科技
詹姆士
田麗
token
兵工廠
魔術 對 活塞
arsenal đấu với newcastle
t.o.p.
吸血鬼爬行者
足總盃
arsenal vs newcastle
man city đấu với southampton
消費券
6187
cpo概念股
anaheim
iu
山口智子
蔡依珊
林岱安
michael jackson 電影
行動電源
地震
地震速報
宋祖兒
porter
謝京穎
@@ -21,8 +71,6 @@ mrvl
女警陳芊雯
廢死聯盟
西甲
地震
地震速報
台灣積體電路製造
高頻寬 記憶 體
戴奧辛
@@ -61,7 +109,6 @@ earth day
rklb
amd stock
宋仲基
兵工廠
德甲
塞爾提克 對 76人
justin bieber 演唱會

View File

@@ -1,3 +1,51 @@
alexey mordashov
ella langley
good morning
mortgage rates
wren kitchens
weather birmingham
horoscope
nba scores
nhl scores
nuggets vs timberwolves
liverpool weather
todays weather
playstation plus
manchester weather
wordle hint
everton f.c.
dvla
snooker results
sports
delivery
ronnie o'sullivan
janet cleverly councillor reprimanded
criminal record
mark selby
avs vs sporting
david attenborough
juventus
elena rybakina
eric bana
roman kemp
house fire wolverhampton
paul merson
is scarlett moffatt pregnant
man city fixtures
scarlets vs bulls
bankruptcy
monaco fc
jaqueline cristian
stock market
napoli
alex de minaur
tigers vs hull fc
edinburgh vs sharks
mark williams snooker
alex sinclair israeli police detention
st. johnstone vs raith rovers
mo farah
newcastle vs bristol
tbilisi
connor storrie
georgia
@@ -63,7 +111,6 @@ porto vs tondela
santos vs fluminense
martin brundle lost f1 seat
keegan bradley
david attenborough
antoni kowalski
kezia dugdale
car
@@ -151,11 +198,3 @@ may bank holiday 2026
toto wolff
london weather today
bbc news latest
premier league fixtures
tesco near me
tube map london
uk bank holidays
royal family news
how to make english tea
nhs symptom checker
property for sale in london

View File

@@ -1,3 +1,53 @@
shea theodore
dodgers game today
munetaka murakami
dodgers score
joe ingles
owensboro weather
nhl overtime rules
kyle tucker
pete fairbanks
bank
fabio jackson
ucla
housing prices
real estate
post malone
ducks game tonight
flor vigna
lebron james
bronny james
austin shooting
arthur rinderknech
avs vs sporting
elena rybakina
chris sale
bruins
sabres game
corinthians vs vasco
christian walker
where to watch new york yankees vs houston astros
gladiator ii
hurricanes vs senators
jalen duren
keegan akin
billy schrauth
caleb durbin
thunder vs suns
max bredeson
wednesday, season 3
demonte capehart
karoline leavitt maternity leave
alex de minaur
rafael jodar
adam levine face
howard frankland bridge
vibrio vulnificus new york waters
stade brestois - lens
moustapha thiam
us asylum seeker border reopening
sunderland vs nottm forest
leicester city vs millwall
brandon marsh
psv vs pec zwolle
daniel merida aguilar
@@ -29,7 +79,6 @@ ludwig kaiser
edina shooting
atalanta - lazio
barcelona vs celta vigo
rafael jodar
rivian r2
pick 4
aoc
@@ -149,17 +198,3 @@ toronto
sydney
paris
tokyo
delhi
sykkuno drama
Los Angeles weather today
S&P 500 stock chart
local coffee shops near me
latest tech news
California traffic updates
AI startups in Silicon ValleySan Jose weather this weekend
Silicon Valley tech news
best tacos in San Jose
Apple park visitor center hours
Seattle Weather
Las Vegas strip
Charlotte Hornets

View File

@@ -1,7 +1,55 @@
cà phê
one ui 8.5
nguyễn huy hoàng
dự án nuôi em
đơn vị sự nghiệp công lập
nợ xấu
bộ trưởng bộ giáo dục và đào tạo việt nam
thành phố trực thuộc trung ương
âm vang tổ quốc
jennie
charlie nguyễn
nanaimoteuthis
cảng
vneid
sri lanka
công nhân
hội đồng giám mục việt nam
an ninh kinh tế
kfc
đội tuyển bóng chuyền nữ quốc gia việt nam
juventus
milan đấu với juventus
villarreal đấu với celta
osasuna vs sevilla
galatasaray
michael jackson
sevilla
polymarket
mật ngữ kỷ
osasuna đấu với sevilla
atlético madrid đấu với ath. bilbao
erling haaland
lịch thi đấu man city
toulouse đấu với monaco
mc vs
đông anh
al ahli
man city
chung cư
napoli
sunderland đấu với nottm forest
betis đấu với real madrid
napoli đấu với cremonese
leipzig đấu với union berlin
sunderland
mẫu iphone 18
oppo find x9 ultra
xem phim
andoni iraola
stuttgart đấu với freiburg
levante sevilla
giao dịch tài chính
sevilla
rayo đấu với espanyol
levante đấu với sevilla
bong ma hanh phuc
@@ -25,7 +73,6 @@ burnley vs man city
bayern munich
atalanta đấu với lazio
barcelona đấu với celta
mc vs
psg nantes
leverkusen đấu với bayern
elche atlético madrid
@@ -69,7 +116,6 @@ juventus đấu với bologna
gladbach đấu với mainz
twitch
psg đấu với lyon
juventus
ligue 1
trận đấu ngoại hạng anh
chelsea đấu với man utd
@@ -79,7 +125,6 @@ epl
iem rio 2026
tot
tập đoàn gelex
napoli
đường ray
inter
inter đấu với cagliari
@@ -90,7 +135,6 @@ fenerbahçe đấu với rizespor
como
como vs
thẻ đỏ
al ahli
porto vs
crystal palace
porto

View File

@@ -304,6 +304,20 @@
"name": "Seattle (西雅图)"
}
]
},
{
"id": "TX",
"name": "Texas (得克萨斯州)",
"cities": [
{
"id": "Dallas",
"name": "Dallas (达拉斯)"
},
{
"id": "Houston",
"name": "Houston (休斯顿)"
}
]
}
]
},
@@ -392,6 +406,29 @@
]
}
]
},
{
"id": "AFRICA",
"name": "非洲战区 (Africa)",
"countries": [
{
"id": "NG",
"name": "Nigeria (尼日利亚)",
"keyword_file": "kw_NG.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Lagos",
"name": "Lagos (拉各斯)"
}
]
}
]
}
]
}
]
}

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-04-24/abc-weekly-news-quiz-april-24/106596462",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-24/ndis-participants-community-support-fears-government-changes/106596958",
"https://www.abc.net.au/news/2026-04-24/uk-braces-for-prospect-of-sixth-pm-in-seven-years/106599990",
"https://www.abc.net.au/news/2026-04-24/the-legacy-of-sikh-soldiers-anzac-day/106593346",
"https://www.abc.net.au/news/2026-04-24/tasmania-police-sergeant-used-internal-system-to-monitor-wife/106593204",
"https://www.abc.net.au/news/2026-04-24/jane-fonda-importance-in-developing-fitness-industry/106535102",
"https://www.abc.net.au/news/2026-04-24/viva-energy-boss-tell-alan-kohler-need-more-oil-refineries-fuel/106596864",
"https://www.commbank.com.au/",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-24/iran-war-live-updates-us-shoot-kill-hormuz/106598082",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-04-24/power-price-warning-over-proposed-changes-to-tax-laws/106587928",
"https://www.abc.net.au/news/2026-04-24/charts-paint-worrying-picture-global-fertiliser-prices/106590152",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-24/south-china-sea-state-funded-fishing-boat-militia/106570054",
"https://www.abc.net.au/news/2026-04-24/baby-boomers-labor-generational-inequality-federal-budget-ndis/106582640",
"https://www.woolworths.com.au/",
"https://www.ato.gov.au/",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/nedra-talley-ross-of-the-ronettes-dies-aged-80/106615604",
"https://www.abc.net.au/news/2026-04-28/qld-cfmeu-inquiry-grace-grace-legal-representation/106615358",
"https://www.abc.net.au/news/2026-04-28/thales-loses-out-strikemaster-missile-contract/106615362",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-04-24/fuel-price-supply-explainer/106593698",
"https://www.abc.net.au/news/2026-04-23/nt-inquest-woman-darwin-dv-shelter-death-police-child-safety/106595670",
"https://www.abc.net.au/news/2026-04-24/anzac-day-2026-public-holiday-australia-states/106583304"
"https://www.ato.gov.au/",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-28/global-military-spending-hits-record-high-how-countries-rank/106611800",
"https://www.coles.com.au/",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-28/tasmanian-education-union-teacher-pay-deal-violence-workload/106614778",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-28/living-on-country-respectfully/106414024",
"https://www.abc.net.au/news/2026-04-28/rock-climber-dies-after-falling-at-mount-arapiles-organ-pipes/106614660",
"https://www.abc.net.au/news/2026-04-28/sustainable-alternative-shoyu-tai-sushi-plastic-soy-sauce-fish/106596352",
"https://www.abc.net.au/news/2026-04-28/rebel-wilson-gives-evidence-in-court-the-deb-defamation-case/106614508",
"https://www.abc.net.au/news/2026-04-28/sa-independent-review-of-sa-election/106614604",
"https://www.abc.net.au/news/2026-04-28/james-paterson-coalition-says-stealth-bombers-aukus-stop-gap/106615556",
"https://www.abc.net.au/news/2026-04-28/nsw-womens-origin-tiana-penitani-gray-position-preview/106615340",
"https://www.bom.gov.au/",
"https://www.bunnings.com.au/",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/nsw-changes-opal-card-public-transport-digital-accounts/106615510",
"https://www.abc.net.au/news/2026-04-28/overseas-tourist-drowns-indijup-spa-near-yallingup/106615098",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-28/suspect-white-house-correspondents-dinner-shooting-charged-trump/106614610"
],
"static_urls": [
"https://my.gov.au/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.abc.net.au/news/2026-04-28/qld-cfmeu-inquiry-grace-grace-legal-representation/106615358",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-04-24/power-price-warning-over-proposed-changes-to-tax-laws/106587928",
"https://www.abc.net.au/news/2026-04-24/jane-fonda-importance-in-developing-fitness-industry/106535102",
"https://www.abc.net.au/news/2026-04-24/abc-weekly-news-quiz-april-24/106596462",
"https://www.amazon.com.au/",
"https://www.ato.gov.au/",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-04-24/tasmania-police-sergeant-used-internal-system-to-monitor-wife/106593204",
"https://www.abc.net.au/news/2026-04-24/the-legacy-of-sikh-soldiers-anzac-day/106593346",
"https://www.abc.net.au/news/2026-04-24/fuel-price-supply-explainer/106593698",
"https://www.abc.net.au/news/2026-04-23/nt-inquest-woman-darwin-dv-shelter-death-police-child-safety/106595670",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-24/anzac-day-2026-public-holiday-australia-states/106583304",
"https://my.gov.au/",
"https://www.realestate.com.au/",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-24/ndis-participants-community-support-fears-government-changes/106596958",
"https://www.abc.net.au/news/2026-04-24/iran-war-live-updates-us-shoot-kill-hormuz/106598082",
"https://www.abc.net.au/news/2026-04-24/baby-boomers-labor-generational-inequality-federal-budget-ndis/106582640",
"https://www.abc.net.au/news/2026-04-24/viva-energy-boss-tell-alan-kohler-need-more-oil-refineries-fuel/106596864",
"https://www.abc.net.au/news/2026-04-24/south-china-sea-state-funded-fishing-boat-militia/106570054",
"https://www.abc.net.au/news/2026-04-28/sa-independent-review-of-sa-election/106614604",
"https://www.abc.net.au/news/2026-04-28/global-military-spending-hits-record-high-how-countries-rank/106611800",
"https://www.abc.net.au/news/2026-04-28/rebel-wilson-gives-evidence-in-court-the-deb-defamation-case/106614508",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-04-28/overseas-tourist-drowns-indijup-spa-near-yallingup/106615098",
"https://www.abc.net.au/news/2026-04-28/sustainable-alternative-shoyu-tai-sushi-plastic-soy-sauce-fish/106596352",
"https://www.abc.net.au/news/2026-04-28/nsw-womens-origin-tiana-penitani-gray-position-preview/106615340",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-28/nedra-talley-ross-of-the-ronettes-dies-aged-80/106615604",
"https://www.woolworths.com.au/",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/rock-climber-dies-after-falling-at-mount-arapiles-organ-pipes/106614660",
"https://www.abc.net.au/news/2026-04-28/suspect-white-house-correspondents-dinner-shooting-charged-trump/106614610",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-24/uk-braces-for-prospect-of-sixth-pm-in-seven-years/106599990",
"https://www.abc.net.au/news/2026-04-24/charts-paint-worrying-picture-global-fertiliser-prices/106590152"
"https://www.abc.net.au/news/2026-04-28/tasmanian-education-union-teacher-pay-deal-violence-workload/106614778",
"https://www.abc.net.au/news/2026-04-28/thales-loses-out-strikemaster-missile-contract/106615362",
"https://www.abc.net.au/news/2026-04-28/living-on-country-respectfully/106414024",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-28/james-paterson-coalition-says-stealth-bombers-aukus-stop-gap/106615556",
"https://www.abc.net.au/news/2026-04-28/nsw-changes-opal-card-public-transport-digital-accounts/106615510",
"https://www.seek.com.au/",
"https://www.amazon.com.au/",
"https://www.ato.gov.au/"
],
"static_urls": [
"https://my.gov.au/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.abc.net.au/news/2026-04-24/baby-boomers-labor-generational-inequality-federal-budget-ndis/106582640",
"https://www.abc.net.au/news/2026-04-24/tasmania-police-sergeant-used-internal-system-to-monitor-wife/106593204",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-24/iran-war-live-updates-us-shoot-kill-hormuz/106598082",
"https://www.abc.net.au/news/2026-04-24/ndis-participants-community-support-fears-government-changes/106596958",
"https://www.abc.net.au/news/2026-04-24/charts-paint-worrying-picture-global-fertiliser-prices/106590152",
"https://www.ato.gov.au/",
"https://www.abc.net.au/news/2026-04-24/the-legacy-of-sikh-soldiers-anzac-day/106593346",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-04-24/jane-fonda-importance-in-developing-fitness-industry/106535102",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-24/viva-energy-boss-tell-alan-kohler-need-more-oil-refineries-fuel/106596864",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-24/fuel-price-supply-explainer/106593698",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-28/james-paterson-coalition-says-stealth-bombers-aukus-stop-gap/106615556",
"https://www.abc.net.au/news/2026-04-28/suspect-white-house-correspondents-dinner-shooting-charged-trump/106614610",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-24/anzac-day-2026-public-holiday-australia-states/106583304",
"https://www.abc.net.au/news/2026-04-24/power-price-warning-over-proposed-changes-to-tax-laws/106587928",
"https://www.abc.net.au/news/2026-04-23/nt-inquest-woman-darwin-dv-shelter-death-police-child-safety/106595670",
"https://www.abc.net.au/news/2026-04-24/abc-weekly-news-quiz-april-24/106596462",
"https://my.gov.au/",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-04-24/south-china-sea-state-funded-fishing-boat-militia/106570054",
"https://www.abc.net.au/news/2026-04-28/rock-climber-dies-after-falling-at-mount-arapiles-organ-pipes/106614660",
"https://www.abc.net.au/news/2026-04-28/sa-independent-review-of-sa-election/106614604",
"https://www.abc.net.au/news/2026-04-28/tasmanian-education-union-teacher-pay-deal-violence-workload/106614778",
"https://www.bom.gov.au/",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-28/nsw-changes-opal-card-public-transport-digital-accounts/106615510",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-28/nsw-womens-origin-tiana-penitani-gray-position-preview/106615340",
"https://www.abc.net.au/news/2026-04-28/overseas-tourist-drowns-indijup-spa-near-yallingup/106615098",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-28/rebel-wilson-gives-evidence-in-court-the-deb-defamation-case/106614508",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-04-24/uk-braces-for-prospect-of-sixth-pm-in-seven-years/106599990"
"https://www.abc.net.au/news/2026-04-28/qld-cfmeu-inquiry-grace-grace-legal-representation/106615358",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-04-28/sustainable-alternative-shoyu-tai-sushi-plastic-soy-sauce-fish/106596352",
"https://www.abc.net.au/news/2026-04-28/nedra-talley-ross-of-the-ronettes-dies-aged-80/106615604",
"https://www.abc.net.au/news/2026-04-28/living-on-country-respectfully/106414024",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/global-military-spending-hits-record-high-how-countries-rank/106611800",
"https://www.abc.net.au/news/2026-04-28/thales-loses-out-strikemaster-missile-contract/106615362"
],
"static_urls": [
"https://my.gov.au/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.woolworths.com.au/",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-04-24/viva-energy-boss-tell-alan-kohler-need-more-oil-refineries-fuel/106596864",
"https://www.abc.net.au/news/2026-04-24/south-china-sea-state-funded-fishing-boat-militia/106570054",
"https://www.abc.net.au/news/2026-04-24/ndis-participants-community-support-fears-government-changes/106596958",
"https://www.abc.net.au/news/2026-04-23/nt-inquest-woman-darwin-dv-shelter-death-police-child-safety/106595670",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/rebel-wilson-gives-evidence-in-court-the-deb-defamation-case/106614508",
"https://www.abc.net.au/news/2026-04-28/sustainable-alternative-shoyu-tai-sushi-plastic-soy-sauce-fish/106596352",
"https://www.ato.gov.au/",
"https://www.abc.net.au/news/2026-04-24/power-price-warning-over-proposed-changes-to-tax-laws/106587928",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-24/abc-weekly-news-quiz-april-24/106596462",
"https://www.abc.net.au/news/2026-04-24/uk-braces-for-prospect-of-sixth-pm-in-seven-years/106599990",
"https://www.abc.net.au/news/2026-04-24/anzac-day-2026-public-holiday-australia-states/106583304",
"https://www.abc.net.au/news/2026-04-24/jane-fonda-importance-in-developing-fitness-industry/106535102",
"https://www.abc.net.au/news/2026-04-24/fuel-price-supply-explainer/106593698",
"https://www.abc.net.au/news/2026-04-24/the-legacy-of-sikh-soldiers-anzac-day/106593346",
"https://www.bom.gov.au/",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-04-24/baby-boomers-labor-generational-inequality-federal-budget-ndis/106582640",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-28/tasmanian-education-union-teacher-pay-deal-violence-workload/106614778",
"https://www.coles.com.au/",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-24/charts-paint-worrying-picture-global-fertiliser-prices/106590152",
"https://www.abc.net.au/news/2026-04-24/tasmania-police-sergeant-used-internal-system-to-monitor-wife/106593204",
"https://www.abc.net.au/news/2026-04-24/iran-war-live-updates-us-shoot-kill-hormuz/106598082",
"https://www.coles.com.au/"
"https://www.abc.net.au/news/2026-04-28/nsw-changes-opal-card-public-transport-digital-accounts/106615510",
"https://www.abc.net.au/news/2026-04-28/suspect-white-house-correspondents-dinner-shooting-charged-trump/106614610",
"https://www.abc.net.au/news/2026-04-28/sa-independent-review-of-sa-election/106614604",
"https://www.abc.net.au/news/2026-04-28/qld-cfmeu-inquiry-grace-grace-legal-representation/106615358",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/",
"https://www.bom.gov.au/",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-28/james-paterson-coalition-says-stealth-bombers-aukus-stop-gap/106615556",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/global-military-spending-hits-record-high-how-countries-rank/106611800",
"https://www.abc.net.au/news/2026-04-28/nedra-talley-ross-of-the-ronettes-dies-aged-80/106615604",
"https://www.abc.net.au/news/2026-04-28/rock-climber-dies-after-falling-at-mount-arapiles-organ-pipes/106614660",
"https://www.abc.net.au/news/2026-04-28/nsw-womens-origin-tiana-penitani-gray-position-preview/106615340",
"https://www.abc.net.au/news/2026-04-28/thales-loses-out-strikemaster-missile-contract/106615362",
"https://www.abc.net.au/news/2026-04-28/living-on-country-respectfully/106414024",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-28/overseas-tourist-drowns-indijup-spa-near-yallingup/106615098"
],
"static_urls": [
"https://my.gov.au/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.abc.net.au/news/2026-04-24/ndis-participants-community-support-fears-government-changes/106596958",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-24/power-price-warning-over-proposed-changes-to-tax-laws/106587928",
"https://www.abc.net.au/news/2026-04-24/viva-energy-boss-tell-alan-kohler-need-more-oil-refineries-fuel/106596864",
"https://www.abc.net.au/news/2026-04-24/baby-boomers-labor-generational-inequality-federal-budget-ndis/106582640",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-24/charts-paint-worrying-picture-global-fertiliser-prices/106590152",
"https://www.abc.net.au/news/2026-04-24/tasmania-police-sergeant-used-internal-system-to-monitor-wife/106593204",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-04-24/abc-weekly-news-quiz-april-24/106596462",
"https://www.seek.com.au/",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-24/south-china-sea-state-funded-fishing-boat-militia/106570054",
"https://www.abc.net.au/news/2026-04-24/jane-fonda-importance-in-developing-fitness-industry/106535102",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-24/anzac-day-2026-public-holiday-australia-states/106583304",
"https://www.abc.net.au/news/2026-04-23/nt-inquest-woman-darwin-dv-shelter-death-police-child-safety/106595670",
"https://www.abc.net.au/news/2026-04-24/fuel-price-supply-explainer/106593698",
"https://www.abc.net.au/news/2026-04-24/uk-braces-for-prospect-of-sixth-pm-in-seven-years/106599990",
"https://www.abc.net.au/news/2026-04-24/the-legacy-of-sikh-soldiers-anzac-day/106593346",
"https://www.abc.net.au/news/2026-04-28/james-paterson-coalition-says-stealth-bombers-aukus-stop-gap/106615556",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-04-24/iran-war-live-updates-us-shoot-kill-hormuz/106598082",
"https://www.abc.net.au/news/2026-04-28/rock-climber-dies-after-falling-at-mount-arapiles-organ-pipes/106614660",
"https://www.abc.net.au/news/2026-04-28/sustainable-alternative-shoyu-tai-sushi-plastic-soy-sauce-fish/106596352",
"https://www.abc.net.au/news/2026-04-28/nsw-womens-origin-tiana-penitani-gray-position-preview/106615340",
"https://www.abc.net.au/news/2026-04-28/qld-cfmeu-inquiry-grace-grace-legal-representation/106615358",
"https://www.seek.com.au/",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-04-28/rebel-wilson-gives-evidence-in-court-the-deb-defamation-case/106614508",
"https://www.abc.net.au/news/2026-04-28/global-military-spending-hits-record-high-how-countries-rank/106611800",
"https://www.realestate.com.au/",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-04-28/thales-loses-out-strikemaster-missile-contract/106615362",
"https://www.ato.gov.au/",
"https://www.abc.net.au/news/2026-04-28/suspect-white-house-correspondents-dinner-shooting-charged-trump/106614610",
"https://www.abc.net.au/news/2026-04-28/tasmanian-education-union-teacher-pay-deal-violence-workload/106614778",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-04-28/nedra-talley-ross-of-the-ronettes-dies-aged-80/106615604",
"https://www.bunnings.com.au/",
"https://www.commbank.com.au/"
"https://www.abc.net.au/news/2026-04-28/overseas-tourist-drowns-indijup-spa-near-yallingup/106615098",
"https://www.abc.net.au/news/2026-04-28/living-on-country-respectfully/106414024",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-04-28/nsw-changes-opal-card-public-transport-digital-accounts/106615510",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-04-28/sa-independent-review-of-sa-election/106614604"
],
"static_urls": [
"https://my.gov.au/",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.cbc.ca/news/canada/vegetable-prices-canada-9.7173027?cmp=rss",
"https://www.rbcroyalbank.com/",
"https://www.theweathernetwork.com/ca",
"https://www.cbc.ca/news/canada/british-columbia/majcher-foreign-influence-china-9.7179099?cmp=rss",
"https://www.cbc.ca/news/world/white-house-correspondents-dinner-shooting-conspiracy-theories-9.7179424?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/dean-penney-trial-april-27-9.7178935?cmp=rss",
"https://www.cbc.ca/player/play/9.7179551?cmp=rss",
"https://www.cbc.ca/news/canada/toronto/opp-fatal-motorcycle-crash-highway-401-cobourg-9.7179495?cmp=rss",
"https://www.cbc.ca/news/business/rogers-communications-staff-buyouts-9.7178929?cmp=rss",
"https://www.cbc.ca/news/canada/edmonton/alberta-referendum-website-complaint-immigration-9.7178022?cmp=rss",
"https://www.canada.ca/en.html",
"https://www.cbc.ca/news/entertainment/the-devil-wears-prada-2-photo-scroller-9.7174459?cmp=rss",
"https://www.cbc.ca/news/canada/ottawa/4-day-office-return-for-global-affairs-canada-workers-delayed-due-to-space-issues-9.7174828?cmp=rss",
"https://www.cbc.ca/news/canada/manitoba/blizzard-warning-freezing-rain-storm-manitoba-9.7174365?cmp=rss",
"https://www.cbc.ca/news/world/ntsb-laguardia-crash-preliminary-report-fire-truck-stop-stop-stop-9.7175074?cmp=rss",
"https://www.cbc.ca/news/canada/flight-cancellations-strait-of-hormuz-9.7173742?cmp=rss",
"https://www.cbc.ca/news/politics/cbc-president-marie-philippe-bouchard-committee-9.7174302?cmp=rss",
"https://www.cbc.ca/news/world/lebanon-paramedics-strike-9.7173448?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/andrea-barbour-bullying-9.7174865?cmp=rss",
"https://www.cbc.ca/radio/asithappens/onion-infowars-laughs-conspiracies-9.7179144?cmp=rss",
"https://www.canadapost-postescanada.ca/",
"https://www.cbc.ca/news/world/king-arrives-us-visit-trump-9.7178922?cmp=rss",
"https://www.cbc.ca/news/world/nathan-chasing-horse-life-sentence-sexual-assault-9.7179404?cmp=rss",
"https://www.cbc.ca/news/politics/sovereign-wealth-fund-carney-major-projects-9.7178238?cmp=rss",
"https://www.theweathernetwork.com/ca",
"https://www.td.com/",
"https://www.cbc.ca/sports/hockey/pwhl/pwhl-notebook-april27-2026-9.7179183?cmp=rss",
"https://www.cra-arc.gc.ca/",
"https://www.cbc.ca/news/canada/manitoba/winnipeg-woman-fall-hole-9.7178484?cmp=rss",
"https://www.cbc.ca/news/business/travel-u-s-canadians-domestic-overseas-9.7176323?cmp=rss",
"https://www.utoronto.ca/",
"https://www.amazon.ca/",
"https://www.cbc.ca/news/politics/carney-u-s-ambassador-wiseman-9.7174897?cmp=rss",
"https://www.cbc.ca/news/politics/mark-carney-ethics-blind-trust-9.7174747?cmp=rss",
"https://www.cbc.ca/news/entertainment/heated-rivalry-peabody-9.7174978?cmp=rss",
"https://www.canadapost-postescanada.ca/",
"https://www.td.com/",
"https://www.cbc.ca/news/politics/carney-liquor-ban-9.7174723?cmp=rss",
"https://www.cbc.ca/news/canada/montreal/smell-montreal-fire-9.7174378?cmp=rss",
"https://www.cra-arc.gc.ca/",
"https://www.cbc.ca/news/canada/nova-scotia/nova-scotia-mental-health-crisis-9.7171701?cmp=rss"
"https://www.rbcroyalbank.com/",
"https://www.cbc.ca/news/canada/british-columbia/baileys-law-kelowna-3rd-reading-senate-9.7179170?cmp=rss"
],
"static_urls": [
"https://www.canada.ca/en.html",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.cbc.ca/news/canada/nova-scotia/nova-scotia-mental-health-crisis-9.7171701?cmp=rss",
"https://www.utoronto.ca/",
"https://www.amazon.ca/",
"https://www.cbc.ca/news/politics/mark-carney-ethics-blind-trust-9.7174747?cmp=rss",
"https://www.cbc.ca/news/canada/flight-cancellations-strait-of-hormuz-9.7173742?cmp=rss",
"https://www.cbc.ca/news/entertainment/the-devil-wears-prada-2-photo-scroller-9.7174459?cmp=rss",
"https://www.rbcroyalbank.com/",
"https://www.cbc.ca/news/canada/montreal/smell-montreal-fire-9.7174378?cmp=rss",
"https://www.canada.ca/en.html",
"https://www.cra-arc.gc.ca/",
"https://www.cbc.ca/news/canada/manitoba/blizzard-warning-freezing-rain-storm-manitoba-9.7174365?cmp=rss",
"https://www.cbc.ca/news/politics/cbc-president-marie-philippe-bouchard-committee-9.7174302?cmp=rss",
"https://www.cbc.ca/news/politics/carney-liquor-ban-9.7174723?cmp=rss",
"https://www.cbc.ca/news/world/ntsb-laguardia-crash-preliminary-report-fire-truck-stop-stop-stop-9.7175074?cmp=rss",
"https://www.cbc.ca/news/canada/ottawa/4-day-office-return-for-global-affairs-canada-workers-delayed-due-to-space-issues-9.7174828?cmp=rss",
"https://www.td.com/",
"https://www.cbc.ca/news/canada/vegetable-prices-canada-9.7173027?cmp=rss",
"https://www.cbc.ca/news/world/lebanon-paramedics-strike-9.7173448?cmp=rss",
"https://www.theweathernetwork.com/ca",
"https://www.canadapost-postescanada.ca/",
"https://www.cbc.ca/news/politics/carney-u-s-ambassador-wiseman-9.7174897?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/andrea-barbour-bullying-9.7174865?cmp=rss",
"https://www.cbc.ca/news/entertainment/heated-rivalry-peabody-9.7174978?cmp=rss"
"https://www.cbc.ca/news/politics/sovereign-wealth-fund-carney-major-projects-9.7178238?cmp=rss",
"https://www.cbc.ca/news/canada/british-columbia/majcher-foreign-influence-china-9.7179099?cmp=rss",
"https://www.cbc.ca/news/world/white-house-correspondents-dinner-shooting-conspiracy-theories-9.7179424?cmp=rss",
"https://www.cbc.ca/news/world/nathan-chasing-horse-life-sentence-sexual-assault-9.7179404?cmp=rss",
"https://www.cbc.ca/radio/asithappens/onion-infowars-laughs-conspiracies-9.7179144?cmp=rss",
"https://www.theweathernetwork.com/ca",
"https://www.cbc.ca/news/canada/british-columbia/baileys-law-kelowna-3rd-reading-senate-9.7179170?cmp=rss",
"https://www.cbc.ca/player/play/9.7179551?cmp=rss",
"https://www.utoronto.ca/",
"https://www.cbc.ca/sports/hockey/pwhl/pwhl-notebook-april27-2026-9.7179183?cmp=rss",
"https://www.cbc.ca/news/canada/toronto/opp-fatal-motorcycle-crash-highway-401-cobourg-9.7179495?cmp=rss",
"https://www.cbc.ca/news/canada/manitoba/winnipeg-woman-fall-hole-9.7178484?cmp=rss",
"https://www.cbc.ca/news/world/king-arrives-us-visit-trump-9.7178922?cmp=rss",
"https://www.rbcroyalbank.com/",
"https://www.cbc.ca/news/business/rogers-communications-staff-buyouts-9.7178929?cmp=rss",
"https://www.cbc.ca/news/canada/edmonton/alberta-referendum-website-complaint-immigration-9.7178022?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/dean-penney-trial-april-27-9.7178935?cmp=rss",
"https://www.cbc.ca/news/business/travel-u-s-canadians-domestic-overseas-9.7176323?cmp=rss",
"https://www.cra-arc.gc.ca/",
"https://www.canada.ca/en.html"
],
"static_urls": [
"https://www.canada.ca/en.html",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.tagesschau.de/wirtschaft/finanzen/infineon-chips-halbleiter-100.html",
"https://www.tagesschau.de/ausland/europa/ukraine-regierung-parlament-100.html",
"https://www.tagesschau.de/ausland/europa/tuerkei-socialmedia-verbot-100.html",
"https://www.tagesschau.de/ausland/asien/iran-regime-100.html",
"https://www.tagesschau.de/inland/gesellschaft/70-jahre-bundesnachrichtendienst-100.html",
"https://www.amazon.de/",
"https://www.tagesschau.de/wissen/forschung/nasa-teleskop-102.html",
"https://www.tagesschau.de/ausland/europa/eugh-asylrecht-italien-albanien-100.html",
"https://www.bundesregierung.de/",
"https://www.tagesschau.de/ausland/europa/ukraine-russland-angriffe-152.html",
"https://www.tagesschau.de/inland/regional/hessen/gesetzentwurf-existenzrecht-israel-100.html",
"https://www.ebay.de/",
"https://www.spiegel.de/",
"https://www.tagesschau.de/wirtschaft/adac-pannenstatistik-e-autos-100.html",
"https://www.tagesschau.de/inland/gesellschaft/pahlavi-berlin-100.html",
"https://www.tagesschau.de/ausland/amerika/trump-droht-iran-hormus-100.html",
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/wirtschaft/konjunktur/gfk-verbraucher-konsum-100.html",
"https://www.tagesschau.de/inland/innenpolitik/union-fraktion-reformen-100.html",
"https://www.tum.de/",
"https://www.bahn.de/",
"https://www.tagesschau.de/ausland/europa/daenemark-zugunglueck-102.html",
"https://www.tagesschau.de/ausland/asien/libanon-israel-verhandlungen-100.html",
"https://www.tagesschau.de/wissen/technologie/energie-kraftwerke-brennstoffzellen-100.html",
"https://www.tagesschau.de/ausland/asien/israel-neues-buendnis-100.html",
"https://www.tagesschau.de/wirtschaft/unternehmen/start-up-china-meta-deal-100.html",
"https://www.tagesschau.de/wirtschaft/finanzen/marktbericht-woche-der-notenbanken-100.html",
"https://www.bundesregierung.de/",
"https://www.amazon.de/",
"https://www.tagesschau.de/wirtschaft/finanzen/marktberichte/marktbericht-dax-dow-geldanlage-124.html",
"https://www.tagesschau.de/ausland/asien/iran-stockende-verhandlungen-100.html",
"https://www.tagesschau.de/inland/gesellschaft/mai-wetter-100.html",
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/wirtschaft/finanzen/marktberichte/marktbericht-dax-dow-geldanlage-126.html",
"https://www.sparkasse.de/",
"https://www.tagesschau.de/newsticker/liveblog-iran-donnerstag-112.html"
"https://www.tagesschau.de/newsticker/liveblog-iran-montag-116.html",
"https://www.tagesschau.de/ausland/europa/eu-parlament-sexualstrafrecht-100.html",
"https://www.tagesschau.de/inland/innenpolitik/spd-reformen-positionspapier-100.html",
"https://www.ebay.de/",
"https://www.tagesschau.de/ausland/europa/deutscher-botschafter-moskau-einbestellt-100.html",
"https://www.tagesschau.de/ausland/asien/russland-iran-usa-100.html",
"https://www.bahn.de/"
],
"static_urls": [
"https://www.bundesregierung.de/",

View File

@@ -8,28 +8,28 @@
},
"trust_module": {
"white_urls": [
"https://elpais.com/opinion/2026-04-23/el-tipo-mas-idiota-de-internet-condenado-a-seis-meses-de-carcel.html",
"https://www.agenciatributaria.es/",
"https://elpais.com/internacional/2026-04-23/el-tribunal-penal-internacional-juzgara-al-expresidente-filipino-duterte-por-crimenes-contra-la-humanidad.html",
"https://elpais.com/deportes/futbol/2026-04-23/lamine-yamal-con-una-lesion-muscular-le-dice-adios-a-la-temporada-pero-no-al-mundial.html",
"https://elpais.com/babelia/2026-04-23/luc-delahaye-una-realidad-entre-el-documento-y-la-ficcion.html",
"https://elpais.com/economia/negocios/2026-04-26/la-doble-brecha-macroeconomica-con-europa.html",
"https://administracion.gob.es/",
"https://cincodias.elpais.com/mercados-financieros/2026-04-23/digi-aplaza-su-salida-a-bolsa-ante-la-volatilidad-del-mercado-por-la-guerra-de-iran.html",
"https://www.renfe.com/",
"https://elpais.com/deportes/futbol/2026-04-22/el-elche-se-oxigena-y-derrota-a-un-atletico-de-bolo-veraniego.html",
"https://elpais.com/gente/2026-04-23/enrique-de-inglaterra-pide-no-olvidar-la-guerra-de-ucrania-en-su-tercera-visita-al-pais.html",
"https://www.amazon.es/",
"https://elpais.com/espana/2026-04-23/el-rapto-de-los-90-minutos-en-miercoles-santo-resuelven-el-secuestro-del-gerente-de-un-salon-de-juegos-en-malaga.html",
"https://www.elcorteingles.es/",
"https://elpais.com/espana/catalunya/2026-04-23/sant-jordi-sigue-creciendo-en-barcelona-con-buen-tiempo-colas-y-lluvia-de-polen.html",
"https://elpais.com/tecnologia/2026-04-22/pedro-sanchez-alerta-del-colonialismo-silencioso-de-la-ia-y-pide-una-respuesta-global-ante-expertos-de-la-onu.html",
"https://elpais.com/america-colombia/2026-04-28/un-brutal-atentado-terrorista-en-colombia-expone-el-pulso-entre-los-grupos-armados-y-el-estado.html",
"https://elpais.com/ciencia/2026-04-27/trump-ordena-a-la-nasa-y-al-departamento-de-guerra-crear-centrales-nucleares-en-la-luna.html",
"https://www.zara.com/es/",
"https://elpais.com/cultura/2026-04-23/cultura-estudia-hacer-obligatorios-los-gastos-de-envio-de-grandes-plataformas-online.html",
"https://elpais.com/clima-y-medio-ambiente/2026-04-22/mas-alla-de-los-combustibles-fosiles-una-coalicion-dispuesta-a-avanzar.html",
"https://elpais.com/salud-y-bienestar/el-medico-de-cerca/2026-04-22/sobrevivir-a-un-infarto-en-las-mejores-condiciones.html",
"https://elpais.com/economia/2026-04-23/cuerpo-asegura-que-el-fondo-soberano-espana-crece-estara-listo-antes-de-julio.html",
"https://elpais.com/espana/2026-04-28/mapfre-indemniza-con-un-millon-de-euros-a-un-trabajador-despedido-tras-denunciar-nepotismo-en-una-de-sus-filiales.html",
"https://elpais.com/planeta-futuro/2026-04-28/pedro-pinho-cineasta-he-visto-a-portugueses-trabajando-para-ong-en-guinea-bisau-que-muy-rapidamente-creen-saberlo-todo.html",
"https://elpais.com/clima-y-medio-ambiente/2026-04-27/menus-sociales-contra-el-desperdicio-alimentario-como-salvar-250000-kilos-de-ir-al-vertedero-cada-ano-puede-crear-empleo.html",
"https://elpais.com/eps/2026-04-24/lilia-mendez-una-mujer-contra-el-olvido-de-la-artesania-textil-gallega.html",
"https://www.amazon.es/",
"https://elpais.com/opinion/2026-04-28/prioridad-nacional.html",
"https://elpais.com/america-colombia/2026-04-27/la-fiscalia-pide-arrestar-a-nicolas-petro-por-no-asistir-a-las-audiencias-judiciales.html",
"https://www.renfe.com/",
"https://www.santander.es/",
"https://elpais.com/internacional/2026-04-23/ultima-hora-de-la-guerra-de-estados-unidos-e-israel-contra-iran-en-directo.html"
"https://elpais.com/salud-y-bienestar/2026-04-28/en-las-cocinas-de-los-car-t-la-innovadora-inmunoterapia-contra-el-cancer-es-una-revolucion.html",
"https://elpais.com/espana/catalunya/2026-04-28/silvia-orriols-tambien-sufre.html",
"https://elpais.com/espana/madrid/2026-04-27/un-punetazo-a-las-puertas-del-toni-2-vale-20000-euros.html",
"https://elpais.com/internacional/2026-04-28/por-que-nadie-puede-permitirse-que-ormuz-llegue-cerrado-al-verano.html",
"https://www.agenciatributaria.es/",
"https://elpais.com/ideas/2026-04-26/nuevas-distopias-transformar-el-estado-en-una-sucursal-de-los-gigantes-tecnologicos.html",
"https://elpais.com/economia/2026-04-28/mariana-mazzucato-los-anos-de-hegemonia-de-estados-unidos-han-terminado-estamos-viendo-el-final-del-imperio-romano.html",
"https://www.elcorteingles.es/"
],
"static_urls": [
"https://administracion.gob.es/",

View File

@@ -8,28 +8,28 @@
},
"trust_module": {
"white_urls": [
"https://www.france24.com/fr/vid%C3%A9o/20260423-derri%C3%A8re-l-image-en-rdc-les-veuves-de-soldats-dans-la-pr%C3%A9carit%C3%A9",
"https://www.france24.com/fr/vid%C3%A9o/20260423-guerre-en-ukraine-un-pr%C3%AAt-de-90-milliards-d-euros-pr%C3%AAt-%C3%A0-%C3%AAtre-d%C3%A9bloqu%C3%A9",
"https://www.france24.com/fr/vid%C3%A9o/20260423-%C3%A9tats-unis-le-secr%C3%A9taire-%C3%A0-la-marine-limog%C3%A9-en-plein-conflit-avec-l-iran",
"https://www.france24.com/fr/am%C3%A9riques/20260427-coup-monte-theories-du-complot-apres-les-tirs-gala-presse-washington-donald-trump-cole-thomas-allen",
"https://www.france24.com/fr/vid%C3%A9o/20260427-le-suspect-de-la-fusillade-au-d%C3%AEner-des-correspondants-va-%C3%AAtre-pr%C3%A9sent%C3%A9-%C3%A0-la-justice",
"https://www.france24.com/fr/am%C3%A9riques/20260427-tirs-au-gala-de-la-presse-le-suspect-mis-en-accusation-pour-tentative-d-assassinat-sur-trump",
"https://www.france24.com/fr/%C3%A9missions/dans-la-presse/20260428-apr%C3%A8s-deux-mois-de-guerre-l-immense-anxi%C3%A9t%C3%A9-des-iraniens",
"https://www.france24.com/fr/vid%C3%A9o/20260427-syrie-ouverture-du-premier-proc%C3%A8scontre-le-clan-assad",
"https://www.sorbonne-universite.fr/",
"https://www.amazon.fr/",
"https://www.cdiscount.com/",
"https://www.france24.com/fr/vid%C3%A9o/20260423-l-iran-maintient-son-emprise-sur-ormuz-incertitudes-sur-la-tr%C3%AAve",
"https://www.france24.com/fr/vid%C3%A9o/20260423-ukraine-un-pr%C3%AAt-quasi-d%C3%A9bloqu%C3%A9-zelensky-retrouve-les-dirigeants-europ%C3%A9ens-%C3%A0-chypre",
"https://www.france24.com/fr/france/20260423-liban-isra%C3%ABl-les-pays-r%C3%A9gion-moyen-orient-doivent-participer-n%C3%A9gociations-plaide-macron-%C3%A9tats-unis-washington",
"https://www.france24.com/fr/%C3%A9missions/politique/20260423-guerre-au-moyen-orient-la-fin-du-quoiqu-il-en-co%C3%BBte",
"https://www.france24.com/fr/vid%C3%A9o/20260423-liban-quels-sont-les-pouvoirs-et-les-limites-de-la-finul",
"https://www.france24.com/fr/vid%C3%A9o/20260423-le-b%C3%A9nin-mise-sur-son-histoire-pour-d%C3%A9velopper-le-tourisme",
"https://www.france24.com/fr/vid%C3%A9o/20260423-%C3%A0-montauban-hommage-national-%C3%A0-florian-montorio-casque-bleu-fran%C3%A7ais-tu%C3%A9-au-liban",
"https://www.france24.com/fr/%C3%A9missions/le-d%C3%A9bat/20260423-orban-hors-jeu-zelensky-gagnant",
"https://www.france24.com/fr/vid%C3%A9o/20260423-gaza-des-familles-pleurent-leurs-proches-tu%C3%A9s-dans-une-frappe-nocturne",
"https://www.impots.gouv.fr/",
"https://www.france24.com/fr/moyen-orient/20260423-crise-alimentaire-pourquoi-le-plan-de-l-onu-pour-un-corridor-%C3%A0-ormuz-pi%C3%A9tine-s%C3%A9curit%C3%A9-engrais-iran",
"https://www.france24.com/fr/vid%C3%A9o/20260423-amal-khalil-tu%C3%A9e-dans-une-frappe-isra%C3%A9lienne-dans-le-sud-du-liban",
"https://www.france24.com/fr/%C3%A9missions/info-ou-intox/20260427-tirs-au-d%C3%AEner-des-correspondants-une-attaque-mise-en-sc%C3%A8ne-par-la-maison-blanche",
"https://www.france24.com/fr/moyen-orient/20260428-en-direct-donald-trump-iran-pourparlers-liban-israel-etats-unis",
"https://www.france24.com/fr/moyen-orient/20260427-gaza-lalli%C3%A9s-de-mahmoud-abbas-remportent-elections-municipales-historiques-fatah-hamas",
"https://www.france24.com/fr/%C3%A9co-tech/20260428-australie-meta-google-tiktok-bientot-obliges-payer-medias-locaux",
"https://www.france24.com/fr/vid%C3%A9o/20260427-surpopulation-carc%C3%A9rale-en-france-les-syndicats-de-surveillants-appellent-au-blocage",
"https://www.service-public.fr/",
"https://www.france24.com/fr/afrique/20260427-mali-alliance-jnim-fla-junte-fragilisee-depart-mercenaires-russes-iafrica-corps-touareg-jihadistes",
"https://www.impots.gouv.fr/",
"https://www.sncf.com/",
"https://www.credit-agricole.fr/",
"https://www.france24.com/fr/vid%C3%A9o/20260423-paris-le-l%C3%A9gendaire-orient-express-%C3%A0-l-honneur-au-mus%C3%A9e-des-arts-d%C3%A9coratifs"
"https://www.amazon.fr/",
"https://www.france24.com/fr/%C3%A9missions/les-cl%C3%A9s-de-l-info/20260427-tirs-contre-le-pr%C3%A9sident-am%C3%A9ricain-l-histoire-se-r%C3%A9p%C3%A8te",
"https://www.france24.com/fr/afrique/20260427-mali-intox-mercenaires-fran%C3%A7ais-terroristes-tues-attaques-jihadistes-mort-sadio-camara",
"https://www.france24.com/fr/moyen-orient/20260427-irak-homme-d-affaires-ali-al-za%C3%AFdi-nomination-premier-ministre",
"https://www.france24.com/fr/am%C3%A9riques/20260428-au-deuxi%C3%A8me-jour-de-sa-visite-aux-%C3%A9tats-unis-charles-iii-va-s-adresser-au-congr%C3%A8s"
],
"static_urls": [
"https://www.service-public.fr/",

View File

@@ -8,28 +8,28 @@
},
"trust_module": {
"white_urls": [
"https://hk.news.yahoo.com/%E5%8F%8D%E4%BF%AE%E4%BE%8B%E8%A2%AB%E6%8D%95%E8%80%85%E6%93%9A%E5%A0%B1%E8%B5%B4%E8%A1%9B%E8%A9%A9%E9%9B%85%E5%88%86%E4%BA%AB%E6%9C%83%E5%BE%8C%E7%8D%B2%E6%92%A4%E6%8E%A7-%E4%BF%9D%E5%AE%89%E5%B1%80-%E8%A1%8C%E5%8B%95%E7%B4%B0%E7%AF%80%E4%B8%8D%E4%BE%BF%E5%85%AC%E9%96%8B-%E6%9B%B4%E6%96%B0-042322551.html",
"https://www.hko.gov.hk/",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E5%AE%A3%E7%A8%B1%E4%B8%8D%E6%9C%83%E9%96%8B%E6%94%BE%E8%8D%B7%E8%8E%AB%E8%8C%B2%E6%B5%B7%E5%B3%BD-%E9%99%A4%E9%9D%9E%E7%BE%8E%E5%9C%8B%E5%81%9C%E6%AD%A2%E5%B0%81%E9%8E%96-042002100.html",
"https://hk.news.yahoo.com/%E6%B6%88%E9%98%B2%E6%8A%AB%E9%9C%B2eas%E7%99%BC%E8%AD%A6%E7%A4%BA%E9%A0%88%E6%99%821%E5%8F%A5%E9%90%98-%E5%B0%8D%E6%80%A5%E9%80%9F%E6%83%A1%E5%8C%96%E7%81%AB%E5%8B%A2%E4%B8%8D%E9%81%A9%E5%90%88-094323720.html",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E9%9D%A9%E5%91%BD%E8%A1%9B%E9%9A%8A%E7%82%AE%E8%89%87%E8%A5%B2%E6%93%8A%E9%98%BF%E6%9B%BC%E5%A4%96%E6%B5%B7%E8%B2%A8%E6%AB%83%E8%BC%AA-133503559.html",
"https://hk.news.yahoo.com/%E5%85%A5%E5%A2%83%E8%99%95%E6%89%93%E6%93%8A%E9%BB%91%E5%B7%A5%E5%A4%96%E8%B3%A3%E5%93%A1%E6%8B%9812%E4%BA%BA-%E5%8C%85%E6%8B%AC4%E6%B8%AF%E4%BA%BA%E6%B6%89%E5%87%BA%E7%A7%9F%E5%B8%B3%E8%99%9F%E6%88%96-%E6%B4%BE%E5%96%AE-%E8%AC%80%E5%88%A9-072553084.html",
"https://www.hktvmall.com/",
"https://www.gov.hk/",
"https://hk.news.yahoo.com/%E5%9D%A6%E5%B0%9A%E5%B0%BC%E4%BA%9E2025%E5%B9%B4%E9%81%B8%E8%88%89%E6%9A%B4%E5%8A%9B%E9%A0%BB%E5%82%B3-%E6%94%BF%E5%BA%9C%E8%AA%BF%E6%9F%A5%E7%A8%B1518%E6%AD%BB-140504774.html",
"https://hk.news.yahoo.com/%E8%B3%B4%E7%B8%BD%E7%B5%B1%E5%87%BA%E8%A8%AA%E5%8F%97%E9%98%BB-%E7%BE%8E%E6%89%B9%E4%B8%AD%E5%9C%8B%E6%81%90%E5%9A%87%E9%9D%9E%E6%B4%B2%E5%9C%8B%E5%AE%B6-072003045.html",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E5%96%8A%E8%A9%B1-%E7%BE%8E%E5%9C%8B%E4%B8%8D%E8%A7%A3%E5%B0%81%E9%8E%96%E5%B0%B1%E4%B8%8D%E9%96%8B%E8%8D%B7%E8%8E%AB%E8%8C%B2%E6%B5%B7%E5%B3%BD-055002739.html",
"https://www.police.gov.hk/",
"https://hk.news.yahoo.com/%E4%BB%A5%E9%BB%8E%E8%8F%AF%E5%BA%9C%E5%86%8D%E6%9C%83%E8%AB%87-%E8%B2%9D%E9%AD%AF%E7%89%B9%E7%9B%BC%E5%BB%B6%E5%81%9C%E7%81%AB%E5%8D%94%E8%AD%B0-060502345.html",
"https://www.hku.hk/",
"https://hk.news.yahoo.com/%E7%BE%8E%E5%9C%8B%E8%B2%A1%E9%95%B7%E8%B2%9D%E6%A3%AE%E7%89%B9%E7%82%BA%E5%BB%B6%E9%95%B7%E4%BF%84%E7%BE%85%E6%96%AF%E7%9F%B3%E6%B2%B9%E5%88%B6%E8%A3%81%E8%B1%81%E5%85%8D%E8%BE%AF%E8%AD%B7-040502929.html",
"https://www.mtr.com.hk/",
"https://hk.news.yahoo.com/%E6%88%BF%E5%A7%94%E6%9C%83%E9%A6%96%E6%AC%A1%E5%90%8C%E6%AD%A5%E6%8E%A8%E5%B1%85%E5%B1%8B-%E7%B6%A0%E7%BD%AE%E5%B1%85-%E7%99%BD%E5%B1%85%E4%BA%8C-4-30%E8%B5%B7%E6%8E%A5%E5%8F%97%E7%94%B3%E8%AB%8B-200000762.html",
"https://hk.news.yahoo.com/%E8%8B%B1%E5%9C%8B%E6%94%BF%E5%BA%9C%E7%B8%AE%E6%B8%9B%E8%B5%A4%E5%AD%97%E6%9C%89%E6%88%90%E6%95%88-%E5%B0%88%E5%AE%B6%E8%AD%A6%E5%91%8A%E4%B8%AD%E6%9D%B1%E6%88%B0%E7%88%AD%E6%81%90%E6%8E%A8%E5%8D%87%E8%88%89%E5%82%B5%E6%88%90%E6%9C%AC-132005020.html",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E5%A4%96%E9%95%B7%E8%A8%AA%E4%BF%84-%E6%99%AE%E4%B8%81%E7%A8%B1%E5%B0%87%E7%9B%A1-%E5%88%87%E6%89%80%E8%83%BD%E5%8D%94%E5%8A%A9%E4%B8%AD%E6%9D%B1%E5%92%8C%E5%B9%B3-165002677.html",
"https://hk.news.yahoo.com/%E5%8C%97%E9%9F%93%E5%AF%86%E9%9B%86%E8%A9%A6%E5%B0%84%E9%A3%9B%E5%BD%88-%E5%B0%88%E5%AE%B6-%E8%97%89%E5%85%A8%E7%90%83%E5%B1%80%E5%8B%A2%E5%8D%87%E6%BA%AB%E5%BC%B7%E5%8C%96%E6%A0%B8%E5%9A%87%E9%98%BB%E8%83%BD%E5%8A%9B-065002415.html",
"https://hk.news.yahoo.com/%E5%8D%97%E8%B1%90%E7%B4%97%E5%BB%A0%E5%94%90%E7%8B%973%E6%A8%93%E5%A2%AE%E6%96%83-5%E6%9C%88-%E6%AF%9B%E5%AD%A9chill%E7%8E%A9%E7%A5%AD-%E5%8F%96%E6%B6%88%E9%80%80%E6%AC%BE-070852284.html",
"https://hk.news.yahoo.com/%E5%85%AC%E7%9C%BE%E6%B3%B3%E7%81%98%E5%BC%95%E5%B8%82%E5%A0%B4%E7%87%9F%E9%81%8B%E6%A8%A1%E5%BC%8F-%E5%BA%B7%E6%96%87%E7%BD%B2-%E5%B8%82%E6%B0%91%E4%BB%8D%E5%8F%AF%E5%85%8D%E8%B2%BB%E7%94%A8%E6%B2%99%E7%81%98-200000712.html",
"https://hk.news.yahoo.com/%E5%8D%B0%E5%BA%A6%E8%88%87%E7%B4%90%E8%A5%BF%E8%98%AD%E7%B0%BD%E7%BD%B2%E8%87%AA%E7%94%B1%E8%B2%BF%E6%98%93%E5%8D%94%E5%AE%9A-133501584.html",
"https://hk.news.yahoo.com/%E8%B6%8A%E4%BE%86%E8%B6%8A%E5%A4%9A%E5%A5%B3%E6%80%A7%E6%91%98%E4%B8%8B%E9%A0%AD%E5%B7%BE-%E5%9C%A8%E4%BC%8A%E6%9C%97%E5%8F%AF%E5%97%85%E5%87%BA%E9%AC%86%E7%B6%81%E6%B0%9B%E5%9C%8D-062003965.html",
"https://www.hsbc.com.hk/",
"https://hk.news.yahoo.com/%E6%B6%89%E4%BB%A5%E8%AA%A4%E5%B0%8E%E6%89%8B%E6%B3%95%E9%8A%B7%E5%94%AE%E4%B8%AD%E8%97%A5%E6%9D%90-39%E6%AD%B2%E6%97%BA%E8%A7%92-%E8%97%A5%E6%88%BF%E5%BA%97%E5%93%A1%E8%A2%AB%E6%8D%95-200000849.html",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E5%AE%98%E5%93%A1-%E8%8D%B7%E8%8E%AB%E8%8C%B2%E6%B5%B7%E5%B3%BD%E9%A6%96%E6%89%B9%E9%81%8E%E8%B7%AF%E8%B2%BB%E6%94%B6%E5%85%A5%E5%B7%B2%E5%85%A5%E5%BA%AB-115003587.html",
"https://hk.news.yahoo.com/%E7%BE%8E%E5%9C%8B%E4%B8%8D%E8%A7%A3%E5%B0%81%E4%BC%8A%E6%9C%97%E4%B8%8D%E9%96%8B%E6%94%BE%E8%8D%B7%E8%8E%AB%E8%8C%B2-%E4%B8%AD%E6%9D%B1%E6%9C%80%E6%96%B0%E6%88%B0%E6%B3%81-%E6%AC%A1%E7%9C%8B-065002298.html"
"https://www.police.gov.hk/",
"https://hk.news.yahoo.com/%E4%BC%8A%E6%9C%97%E9%A7%90%E8%81%AF%E5%90%88%E5%9C%8B%E5%A4%A7%E4%BD%BF-%E9%A0%88%E4%BF%9D%E8%AD%89%E7%BE%8E%E4%BB%A5%E4%B8%8D%E5%86%8D%E6%94%BB%E6%93%8A-%E6%89%8D%E8%83%BD%E7%A2%BA%E4%BF%9D%E6%B3%A2%E6%96%AF%E7%81%A3%E5%AE%89%E5%85%A8-223502162.html",
"https://www.hko.gov.hk/",
"https://hk.news.yahoo.com/%E4%BB%A5%E9%91%91%E8%AD%89%E7%A7%91%E5%AD%B8%E6%BF%80%E7%99%BC%E5%A5%BD%E5%A5%87%E5%BF%83-%E5%B0%8F%E5%AD%B8%E6%A0%A1%E9%95%B7-%E7%A7%91%E5%AD%B8%E4%B8%8D%E6%87%89%E5%8F%AA%E6%98%AF%E5%85%AC%E5%BC%8F%E5%AE%9A%E5%BE%8B%E5%A0%86%E7%96%8A-200000584.html",
"https://www.hku.hk/",
"https://yahoo-news.com.hk/BBCChineseNews/41485/?yptr=yahoo",
"https://hk.news.yahoo.com/%E9%87%91%E6%AD%A3%E6%81%A9%E9%87%8D%E7%94%B3-%E6%94%AF%E6%8C%81%E4%BF%84%E7%BE%85%E6%96%AF%E5%B0%8D%E7%83%8F%E5%85%8B%E8%98%AD-%E7%A5%9E%E8%81%96-%E6%88%B0%E7%88%AD-063501362.html",
"https://www.mtr.com.hk/",
"https://hk.news.yahoo.com/sipri%E5%A0%B1%E5%91%8A-2025%E5%B9%B4%E5%85%A8%E7%90%83%E8%BB%8D%E4%BA%8B%E6%94%AF%E5%87%BA%E9%81%94%E8%BF%912-9%E5%85%86%E7%BE%8E%E5%85%83-%E4%BA%9E%E5%A4%AA%E5%A2%9E%E5%B9%8516%E5%B9%B4%E4%BE%86%E6%9C%80%E5%A4%A7-%E5%8F%B0%E7%81%A3%E5%B9%B4%E5%A2%9E14-065005056.html",
"https://www.hktvmall.com/",
"https://hk.news.yahoo.com/%E5%B0%96%E6%B2%99%E5%92%80%E9%85%92%E5%BA%97%E8%81%9A%E6%9C%83%E8%AE%8A%E8%A1%9D%E7%AA%81-%E5%85%A7%E5%9C%B0%E5%A5%B3%E5%A4%A7%E9%A6%AC%E7%94%B7%E4%BA%92%E6%AF%86-%E5%90%8C%E9%81%AD%E6%8B%98%E6%8D%95%E9%80%81%E9%99%A2-034529792.html",
"https://hk.news.yahoo.com/%E7%99%BD%E5%AE%AE-%E5%B7%9D%E6%99%AE%E8%88%87%E5%9C%8B%E5%AE%89%E9%AB%98%E5%B1%A4%E5%95%86%E8%A8%8E%E4%BC%8A%E6%9C%97%E6%9C%80%E6%96%B0%E6%8F%90%E8%AD%B0-230504137.html",
"https://hk.news.yahoo.com/%E5%93%A5%E5%80%AB%E6%AF%94%E4%BA%9E%E5%85%AC%E8%B7%AF%E7%82%B8%E5%BD%88%E7%88%86%E7%82%B8-%E5%A2%9E%E8%87%B320%E6%AD%BB36%E5%82%B7-093501993.html",
"https://www.gov.hk/",
"https://hk.news.yahoo.com/%E8%83%BD%E6%BA%90%E8%A1%9D%E6%93%8A%E6%8E%A8%E5%8D%87%E9%80%9A%E8%86%A8-%E6%AD%90%E6%B4%B2%E5%A4%AE%E8%A1%8C%E6%93%AC%E6%9A%AB%E4%B8%8D%E5%8D%87%E6%81%AF%E8%A7%80%E6%9C%9B%E5%B1%80%E5%8B%A2-065003836.html"
],
"static_urls": [
"https://www.gov.hk/",

View File

@@ -8,22 +8,22 @@
},
"trust_module": {
"white_urls": [
"https://www.rakuten.co.jp/",
"https://www.smbc.co.jp/",
"https://www.jreast.co.jp/",
"https://www.mhlw.go.jp/",
"https://news.yahoo.co.jp/pickup/6577949?source=rss",
"https://www.u-tokyo.ac.jp/",
"https://news.yahoo.co.jp/pickup/6577376?source=rss",
"https://www.rakuten.co.jp/",
"https://news.yahoo.co.jp/pickup/6577961?source=rss",
"https://news.yahoo.co.jp/pickup/6577960?source=rss",
"https://www.amazon.co.jp/",
"https://news.yahoo.co.jp/pickup/6577374?source=rss",
"https://www.jreast.co.jp/",
"https://news.yahoo.co.jp/pickup/6577958?source=rss",
"https://www.japan.go.jp/",
"https://news.yahoo.co.jp/pickup/6577369?source=rss",
"https://news.yahoo.co.jp/pickup/6577372?source=rss",
"https://news.yahoo.co.jp/pickup/6577377?source=rss",
"https://news.yahoo.co.jp/pickup/6577363?source=rss",
"https://www.yahoo.co.jp/",
"https://news.yahoo.co.jp/pickup/6577375?source=rss",
"https://news.yahoo.co.jp/pickup/6577370?source=rss"
"https://news.yahoo.co.jp/pickup/6577959?source=rss",
"https://www.mhlw.go.jp/",
"https://news.yahoo.co.jp/pickup/6577941?source=rss",
"https://news.yahoo.co.jp/pickup/6577931?source=rss",
"https://news.yahoo.co.jp/pickup/6577954?source=rss",
"https://www.smbc.co.jp/",
"https://www.yahoo.co.jp/"
],
"static_urls": [
"https://www.japan.go.jp/",

View File

@@ -9,18 +9,18 @@
"trust_module": {
"white_urls": [
"https://www.kakao.com/",
"https://www.yonhapnewstv.co.kr/news/MYH20260423204515tFg",
"https://www.coupang.com/",
"https://www.korea.kr/",
"https://www.hometax.go.kr/",
"https://www.yonhapnewstv.co.kr/news/MYH20260423205121tTD",
"https://www.daum.net/",
"https://www.kbstar.com/",
"https://www.yonhapnewstv.co.kr/news/MYH20260423231345ZaH",
"https://www.yonhapnewstv.co.kr/news/MYH20260423235458edp",
"https://www.snu.ac.kr/",
"https://www.yonhapnewstv.co.kr/news/MYH20260423211941Xe0",
"https://www.naver.com/"
"https://www.yonhapnewstv.co.kr/news/MYH20260428143906BAg",
"https://www.yonhapnewstv.co.kr/news/MYH20260428143548czh",
"https://www.hometax.go.kr/",
"https://www.korea.kr/",
"https://www.kbstar.com/",
"https://www.yonhapnewstv.co.kr/news/MYH2026042813432030O",
"https://www.yonhapnewstv.co.kr/news/MYH20260428125754io7",
"https://www.yonhapnewstv.co.kr/news/AKR202604281116055wC",
"https://www.daum.net/",
"https://www.naver.com/",
"https://www.coupang.com/"
],
"static_urls": [
"https://www.korea.kr/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://news.google.com/rss/articles/CBMiwAFBVV95cUxOc1FQTHJHTkRtLVM2aWNhRm1oSHY0WHJOMFI3N1l0S0FBSEVQaXFDNUxEcmUwUmlMMWtBMThiMGhVdjItdzltUUJNRUx4RDBQSDFBZmtfaVZ0YXFRWlp1ZmtWQlR6amFZeDByZEhtMmMwZVV3ZHFqZG9JQy1QWHF2dEZlRTFmZFVFd3kydnpZajlVOXRMcFRUZGxlRmxQU2puZnU1TTVRdE80blB3OG1SSDd2MXZjNDdJZWZWel92YTQ?oc=5",
"https://www.maybank2u.com.my/",
"https://www.lazada.com.my/",
"https://www.kwsp.gov.my/",
"https://news.google.com/rss/articles/CBMipgFBVV95cUxOT3Z4R043SjdaTTY4blQzTGZxOUFQRmJldmhTaFAxc2M4TC1tMmFSeHFMWGNfWk1jQW9FcWk2cmRsUUg0S3ItTmJ6VTdMTEcxWVhxejI5eDk2elBiN25TanRWVFBlNkswQUNhSk9WS19MVDBjbldRQ1FiX2NKeXEzdVZnUVY3YkxncjNYWGgwUE1VbFN1Z2FSNG53UkJ3SHQwNTkzSU1R0gGrAUFVX3lxTE4xVlVPRFJYZkFYUUx6cGVuVi1lZEhHLWZVdnFlS2ZCNk9WbXNlVkp5RlZBdmF4dmhGWXBLbnJzV0E5eUY5d3c1dDZzT1pQMURZRzZUd3NnYWNHOGVLWk1UV2RTR0kxZkd2bEt2WGFOVlBnSzhBdDhuTE5IY1F1S0oyNFdEaFNmTGtEd3JZVXJXUkpkNFRGMmJvZFdsNnFlNmo4Q3UyM1BxRlJ6dw?oc=5",
"https://news.google.com/rss/articles/CBMinAFBVV95cUxQc0puNXJDNjJvaWRLSjRjSXUzQk1WVlVTRGZsOEVhSnlCQWI3U29hdGJVSXZySmRKbm9pR3h3cUtmUmxPVWV3bG81YUtZSUlQel9rUzFITFZTZkhfV1hOcExIdmdXMzQ1aXdfamlxUmFFeXJrMDJVVEN3RmQ1VlEtSlU4WDRneHZJcTBVNWtPV1d5UC14UjJSaUJrd1PSAaIBQVVfeXFMUHRqS2VRMVktbGtuQWlOeWxZQUdKRWtjdGZINms3M0VvUnYyYUtTVVdpN2c3UkZ0V19oVVNCY3RyZk11d2pxb3BxUWZRVXcwVzBLUWM0V1gxVUtMMFNlRjRJcG9HYmZlcGhHU2dJMG5xQzRzdjRaMVpGbEFSU2tNaTcyaUE2SlkwMHRlM3Y1NEFsRkJQRWhmbUlBbE85MnBFMzV3?oc=5",
"https://news.google.com/rss/articles/CBMi1AFBVV95cUxQcWFCUXVGSUhfVHFUUXpTeDNrUm5yYWpPZXlzMUZtSzFDX0ZJdzNyWmlnbmZ2bUpLSXFHUHcyOFRHbkJMSzB6bjJYWDYyd2s5U285X1JIakRzYWxvNGJpSk5Deld3Q3NuZTdjTGJObmV1X2M0TW1GM19Nb0ZIWndDbHc1bHU3S3FtdmhMQ1k3MG5rSFRFRVA2TkZzOWNxczdvb3plMDN2dS1jWEw5Z09TeXZmZ1dtMGxtX1pvMkVDWWFrM25lVG5zNmZ5Y0lEN2VSaXhSYw?oc=5",
"https://www.pos.com.my/",
"https://news.google.com/rss/articles/CBMiqgFBVV95cUxPZnVfanlkc0NjNWNyU2lCSGhPY2tZMmJLMklhdlBuc1JRY3I3ZlE3TWhqdkVxclFzX0tSa2xHZ1Y3WUlCdzdaR05SX2VScWFkaFFwT0ZXMjRRUkM4OVlQSXNfbkV1Y01wRVNVckVHZmY5UGNCdm13YlBzQkdsQ3ZJb3BMN1YxaXdsWlhaXzBaSUdfbzhQQ3NoRzNUbkRueDh1QjlKbU1NaEFUQQ?oc=5",
"https://news.google.com/rss/articles/CBMi7wFBVV95cUxQSERSOUhUWHFZeTZVQ2JsMlpta0dVWjRGR2xkVFN4M1pYMzExTndtLVllZVVxMTVTTkRhMnB1Qm50TFRxcEVMTXYxejMyZi1jckZwYTJ0MERIY0diR3J5aTBWbE11SXZILTFhc2EtaE93Q25INlptQUpGT3lFaXE5c1g3UHhxX0JSTjdOSHhoUFFvdUJfclNwZnpJOFB3VG5UU2lrN3pJeTFzWmRVS0hRWVN3dk5KRGhBTER3MU1ySVJNeDRaTmJtODJqdkhGWl9iUE5aVk5vX0RNZ2NoOHRjeE9aR3l0SEZta0pDVERnSQ?oc=5",
"https://shopee.com.my/",
"https://news.google.com/rss/articles/CBMimgFBVV95cUxNM0Fha3pYTVVEblg0dUJNYmtIZGdJdGFwa20tbUttRHNFNUMtQ0doMVJDZU5GYm0wLUkwaVpkMzZzM2lhcDNkaXlOMm5UckJvQjUyQ25URl9aMC1idm5pNDJCSm5xN3FKMXloREV6azNVZmt6WXg3TkQxa2JoaWdhSy1ZcU1ac251Ukt3TlE3SVpPVWxOSnJIMkpn0gGfAUFVX3lxTE9uT1dydUxaa1NWQk9rUFlGRTVZZFRSM0NqNURDMzRXRnJCTkZFTEZCdXkwd1lDdkVJaWo2M0dIVnprZ2ZjOTEzU3VneE8xV0pIMWZTOVlLSFo3N2UtZ19JMVZCWFVhRW5PeFFSNHI4MWNGXzJLOWRxRVY3WkREaENGeEVhM1dYVnViYU50WS1SQzB6Z3VzaEpHU0tzbVphWQ?oc=5",
"https://news.google.com/rss/articles/CBMirAFBVV95cUxNN1N5S3h1ZmlMcl9Zd01BYmRFd0N1Vi1aX1BUTFprR1pvSHF5VDZqWk9PUWJEYllScHFyX25qNnFWMFJfTmZoNjNwSTdUYmlDWnJPN2dsajJMbjhfam1WdGZ2bW45V1gxeGRpdTlFQ1RqdE5tbmU0ZVRibVE4S0JqRndVQmlvX3o5QkRDdFpfMXRsQ2hUQ2tmWm5QRnh1d0ZacWl2TlBKR19ybEVQ?oc=5",
"https://news.google.com/rss/articles/CBMiZ0FVX3lxTE04VkZwSllHVjZXNWRvOW8zU3dCVVMzQUJ6OEJpY2NmdFZaRlhJTzhQWDYxNFZhMnVyVE9GMlZPOTFtbzZfd0g0el8zQkNEdU9BT3lQcmc3TldKTk5rYjEtdF9ZNG45WU0?oc=5",
"https://www.cimbclicks.com.my/",
"https://news.google.com/rss/articles/CBMiwAFBVV95cUxQd2tyWHRaY180eklwZHNXdXdZY0dfcnZGQ3ZTbktEVldDeE9KaGRHMHRlRUhXdXhUZzdNVlNjaXgzZTBHUW54Z1RqNnZKcGF2V21nTFhyTFdFS0Z6cVUzWDNrLXU5UmRZR2QxYjAzVjJ4QkhCZUUwZ2lzQVlNMkxxNGs0REkzVmFNSFNvczY3S25TN0hpV1JjYmptVGlxckIxeFRkNUp5ZnBraEh1SUNKTUVCRGx0TXcwa1AxVFkyY3M?oc=5",
"https://news.google.com/rss/articles/CBMifkFVX3lxTE5EOXcwZDBtWEZhNUdjUDczVGRXU2VVdUNsUGtVUl9hSHBTU21pNkI5YnlJWXVkOW5NaVgzWUJFUktxS2dKbk9CU2xqLWl1bnlCalJRUWFwLU1QTUVDMXBqM2o0dVJOMF9fWjcxTGZ1RlNlcWpxb0ljMVBYZ2tKZw?oc=5",
"https://news.google.com/rss/articles/CBMijAFBVV95cUxNTWotZGFVeEY4YmhQZDN4YlJwbVQycVViOGw4bmhKUS1rdDY1cXJ2UXFoVGFPbmhVRXZfVTlJNE5ILXdacWZWbklORUxpMmxmTnJtVVVxeE9FMm5tTERoaXZPOWRDejBlRDhsem9vaUJrR00tYjY3NUl4U1pfVG1DaEZWSDV5R0J5R29iaQ?oc=5",
"https://www.malaysia.gov.my/",
"https://www.pos.com.my/",
"https://www.thestar.com.my/",
"https://news.google.com/rss/articles/CBMimAFBVV95cUxQQ1BoTkp3aUxJVzEyMmhSSzFFS1dvQnlSSDNyeGlBWFNtbk5TdzNzN0F2WlBqMS1MRmxSTEppWndoWE82ZnlXY3hscXE2THZuOXV3b1hGdFpaZkFpcS1vQ3F1N1lfbG5Rb29scVczT3VRVG9NbWRiSVNBM0Jxc0ZObHltQ0ttQTJQdl9KN0xfSUljb3I5NHoxNg?oc=5",
"https://www.lazada.com.my/",
"https://news.google.com/rss/articles/CBMiqgFBVV95cUxQTDdCQ0FGTlNMaC1aZjBIWF92QWxQS1lyUTNxYzZONHZNQVdKSlE0LVpsLUtqTHJPWGZFb1Vzb0pMbzNWZHY2b0lmUmROZVRnLXU3MU1YY25fR1FUdmUwSWFZTUpUekcwa1ItM2JiUWJ1cFdTXzZCLVdxQXNTQlEtNlVOMmpSb2NFS2prekhYNUd4RXE0bzVhYUNHa1BuenhfTG4wMWYxa0k3QQ?oc=5",
"https://www.kwsp.gov.my/",
"https://news.google.com/rss/articles/CBMilwFBVV95cUxORHBlMjRqS0dQbGlhSGxxWmk4TlpCd1RhdURLQldoWWVscnZDRGFRaEFEbnVKaHVlRFA0R0g0YmxfSElzZENSMDI3WmNhcjJyeVB6Y09XV2xzQm1SNmlPb2lwRkZqY3VMR0FXakJjODlyc3pkQ3poWHlSOTYtQk5ad1J6MW1yTjVDd3FxQk1rYk5vajYtNkx3?oc=5",
"https://um.edu.my/",
"https://news.google.com/rss/articles/CBMiqAFBVV95cUxQQjNRaVEwbkJuRUpEU1AyaTB3Y01QQm5TWFhLb0hyZVU2c0g4Y0huTnBuS0FtLVI0RnZKZ0J6aTdaSElFaFhUbDJ1NmZsUFYzTTU1TGNTRFh6T3l4VXVkWHdNSmt2aWtyYTlXem9HNDRwVVRqSHVXNVdJN3A5bTlTWHRONXJlczJSaExVb1ZURXlTWGVQOFE5a3NLMEtabkY5ZDFYeVR3UU4?oc=5",
"https://shopee.com.my/",
"https://news.google.com/rss/articles/CBMitAFBVV95cUxOUmNqZmthUHJhUWRFUFlkV2pIbzZFUFpfV0xDWl9sM2R2YW9TNHFQb0tGd3RVekFlRTFsZDdvZGpWb3VfbldxdU5UMjFycDBCSDMzaFhWZkFXc2xyUnpQQ0ZlbnV1OWFFWkQ4U21qUU1nUVktRWI1NFFNVzZ1M0UtRl9sVnRlSlcxaTVYZUR4RjlMZnE2UnVsZXVTNTliRXFpTkhTcXVSQ1BmTUozdDE1VUxfVU8?oc=5",
"https://news.google.com/rss/articles/CBMikAFBVV95cUxPMnZaWmRSdy1wV0VZSFNQSExUbWcxelhPVWRuZmk2RlVZZzZGRTFUZTlNbDNqa3VtdXN0aHJGMkpEQy1YQnNMU1dLZmR3a0JoRXFTZTdMZGFvMlN4MjQ2UVlJT0FUdWVaQVVoQUJYSnlNRm9oYnNBTGxWZktJdXlTRTFIYlVvZEo1QXFjeG85UWM?oc=5",
"https://www.maybank2u.com.my/",
"https://news.google.com/rss/articles/CBMib0FVX3lxTFBxOW1VQjZVVjJCb1ljN2tQNTF6dnhBTl9PT1QzdHlnVXpvRTA5ZXdPWV9PS3c2SDNXYkFUbUhWVENqZHV1OWlIUFdLLXNWS3FveUVYaGpMZHdIYWticFdTV2s2R1Bxdk8yVDFOdHhNWQ?oc=5",
"https://news.google.com/rss/articles/CBMiugFBVV95cUxQNWJsUGt6WDJqaF8zSFBpdE4zU1VLUDJ4U3djUWgxREJKdEU4cWtpTkpDa1ZPVUFFM2Rydk9SX0pnRUFQX0xjWFlLZ3h2MW42eXJQWDF1bnppS2xNUExKcklCOWV2b2thcVhwSXItUC1zQ2pwNWdPWnBKVUpTVG1VdEVxSVk4WnVBS2Y1YlZ5VVNWSFRtaXI4RERERnBZako5MmFrUHpsTWdZZElWVEIxYVp5UXk4QVBvSFE?oc=5",
"https://news.google.com/rss/articles/CBMiuAFBVV95cUxNTWZoeXN6OGtHcW5VM1BzWGxIaUx2YmFHclhQNEZPaXlHblo5UEtzejVHR2NnOUJ0cjNOTzQ2dHpzbkZvYmVhZlFyYk5nYUtVbVd0SnY5VWJlVzZhUThJYmpLSEZGTS10OXpXTG92a2h2dHdQVUN1cDFiZ1l5MEVWRWx6Y1prd3ZxVWNESEFXWW5KdHJ3TDNQSVhKTU1ESldxdDduVFd3X2YyZy13S2ZRVWhHVGMzRzZW?oc=5",
"https://news.google.com/rss/articles/CBMixwFBVV95cUxQSm9fQVZsU3p3NjEyNGltQlJMYUdocGZCYkc1WVVUaGhEV00xU0NzaUVrc0xBejd4LVp0RXZmeGxUdmxvMl9LLWVHSHRTUXRnTGFlYzREbGNkaXhxVkt2Xy14eW5wd004Vl9GdzJDUjQxUlRCb2FqNWxENjQxdVYtaGJjaDBfY3ByMkZSUTdiZG5PdmVaa01CajNlN0NBN0xSUnpNTFZWU3pRb0gzQVVzMlZEcUtyYWRZdV8tQTktNWZXRjhoY2Rj?oc=5",
"https://news.google.com/rss/articles/CBMihgFBVV95cUxPVWRPM2xRM2ZzcnUyblZWN0RQUXVacWRzU29xOHBIQmtmSEZEUk1XMEVCUkNXSlJNMlFyemRPdGZhQVlpUmlXRTkyZmNpM3F1WDNsZGVfUkYySzUzdUNyUFVZdF9WZnFFX2l3aDlHbk9IQXlZajdSYzE4QWctMVdaX251N21SZw?oc=5",
"https://news.google.com/rss/articles/CBMiugFBVV95cUxPa0cteU1HZXRleTlyTkNNYlVYMm5nSTBxZTFBQlVZblNyem9RTWRjeUFqQXNXenVGaDR3bmgxUHA4RWc4dHF6T0tHXzNpQWh6OTQxbUl4NjBCV2FaZGVjRV9HdmxUNEwxaGVDT1drVFZlc3V1cG5pdDZaQjhtR3YyYlRzVi1BaWZKeE1pRm5UMTdjUE9kQlgwTVB5NEc5N3doN0xlX0p5N1JBUERBQkxaaVhkSXljRUM3TlE?oc=5",
"https://news.google.com/rss/articles/CBMizwFBVV95cUxQTDhpR0pXNGZKWi0tRG1ORzFMem1zRC1fVWpuMU1ORlVDc3BkQmZsV01udnhTaHotV1JzYmlSQ1dHcFpUNl9idFdRbTBMSXI0bjlLVXJKM0lVUWdBYVpkekw5UjlKRmd6QThMaXJHZ0JXSFBRYVUyVmltcnBzSFgzTlpJZF9mNTdiYTNzVmtPQ25nSnpLUEY3eXR1UVZfRFJwQmRGb1pVZjNodU42NU5TRHNlSXF6Y2ZHbW5tdVBIMEVQOVJXemRuV01PbFQ5czA?oc=5",
"https://www.cimbclicks.com.my/",
"https://news.google.com/rss/articles/CBMi2gFBVV95cUxNcXB5UGFBUlpvXzlVLWpFVV94LUp4Sml3LVN0WTdoeENyekxaY3RNUldaYUthdV9yZFkwNXNfenRjWUIxQXZRSWdnSER1SFU0dG9ESEtCNEpJSTJrRnd4cDRpMXNVdmRDNkM2NzBHZWZIZXF4S2hteU1XZWJxNU1TcEFjX3FIVlFGQnFPclNGZ1dRck9LUng2UEo5TnlmbUhzcEU5RV9sWTgwaC1HZGljSlZxWkgxYUcyMUc2SXNTaWM4dmRfRXgyUG9Pa2lUc1pjN3Y2S21iQWJYUQ?oc=5",
"https://www.hasil.gov.my/",
"https://news.google.com/rss/articles/CBMiugFBVV95cUxOdDFsd1RzdXlQSGVNTThONWdKaDROUzZwN0paQVNQNHN1Z20zd1lpUlVneVo0dUNfRDcyTEdXOFgzb3JCck0xT3JEMVFybXc5Ync1TFdHLXFvVlM4Si16ckk3RHF6U1BDOTh2LU1COC1paUcxWkgtTE9ZYnBPM0xMYnU4VlVoSTBPLVVSZ0Vwdi04V093d0NTeUUwT1FlNmxjcWZvWGZfdzdhcE5aTGNqbHdYUkZrQTdJM2c?oc=5",
"https://news.google.com/rss/articles/CBMiywFBVV95cUxQQWJxZjduYVFWMk45SDdGX3Frc3ItZURydjE2a3NBTkh3YXU4S2FzUG9MV3dnSXY5STM5SjlKTk5JQXFWLXl2RXYyQVdiZjd3U1hhSk1xUzNscWJrUUczc1U1MHNrQzYwMDlkU2k1WFFhSG5uUnl2YlVEcWcyVHZKeTFqRkMxaE1HU296aTBNdGt0Q1BvOVN1b0NuX3RKOFczeDJXWE1USGJkU0xaOUFMMVNieng1dDlkMnhhVTNFY0dHNXhQbXNZMXJvNA?oc=5",
"https://news.google.com/rss/articles/CBMirgFBVV95cUxORXNSSDhJeXhuZ0Z0ZlM1ZGpwdlhJaWhiR0xObFljZ0NTV0tYUWp4S3VXZ0EtOWpSQ1dlb3RRcVdyWGl4NUxzWGRSbmREd1RGbDg1aFpmeHlhVVIxLTh6d09KWnFBVk9ER0MxSmN6MW9DZ1ZsMndRajNzMzBkV3hCbVdwbEZ0ZFBRLXdMbXZDLTZFdTZZeGNfQW9hNGhlc0R0ekpZek1qbmNST0pYRkHSAbMBQVVfeXFMTks1eWhUZngyTXFCSzFuYzhNZkFlcWhGUkEtbHhSLV9CV3BvTm1hdWJhUGF6UjJFNFRHZ3U5MDd2NU54b29LVUJsM0lrN2FocUI4OFFmXy03ajZfbk45aHZucFVUSUpSTXZRQjlVTWFWR2FaV25TQXAydV85Z3QwaFd2b2tJOWxnbGZrSDlFVU1TREFfUWRFaUZEVHlqUXJPMllYRzRCVHJPd1pyTkhZSGpZUUk?oc=5"
"https://news.google.com/rss/articles/CBMimwFBVV95cUxOanB1NUMyMkJmMmRPdlZhSEtaZklsY1A3a0VBSGdaUzFWdVZUYkx6b054dS1PcFdTSmI0bkFrYVdZVzg0UDlIVFY2c1N5UnZQV3dncDU0NmlTRFh5TWlhNGVfTlFkVWV5T2NHcDN1ZENfVnAyVFg4VzkxSXRUM3FPbGtKQ0V0WnhZTWlOdzRMYVctdWhzaGxSdzlRVQ?oc=5"
],
"static_urls": [
"https://www.malaysia.gov.my/",

View File

@@ -0,0 +1,50 @@
{
"region_name": "Nigeria - Lagos",
"google_module": {
"base_lat": 6.5244,
"base_lon": 3.3792,
"lang_params": "hl=en-NG&gl=NG",
"valid_url_suffix": "com.ng"
},
"trust_module": {
"white_urls": [
"https://punchng.com/insecurity-bauchi-police-bans-night-operations-of-bikes-tricycles/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/womens-health-takes-centre-stage-at-lagos-iwd-event/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/nsc-eyes-22-gold-medals-at-commonwealth-games/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.gtbank.com/",
"https://punchng.com/kwara-group-backs-reps-candidate-decries-neglect/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.nairaland.com/",
"https://punchng.com/nigeria-arrive-botswana-for-world-relays/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.konga.com/",
"https://punchng.com/how-i-was-denied-ranking-senator-position-niger-candidate/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/groups-seek-affirmative-action-in-upcoming-elections/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/kwara-begins-vaccination-of-pilgrims-ahead-of-2026-hajj/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/only-50000-n13m-found-in-my-house-not-13m-achimugu/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.punchng.com/",
"https://www.mtn.ng/",
"https://www.airtel.com.ng/",
"https://punchng.com/flamingos-thrash-nazareth-7-0-in-wcup-qualifier-prep/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/my-father-wont-allow-me-join-besiktas-osayi/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.firstbanknigeria.com/",
"https://punchng.com/police-track-attackers-of-bauchi-female-student/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.vanguardngr.com/",
"https://punchng.com/genoa-star-ekhator-hints-at-eagles-switch/?utm_source=rss.punchng.com&utm_medium=web",
"https://guardian.ng/",
"https://punchng.com/athletes-decry-neglect-demand-competitions-funding-from-afn/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/group-faults-directive-on-nomination-forms/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.jumia.com.ng/"
],
"static_urls": [
"https://www.jumia.com.ng/",
"https://www.punchng.com/",
"https://www.gtbank.com/",
"https://guardian.ng/",
"https://www.konga.com/",
"https://www.firstbanknigeria.com/",
"https://www.vanguardngr.com/",
"https://www.nairaland.com/",
"https://www.airtel.com.ng/",
"https://www.mtn.ng/"
]
}
}

View File

@@ -8,28 +8,28 @@
},
"trust_module": {
"white_urls": [
"https://www.belastingdienst.nl/",
"https://nos.nl/l/2611728",
"https://www.ns.nl/",
"https://nos.nl/l/2611737",
"https://nos.nl/l/2611716",
"https://nos.nl/l/2611732",
"https://www.buienradar.nl/",
"https://nos.nl/l/2611731",
"https://nos.nl/l/2612225",
"https://nos.nl/l/2612184",
"https://nos.nl/l/2612232",
"https://www.marktplaats.nl/",
"https://nos.nl/l/2611710",
"https://www.ing.nl/",
"https://nos.nl/l/2611745",
"https://nos.nl/l/2611729",
"https://nos.nl/l/2611696",
"https://nos.nl/l/2611744",
"https://nos.nl/l/2611738",
"https://nos.nl/l/2611694",
"https://nos.nl/l/2612197",
"https://nos.nl/l/2612213",
"https://www.rijksoverheid.nl/",
"https://nos.nl/l/2612247",
"https://nos.nl/l/2612245",
"https://nos.nl/l/2612219",
"https://www.belastingdienst.nl/",
"https://nos.nl/l/2612178",
"https://nos.nl/l/2612254",
"https://nos.nl/l/2612201",
"https://nos.nl/l/2612185",
"https://www.bol.com/",
"https://nos.nl/l/2611719",
"https://nos.nl/l/2611725",
"https://nos.nl/l/2611703"
"https://www.ing.nl/",
"https://www.buienradar.nl/",
"https://nos.nl/l/2612249",
"https://nos.nl/l/2612246",
"https://nos.nl/l/2612180",
"https://www.ns.nl/"
],
"static_urls": [
"https://www.rijksoverheid.nl/",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.channelnewsasia.com/singapore/marriage-matters-young-singaporeans-falling-numbers-experts-6085086",
"https://www.nus.edu.sg/",
"https://www.channelnewsasia.com/sport/shanto-rahman-fire-bangladesh-seal-2-1-odi-series-win-over-new-zealand-6076636",
"https://www.channelnewsasia.com/singapore/singapore-confiscates-400000-criminal-proceeds-malaysian-6085541",
"https://www.channelnewsasia.com/east-asia/south-korea-probes-syringe-hoarding-war-hits-plastic-makers-6085471",
"https://www.channelnewsasia.com/business/chinese-battery-maker-catl-signs-first-major-sodium-ion-deal-energy-storage-6085526",
"https://www.shopee.sg/",
"https://www.channelnewsasia.com/business/electrolux-plans-about-1-billion-share-issue-tie-up-midea-in-north-america-shake-up-ops-6077066",
"https://www.channelnewsasia.com/business/milan-tech-firm-bending-spoons-picks-banks-20-billion-us-listing-sources-say-6076741",
"https://www.cpf.gov.sg/",
"https://www.channelnewsasia.com/business/us-sets-preliminary-antidumping-duties-solar-imports-india-indonesia-and-laos-6077106",
"https://www.channelnewsasia.com/world/trump-administration-marijuana-drug-medical-use-6076856",
"https://www.channelnewsasia.com/business/microsoft-plans-first-voluntary-employee-buyout-cnbc-reports-6076806",
"https://www.gov.sg/",
"https://www.channelnewsasia.com/business/warner-bros-shareholders-back-us110-billion-merger-paramount-skydance-6076681",
"https://www.channelnewsasia.com/asia/indonesia-not-impose-tariffs-strait-malacca-foreign-minister-sugiono-6076516",
"https://www.channelnewsasia.com/business/in-two-amazon-units-builder-replaces-traditional-job-titles-6076801",
"https://www.channelnewsasia.com/business/stocks-retreat-us-iran-peace-talks-stall-6076641",
"https://www.dbs.com.sg/",
"https://www.iras.gov.sg/",
"https://www.channelnewsasia.com/world/ukraine-russia-war-european-union-loan-hungary-pipeline-6076921",
"https://www.channelnewsasia.com/sport/miami-grand-prix-practice-extended-after-rule-changes-race-cancellations-6076656",
"https://www.singpass.gov.sg/",
"https://www.channelnewsasia.com/business/openai-falls-short-revenue-and-user-targets-it-races-toward-ipo-wsj-reports-6085296",
"https://www.channelnewsasia.com/singapore/infertility-ivf-assisted-reproductive-treatment-greater-support-education-6083396",
"https://www.fairprice.com.sg/",
"https://www.channelnewsasia.com/sport/coventry-chairman-king-shrugs-reports-linking-lampard-chelsea-return-6076911",
"https://www.channelnewsasia.com/business/cretaceous-kraken-prowled-seas-during-age-dinosaurs-6077036",
"https://www.channelnewsasia.com/sport/mclaren-will-have-completely-new-car-miami-gp-6076976"
"https://www.channelnewsasia.com/world/donald-trump-says-abc-should-fire-last-night-host-comedian-jimmy-kimmel-6084596",
"https://www.channelnewsasia.com/business/google-signs-classified-ai-deal-pentagon-information-reports-6085551",
"https://www.gov.sg/",
"https://www.channelnewsasia.com/dining/hong-kong-kee-wah-bakery-closes-ion-orchard-store-6085186",
"https://www.channelnewsasia.com/singapore/premarital-marriage-counselling-couples-compatibility-issues-6083431",
"https://www.channelnewsasia.com/singapore/woman-questions-prudential-life-claims-head-insurer-responds-6085366",
"https://www.channelnewsasia.com/business/boj-keeps-rates-steady-3-board-members-dissent-call-hike-6085301",
"https://www.iras.gov.sg/",
"https://www.channelnewsasia.com/business/australia-charge-big-tech-companies-2-levy-unless-they-strike-local-news-deals-6085461",
"https://www.dbs.com.sg/",
"https://www.singpass.gov.sg/",
"https://www.cpf.gov.sg/",
"https://www.channelnewsasia.com/business/japan-government-weighs-golden-share-maintain-tepco-oversight-tv-tokyo-says-6085386",
"https://www.channelnewsasia.com/business/investors-react-bojs-decision-hold-rates-6085341"
],
"static_urls": [
"https://www.gov.sg/",

View File

@@ -8,30 +8,30 @@
},
"trust_module": {
"white_urls": [
"https://www.post.gov.tw/",
"https://news.google.com/rss/articles/CBMi0gFBVV95cUxPZUdJQVZpMVdsS1ZIYzd2TkhpQkRPOUJmd3lIRC1PSWRpbDJZNHUxNlpwM2RMVHBUYjZWSzNNcTQtbEFhNHozTTBacWp3Mzl4d09YeGFha0ZxRkN0U01OZG5FeklFbUtEb0l1TW5SWWRNQ0JzcFp3TEVqUFdlRi01QnRQVlBLbEV3SVNyYWFBbGllTGdfcGc3VjYzNERGX0RpZFFZUkxtX09KMFM5TmZVeklPX0dMa3EydDgwUV9yUFgxaGZzM0JzNGQtWl9vRUpqWFE?oc=5",
"https://news.google.com/rss/articles/CBMiZkFVX3lxTE1kdU8yNlI0c2NKSzFjdGlWNHk4MmFHQVZXRUJocGhQTlZrc2ZXTkVKYXBWUUZSUF9nNnhyeUE2ZV9IY3NvRWdLRDJrc1E0eWRrQXVaLW9MYzN3eTIzX2VjWEZQc1NCQdIBa0FVX3lxTFB4WWVBdXV0NjdZY2xfam5PLUQ4VDBZaUlwOTFlZ19fcG53dW9VbjVGakNUcGNkaUJnYjZpejBkd0hSQm1HcnYyUmpXUFg1V2E4cTYta093Z1AtSHY2S0s1VUFqRS12S3JKMU9Z?oc=5",
"https://news.google.com/rss/articles/CBMiUkFVX3lxTE0yNkVPWlVSczlIUFRZMlBtVkNUMUJzb2FXVDFVQll4ajhFdlBjMlRWUk9MaE5hRWxlanVMaGtCM2tTYTZtYS0ybzE4ZlQ3bUVRalE?oc=5",
"https://www.pchome.com.tw/",
"https://www.cathaybk.com.tw/",
"https://www.gov.tw/",
"https://news.google.com/rss/articles/CBMiswNBVV95cUxPcDZmUHpyYmlLUkZSaGtGaW1qa1JBd2N6bnY0RTJBblg5WXlxVDYwYm9yQ0J3Zi1YV25RRmk0V1hyVmhTWUpWQ09sY2tJVkZ4azdnZml0SG9yRnZodWVZMHhHV3U2dmN0OEp4dk9PSWpOVEhjYmFBRVg4cU1xaVZiTU05dVBRRzJROG1HR1BtRmFFck1sWDd0TXhvZHRLT0lGZVk0QUJQUTBUVHJJeWxWWjBNaXg3MEUxUW54RkRxVlhmbkhPZmxNdkJqbkczeWJ1c3ZEVURmMDk0d1RYSlZqckNxSnFaMUVNbmstc0N2clhoTjBocmM5bmk4eUhuRVpsbnpyaEI2UEF1WDkxcTRUNy14YXdvVmpqVGtJQ3ZHUXhWdFF2aEQxQS1IU1h2N2dyWUxZU0h6ZXJfeDBsN09aY3YydUVTODlIV2N1Z3loSjNBVkRSWVVBS281TTVDTi00UlZYZ1RENFBPdFh4YTdsWUJPUmVKdUJodTlIUTR0Mm03Z3YzODN0dUgzbmZWY1U3RE5qZWdMOHdFTXRjY29SZXJUME5vTFVNdXRmQTZMSmVOZlk?oc=5",
"https://news.google.com/rss/articles/CBMiUEFVX3lxTE0xdUpUQlNCUEdEeVdVYTg0ck1LYUw5Yll4OW5vTEZNTjRkQm5ROHlNMTJOdWE0czBLUjBxamlvNXIwMTdVei05M2hzY19BTk1M0gFWQVVfeXFMT1hVZEEyeWs4aHRTSzNKUGdfOUNqbUxYazJUMDN6RTJHYmhkU21fNTNnREliSG5WM3V3b0N0S3dkSTl2UGZ2Y19JUmRwWHJ3bGV0MzIyVmc?oc=5",
"https://news.google.com/rss/articles/CBMibkFVX3lxTFBHTmprcGlaR3I3TFlyUUhzZmFKQzZRYUFQXzhzR2dBVzJuQ1ZzU3c0T1ZMR2FRc3lkcTBFaThTdl92bWdhY3NBbFhOc01ZQ2pZc3l2bHUxT3BOOWcwMndYVFlZd0xYLU96bjVJOEdn?oc=5",
"https://news.google.com/rss/articles/CBMiUEFVX3lxTE8wLWdBbXA4QVRlc2V2WE5rVTR2RE4zZVQweGZRSjdPNnBCclFoV1h0YkJZdkhkRElZdUtDQ0tBWVpPSzdvbjdqRXpuaTVET3ND?oc=5",
"https://news.google.com/rss/articles/CBMiogFBVV95cUxOODRIaHhSWWx2UzBMMW83LUNid29ZTmFuYXgtZktVUWtJUFlzaWpOdTN2ZGZXTldlRUllTHJleGR2RFc0NjN1YVVyRC1VT0FuQjRIYmNreTFDdk0yaURzdHJ1SmdFRllCZEo0RWFWTkxzM2pDdWVDWDlETzBhRWRnVGlTT3hOUFo4MjYzaGRwb3cyeHJ2c3E1MHVrS0hTclBkWVE?oc=5",
"https://news.google.com/rss/articles/CBMiWEFVX3lxTFBSWHMtZE5Ha1N0SGVMbWE0eHdFaV9aWktDNVpwWWZ2NmZYNU02N1RGVks5MXFYSWE2Yl9ZSkttRkZ6QWJ3azgzZl9LYzk2Ymx3bWpTRmFrZDA?oc=5",
"https://www.momoshop.com.tw/",
"https://www.dcard.tw/",
"https://news.google.com/rss/articles/CBMiWkFVX3lxTE1iZnFiU1owM2FfT2laaWI5cXlaRWU3MTZQRW1YclpLTFRlZEFvZFhKM0ZoYVlIOTFrRVprYUpuUEdmdGsyZURIM2VQcEYwM0h4Ui1NS0JDOWlyQdIBX0FVX3lxTE1seFFrMFpxQVpHckVjemhieDFaNW5tcFNHU0RTQlVka0UycVZWcGVna3hPVnFReW5ZTlJ1c0xJQUswWGZBRkJXX3kxTGtuSmxOOFJ1bkhuZHMyWE5VWnRj?oc=5",
"https://www.thsrc.com.tw/",
"https://news.google.com/rss/articles/CBMiZkFVX3lxTE1xSXBsR2pKWXBZc0x4bUJxZWFEak04S25qaFI0Y3BLTnozc2Q3MzRHbWFCNUlZbVZDY0JzUVROTHJrWC1od2V0THVSb251bFdQeE15anltRnZ0NGNpc3MyVS1WeUlMd9IBa0FVX3lxTE1KWjRfMVBZN25ISHJLWGFLZGg1Rm1EMVFBMTZiMndKcmpSelVNSzJWU2NVazFMZnJHNmhxUWVzVkdNMDE2c05pb0RmZ2ZSUFZIbTNnbHNjYzU0eGZJbkRXOVRucHIxYnduazFz?oc=5",
"https://news.google.com/rss/articles/CBMiYEFVX3lxTE11eVZ2Rlk5SEthZmRtanVXWmRrWXhGYXRVbEpmSTBfSjluLTBNSlpCV3BZQUhoXzVYSzd5OTh2V2lFV3dtSWlXUG9IS2NwZHFPREwxdnNJVkVzVDZfZDlUV9IBZkFVX3lxTE5xWG9UNHJiLVhqem1td1JvbEkzR1Zpc1ItMDNGOTNvZFhiYURBR2ZtREp6aFdqWUxCUHpKUWZmTlVYQ3M3bzdJUWhnLUhrNFBBdlMxQk9faHRGWkh6eU9TRjljV1Y0UQ?oc=5",
"https://www.ntu.edu.tw/",
"https://news.google.com/rss/articles/CBMi1wJBVV95cUxPREFTbWloRmVNY0lyQXlHMkZ6QmtCM2M1RGdzbk8zQXNmMzhlRTJ5UkxKNHBIZjZBS0Z4akkzN3NmRkRiaTB4cUUxQ0pOa3lzdG1rNXJsaHhnSFcxX2Y1SXhoRkU3di1LZ29GVEFraEtOLVpWSURtZlRyX0licU81VkhHdVBMckNTeDNZNFdsVTlQbC14cGthN3VER0JtZk13VDF4ZlhON1dZZFBqcHNxdkpycmFBc1d1ZTRWWV82S2RzQzE3SzhuMUFCb3UwMFZfWTBIU1JpXzRORS1PVEpCMzlmTmRfZVY0b2Rtelo1Znk1UkJ4VUhySzdOQjBjaDJaR3ppZkR2NGlrdzdtMDZqU0Mta0tuLXBzRk1YbG1jR3Vxd0loWlJ3YmhEdGYxMzk3WWtjWi1BN0NFMXhSTUltRHFrMll4N3hwWFpBWmxCLWhiUmhkTnBn?oc=5",
"https://news.google.com/rss/articles/CBMiU0FVX3lxTFBDS2JaR3M3cjRLTHlMR1Y4U1IzNkkxM0I1aWY0S3B1ZDFkdUZWQlc3VC1nZndhQkUzRkJmZERvS1lsSG5lUXRUc3BqaTRPQVVFeG5v0gFYQVVfeXFMT2dUMTFLVHZpWWg0SE9XMWFwQnZhZ2lBLWUwbHhNTlhNbTZfc3ZUUF92QUlLTEpzTGlwS2t3Qi1WZmpHdWdMcG5zaHFmTmRPTmlpMDhQeS1wXw?oc=5",
"https://www.cathaybk.com.tw/",
"https://news.google.com/rss/articles/CBMiaEFVX3lxTE1pYlNZeXhKUm9JaVBFRUlDc09qZkpBdEg5SnpBNE9rbHB4V0xyVmNvUDBDUDF5U0R1Q1JaVDhUZ1gta21yY3pLMWFwcVphUXc0RUJoWENhano1RHMwcTNtM2VXMjBsXzBs0gFuQVVfeXFMUDZlRzljakZCNTUxUXBQWVBtVDZFM0xyVU0ta1g3VTVWVTRsdDNoRFBYTVBJa0FCLUlWLXpGOFNpMXRSeVR1YWhCX3k4dUJmaWpUcnVMdzVaRXd0b1VVajJWaVE0M2tWU0lWWmVGeHc?oc=5",
"https://tw.yahoo.com/",
"https://news.google.com/rss/articles/CBMiZEFVX3lxTE9udVJJTVBBT1Z0ZFlmZXNpZFBnTDM3RmU0NkhVZnNNMEg5MHBrSHR4N2phUlZGNmhNQ1hubEM0MjljUmZrZkpyTDVNa1RDQ1YtY1Zha0diV29wUjhEbGdOeUhBMm7SAWpBVV95cUxQSlNFcy13NWd4Y2Nlck41Y0ZTTGhrWnlkalRCWm1RUm9ndkxkLUdUM1NHcFI4ZnZwWFdiR3RqNjVvVVM4UnkzbXJXbUhBRjl2UUVaNUFibGwwRTk1ZHhaSUx0aWVoLVNvc3hn?oc=5",
"https://news.google.com/rss/articles/CBMiT0FVX3lxTE1WNGN4MEFiTjdScmQ0NDZxaDN5cUxQbmpFbnF1eHVJaXBfSlc0ekZTOUxrYkJzVVJVWUstRGI2ekVjajEzVU8zeUdVUjRBSUU?oc=5"
"https://news.google.com/rss/articles/CBMiT0FVX3lxTE1HM25GT2Zfc2lVZmU0OGg0OWduc3pWRTRjVmtNZmstMjVEcWJaUlRIWU1XTTNUaUxPdFNreVZSc2JSV1BwQXRfUDFHLTJTNGM?oc=5",
"https://news.google.com/rss/articles/CBMivwJBVV95cUxOZGFBUkQ2ajlVblBVZmYzWExCTExYUnliNXc0SGtlZHNIdUFzZDBic0RkLTRtWS1La0lNSGQzZWM5VGxadUNQX3VFUjZmc2FtWnBoelAzWXdmT0pSbjZfWkRpTWtDTVVuVUUyaFRkSzlkZ2lJdFI3a0JhR1h0QUlVV0ZPQVBPUVp1dzFia0RrdjdsWDZkTVRVYmJKQjNFMnVvZzFidVN5YW56YkJxTzMwdlYybFpFSm9sMk1PWm92Z21oRzJkdVlZQ09QWXJpWUhFVTJqOXU3U0Fvel9QeTJ1cWxQdC1zcE1FcXl5SERRVmVyaGpJblFtSXRaT0psMzJLZEotbTBiWWFDaGdOcXctUWJ4NzFJVUN5WU5UUjZmc0hvRTIwdTRIVVNLLWZBZkFNTE4yRTd6RHJGRVVSaGVB?oc=5",
"https://www.pchome.com.tw/",
"https://news.google.com/rss/articles/CBMiXEFVX3lxTE1PSFowT1g4Y1JKc21UakxNbmdCYy1fandnaTVyRGQzaV9xdF9Pd2k2WDdPQVNUQnVnR251ZWZ3WWdiR25pTjNGRTFDYnh4eFpUTmlHaUJCYWQ3UlVm0gFiQVVfeXFMTmRGcXNmVzN4NHFtS0NhWDN4V01KTGxKV2F6eld6Y3BBbGdkTFZUV2Q2YU1xV25YeU9DVDRFWXNOLVBJdnhpcEUxOEc3ajlWbG5GV3ZqSjQzNTNFSGZjLVdUTXc?oc=5",
"https://news.google.com/rss/articles/CBMiTkFVX3lxTE5sSi1WUnVtVDJoa21Oa0JnR1dER0pwbzlkN0hIYmlrQ3R5UWVwcmE1MDEwTkp2Rml0c3piRmw1bk9EZnFCaUJkX3lSWVlmZw?oc=5",
"https://news.google.com/rss/articles/CBMiV0FVX3lxTE1KcXNaREVRQThwOThQZlAzZ3pORy0yTUlFVEMxSXdYRWc0YkhhVi1naS1ZTUhTYmVGTFhqTXR2MWJJdllORFAtNThYRENZNXlkTlFXVkRBWdIBXEFVX3lxTFBWbkhobGgybzJFQ21xM1c2aExVcW9neFZFZmFpcl8wcEo1bmM4OE05MFVfejdkemliMXFraTFGa3NUMWNTSlRadVhuMk1lTTltbGQ0M0x0ckdMWHlw?oc=5",
"https://www.ntu.edu.tw/",
"https://www.gov.tw/",
"https://www.dcard.tw/",
"https://www.post.gov.tw/",
"https://news.google.com/rss/articles/CBMikANBVV95cUxQaVNSUE52RW5MSDJobmYyajZrdlFiZFdnTXItcGt5ajV4bWxkYnFTa3F6Zm9zbDg3WUswMjhWYTJ6VFVROW52SkxXVnJpa29kR1pOdWZVMXJySnNBTlZIMGw0cnd0WTN6UzBYdFllMGppZ3NWdVhHajBScG9WaE43YTF6clEwTnNhN2ZqQ002Zkl0bkxmZktQN1k2WndqVUd5WEdzbTBmS0FaekloSWdmU282d2VYY1hrTXYyZy1QVmZ3VjVVcTVoT3NLUkIxT3pUYnE2a01sLXRkMWRVMnAzaVQ5aFRCV3JwVlNXRG9kaVoxLTZaTUdIMEY5MHBCbDhGVWZoZG9nRmUyTTFJUENZVXdEXzJkanliUTczT1pDWktiZ0xMMmg0c3Q4ODYwNVJDNk1NaFQ0QjdxWWlrckFNQWZBTC02VlBqdy1IbDNJT3NPTE9wV1hNQ09CbEhRTW1CejQwY1BqRlgzUlgxSkRPb0JuazN3MHIyU2JOZm81X2o4bU1nRjBYb0E2eFBCMmUy?oc=5",
"https://news.google.com/rss/articles/CBMihANBVV95cUxNT0lNS0RHVHNNOHNmekI0NHBlRWVUMkZUZllaZmROV2E1N2ZRdXRrNDFpN2dldDZsejIzT29BMTVtbnVPLUtHenozdUV3eElkZTFkSGxNMGNuSVR5YUZLNVJHdUl2VVlNLS1KVFEtaXBNZzVDdDU4a0p1VUJTdzFHWHhUZ2J0c0RZZDRtdzJlSTE0ZFBQM2c5QjRNZTdKbEY5TU9QXzhmck1CaHg1aW9idUxhLWRVTXpJSVFCMEQzSHdwbUhndzBrNld3QUwtbGtjUnRrT3F2bGoxT0l4ai10Qk5OOTVuNk9OVmtRNUgtUXpOVXRSZTFvdE80cTllMk9sN2paaXBFWEhlbVZHSXc0dk5UT21fNVRnX2VST2lRamxXNzNTVGFsWkQ5eF9yaUlLT25OWkRTd1UzekVNdFR1dktUb1dPcURXdW54WXNBZVRVSTc0YW5nLUFrdUtVTFdlNTluM0lHeGQ4RHdSRDVtR3c5dktvWGNxVERFMkhablBzdWV5?oc=5",
"https://news.google.com/rss/articles/CBMiUkFVX3lxTE1qOU40N05fU3JzcVo2X3JnYWI4S2Q4MTNFVmZMRjk5OFZWMURfVHBOelRaQTZ6ZjdaMUtWclZOdjN1NnJXRGphdFE1RXcxNndpNGc?oc=5",
"https://news.google.com/rss/articles/CBMiUkFVX3lxTFBIMEFVX1lRZWRaWmNvbEtkdHlGQ3lkTWZKOGM2QnFmN19BdE56Nnl6S3FHY2hvUmtKci16VjVqRERweUFpaU0wOXp5TS05dk16bGfSAW5BVV95cUxQLXRDUUJFZlVJQmllNDhZUTFjYWJqSnoyOTJSVmFMbjdjUU5mZE52VmRvNjJqLUo5UVVQOWlpM0RsNHRNNDFfR2dFZFE1ZGhza284NU9KNDFJSm0yQmxiVTczVms4WlBVaVNVd2xHdw?oc=5",
"https://news.google.com/rss/articles/CBMiVkFVX3lxTE00ODQ1QUJ0N3JQVXhlR0lpam80M1Q3SWFnbkZLZ2xUQVlEZkc1WU1JX1lHaTd5UXJWQnhnOXphbkZRZzBKLXpXalVjd2RGaHJjOXNXb3Vn?oc=5",
"https://news.google.com/rss/articles/CBMiUEFVX3lxTE45Tjl4T2U4eWlwQkJKNFc4eFRIb2ZVTDdBd0ZnejU0c3VaSTB4MDZic3ctSFVqNXhZdXpmcWtMaThZYU5GclhUSnBtYTNiUU430gFWQVVfeXFMUGRSZUNScnNGeklXdHJmRWZpYUFpd19zeUZvUUR2Qlg1NDNuc1hfSVI5b0tRdmNTcUpGUjlBVXVaQXhwdWVRU0FFWVpQSTdYeDVyaXdCLVE?oc=5",
"https://news.google.com/rss/articles/CBMikANBVV95cUxQbkVwbHR3aVlZRDlNbExWSlQ5Wld6Yk52clduMzN2dGNnc2RZVVcyVk9JbW9LM2lsNjZqTUhaR3VfOURod3k4VXk3TDZPZzhmVWpUSGN5bmxiM2d5MDdLSWdTSDFmME5SSlV0a1BoX3hmc3VUeTRQbXJrSkZhZnhVRHFSbmU0MmpXbjROT0NEVWZ0VXRiRjJmbG9WT29waElYc2FJOWItYzBFbC1WZ0d2ODVHOXZFZll0TzJ4NXY1MUhsakdEYUtIRDJ0SHd4THRhbXlHOTQzSXh1V1I4TTAzN0tDQUY0eFRJa3ZMZHV1TjlhX3YyeWNJRGFxU3g2ZG5ydU5XTElMaGwwSC1EYlBnaHc5VmVmY0lwYzZJOE9nUlVaNkFoWXNlTHJETnJqUE1GdTdtSUItaDB5RXhOaHUwUmFVS20zVnBveHdyMnU2UGExVUh3TnMtWXZlU0dVeDVRTWFtM2pBYnJWVlpKSmJ4bkRXUVM4ODZDUXp3TlVzRUwyOEUyZV9DanZLcTBhd2hr?oc=5",
"https://www.momoshop.com.tw/",
"https://news.google.com/rss/articles/CBMiYEFVX3lxTFBxcHBSb3Zqd2pNZWtIcGMxR0dVYVJGU2pMSHI3WnpGbWppRFFUY2FzU25SNEhWRUpHUV8xZXlzN3lmZEpRamUtZVNOYlF2aVBzSVlNdjhlaEtLeV9XUU9ISNIBZkFVX3lxTE1naGZ6RlNORmMxQUx6N21LNHRlMTljZFB1ckJlRXo3WGFBek45VVBsNVFZQXQwelVwdnFFdUxIZW5YMV9sTjVBY1ljdElwckFGTHJSam5pdk5yNk1MS0stR1dSUUhFZw?oc=5"
],
"static_urls": [
"https://www.gov.tw/",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.nhs.uk/",
"https://www.ox.ac.uk/",
"https://www.bbc.com/news/articles/cdrm8k7lzmko?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cgj09ny0dq6o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cp3lge56zxwo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/clyxlnzrq41o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cy813gy08v2o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c20qrg4dyr3o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/videos/c0q9k3lekn3o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/c98kz9pe01po?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c86ezy3qvjno?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cr41yel6v4eo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cly60l1e6nxo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cvgkwk9525zo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cje4eeyq27lo?at_medium=RSS&at_campaign=rss",
"https://www.ebay.co.uk/",
"https://www.bbc.com/news/articles/cew7wez72vxo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c86e6z26xdpo?at_medium=RSS&at_campaign=rss",
"https://www.gov.uk/",
"https://www.bbc.co.uk/iplayer/episode/m002t4vt?at_medium=RSS&at_campaign=rss",
"https://www.barclays.co.uk/",
"https://www.nationalrail.co.uk/",
"https://www.bbc.com/news/articles/c5ywjn9zpyjo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cgj0jx4pqzvo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cqxpjrlry4xo?at_medium=RSS&at_campaign=rss",
"https://www.amazon.co.uk/",
"https://www.bbc.com/news/articles/c3r3pz82g58o?at_medium=RSS&at_campaign=rss",
"https://www.postoffice.co.uk/"
"https://www.barclays.co.uk/",
"https://www.bbc.co.uk/sounds/play/p0ngxnlq?at_medium=RSS&at_campaign=rss",
"https://www.bbc.co.uk/news/10628994?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cn898mrkjl5o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/videos/ce8j8r3r2wjo?at_medium=RSS&at_campaign=rss",
"https://www.ox.ac.uk/",
"https://www.bbc.com/news/articles/c2e2dd08rdko?at_medium=RSS&at_campaign=rss",
"https://www.nhs.uk/",
"https://www.bbc.com/news/articles/c62d43vdgmmo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c7v953jyj76o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.co.uk/sounds/play/p0ngrsbh?at_medium=RSS&at_campaign=rss",
"https://www.nationalrail.co.uk/",
"https://www.bbc.com/sport/boxing/articles/cj373dln1llo?at_medium=RSS&at_campaign=rss",
"https://www.postoffice.co.uk/",
"https://www.bbc.com/news/articles/cm2pn8zdxdjo?at_medium=RSS&at_campaign=rss"
],
"static_urls": [
"https://www.gov.uk/",

View File

@@ -8,29 +8,29 @@
},
"trust_module": {
"white_urls": [
"https://www.bbc.com/news/articles/cp3lge56zxwo?at_medium=RSS&at_campaign=rss",
"https://www.barclays.co.uk/",
"https://www.bbc.com/news/articles/c20qrg4dyr3o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/videos/c0q9k3lekn3o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/clyxlnzrq41o?at_medium=RSS&at_campaign=rss",
"https://www.amazon.co.uk/",
"https://www.postoffice.co.uk/",
"https://www.bbc.com/news/articles/c2e2dd08rdko?at_medium=RSS&at_campaign=rss",
"https://www.bbc.co.uk/news/10628994?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cqxpjrlry4xo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/boxing/articles/cj373dln1llo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/videos/ce8j8r3r2wjo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cew7wez72vxo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cgj0jx4pqzvo?at_medium=RSS&at_campaign=rss",
"https://www.ox.ac.uk/",
"https://www.bbc.com/news/articles/c5ywjn9zpyjo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c3r3pz82g58o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cgj09ny0dq6o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cr41yel6v4eo?at_medium=RSS&at_campaign=rss",
"https://www.gov.uk/",
"https://www.bbc.com/news/articles/cdrm8k7lzmko?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/c98kz9pe01po?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cly60l1e6nxo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/cy813gy08v2o?at_medium=RSS&at_campaign=rss",
"https://www.nationalrail.co.uk/",
"https://www.bbc.co.uk/iplayer/episode/m002t4vt?at_medium=RSS&at_campaign=rss",
"https://www.amazon.co.uk/",
"https://www.bbc.com/news/articles/c62d43vdgmmo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c86e6z26xdpo?at_medium=RSS&at_campaign=rss",
"https://www.nhs.uk/",
"https://www.bbc.co.uk/sounds/play/p0ngrsbh?at_medium=RSS&at_campaign=rss",
"https://www.postoffice.co.uk/",
"https://www.nationalrail.co.uk/",
"https://www.bbc.com/news/articles/c7v953jyj76o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cje4eeyq27lo?at_medium=RSS&at_campaign=rss",
"https://www.ebay.co.uk/",
"https://www.bbc.com/news/articles/cvgkwk9525zo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c86ezy3qvjno?at_medium=RSS&at_campaign=rss"
"https://www.bbc.com/news/articles/cn898mrkjl5o?at_medium=RSS&at_campaign=rss",
"https://www.barclays.co.uk/",
"https://www.bbc.co.uk/sounds/play/p0ngxnlq?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cm2pn8zdxdjo?at_medium=RSS&at_campaign=rss",
"https://www.gov.uk/"
],
"static_urls": [
"https://www.gov.uk/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.harvard.edu/",
"https://www.usa.gov/",
"https://www.chase.com/",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.cdc.gov/",
"https://www.walmart.com/",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.amazon.com/",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.usps.com/",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.target.com/",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.usa.gov/",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.cdc.gov/"
"https://www.irs.gov/",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.usps.com/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.amazon.com/",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.chase.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.target.com/",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.walmart.com/",
"https://www.bankofamerica.com/",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.amazon.com/",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.harvard.edu/",
"https://www.target.com/",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman"
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.chase.com/",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.bankofamerica.com/",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cdc.gov/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.usa.gov/",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.chase.com/",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.walmart.com/",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.bankofamerica.com/",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.irs.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.target.com/"
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.chase.com/",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.usps.com/",
"https://www.bankofamerica.com/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.target.com/",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.usps.com/",
"https://www.walmart.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.target.com/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.irs.gov/",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html"
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.chase.com/",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.harvard.edu/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.amazon.com/",
"https://www.usps.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.irs.gov/",
"https://www.chase.com/",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.cdc.gov/",
"https://www.usa.gov/",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.bankofamerica.com/",
"https://www.target.com/"
"https://www.usps.com/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.walmart.com/",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.target.com/",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.usa.gov/",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.bankofamerica.com/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.walmart.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cdc.gov/",
"https://www.irs.gov/",
"https://www.harvard.edu/",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.target.com/",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.chase.com/",
"https://www.usps.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman"
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.chase.com/",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.irs.gov/",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.bankofamerica.com/",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.harvard.edu/",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.target.com/",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Dallas",
"google_module": {
"base_lat": 32.7767,
"base_lon": -96.797,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.chase.com/",
"https://www.foxnews.com/",
"https://www.walmart.com/",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.cnn.com/",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.target.com/",
"https://www.texas.gov/",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.bankofamerica.com/",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.nytimes.com/",
"https://www.dallasnews.com/",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html"
],
"static_urls": [
"https://www.texas.gov/",
"https://www.dallasnews.com/",
"https://www.cnn.com/",
"https://www.foxnews.com/",
"https://www.nytimes.com/",
"https://www.amazon.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.chase.com/",
"https://www.bankofamerica.com/"
]
}
}

View File

@@ -0,0 +1,40 @@
{
"region_name": "USA - Houston",
"google_module": {
"base_lat": 29.7604,
"base_lon": -95.3698,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.mdanderson.org/",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.rice.edu/",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.houstonchronicle.com/",
"https://www.nasa.gov/",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.houstontx.gov/",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman"
],
"static_urls": [
"https://www.houstontx.gov/",
"https://www.houstonchronicle.com/",
"https://www.rice.edu/",
"https://www.mdanderson.org/",
"https://www.nasa.gov/"
]
}
}

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.cdc.gov/",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.walmart.com/",
"https://www.usps.com/",
"https://www.usa.gov/",
"https://www.target.com/",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.irs.gov/",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.bankofamerica.com/"
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.target.com/",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.bankofamerica.com/",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.cdc.gov/",
"https://www.usps.com/",
"https://www.walmart.com/",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.chase.com/",
"https://www.harvard.edu/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,31 +8,31 @@
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/17/tech/google-ai-search-engine-stock-drop/index.html",
"https://www.usps.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.amazon.com/",
"https://www.irs.gov/",
"https://www.bankofamerica.com/",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.target.com/",
"https://www.cnn.com/2023/04/18/politics/schumer-senate-feinstein-vote-cardin/index.html",
"https://www.npr.org/2026/04/23/nx-s1-5795829/peace-talks-between-us-and-iran-at-a-standstill-as-trump-extends-ceasefire",
"https://www.harvard.edu/",
"https://www.npr.org/2026/04/23/g-s1-118440/up-first-newsletter-us-iran-john-phelan-trump-republican-democrat-midterm-fundraising-budget-reconciliation-ice",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/us/mccurtain-county-oklahoma-officials-recording/index.html",
"https://www.cnn.com/2023/04/17/media/dominion-fox-news-allegations/index.html",
"https://www.chase.com/",
"https://www.cnn.com/videos/politics/2023/04/18/jake-tapper-dominion-lawsuit-settlement-fox-news-statement-lead-vpx.cnn",
"https://www.cnn.com/2023/04/18/us/benadryl-tiktok-challenge-teen-death-wellness/index.html",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.cnn.com/2023/04/14/entertainment/yellowjackets-90s-music/index.html",
"https://www.cnn.com/2023/04/17/health/rise-type-2-diabetes-global-wellness/index.html",
"https://www.cdc.gov/",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/18/politics/mccarthy-biden-debt-ceiling/index.html",
"https://www.cnn.com/2023/04/18/health/teen-misuse-adhd-meds-wellness/index.html",
"https://www.cnn.com/travel/article/southwest-airlines-flight-delays/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5800863/supreme-court-weighs-geofence-warrants",
"https://www.cnn.com/2023/04/18/opinions/2024-presidential-election-alternative-voters-lieberman",
"https://www.cnn.com/cnn-underscored/reviews/mmmat-silicone-mats?iid=CNNUnderscoredHPcontainer",
"https://www.usa.gov/"
"https://www.irs.gov/",
"https://www.cnn.com/europe/live-news/russia-ukraine-war-news-04-18-23/index.html",
"https://www.npr.org/2026/04/27/nx-s1-5793804/supreme-court-monsanto-roundup-arguments",
"https://www.usa.gov/",
"https://www.cnn.com/travel/article/worlds-longest-cycling-tunnel/index.html",
"https://www.target.com/",
"https://www.cdc.gov/",
"https://www.npr.org/2026/04/27/g-s1-118892/china-blocks-meta-from-acquiring-ai-startup-manus",
"https://www.cnn.com/videos/tech/2023/04/18/apple-store-mumbai-india-ceo-tim-cook-vedika-sud-ovn-biz-ldn-vpx.cnn",
"https://www.cnn.com/2023/04/17/opinions/jim-jordan-clarence-thomas-judiciary-committee-obeidallah/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.harvard.edu/",
"https://www.npr.org/2026/04/27/nx-s1-5801448/melania-trump-jimmy-kimmel",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.walmart.com/"
],
"static_urls": [
"https://www.usa.gov/",

View File

@@ -8,28 +8,28 @@
},
"trust_module": {
"white_urls": [
"https://vnexpress.net/",
"https://vnexpress.net/to-hop-hoa-dau-long-son-dung-hoat-dong-5066377.html",
"https://vnexpress.net/vo-dat-idol-len-tren-chong-con-5066192.html",
"https://vnexpress.net/ong-trump-ra-lenh-huy-diet-tau-iran-rai-thuy-loi-o-hormuz-5066396.html",
"https://vnexpress.net/nha-ga-duong-sat-toc-do-cao-bac-nam-se-nhu-thanh-pho-nho-5066403.html",
"https://vnexpress.net/tom-hum-thoat-chet-nho-mau-sac-hiem-5067821.html",
"https://vnexpress.net/van-cuoc-cuoc-doi-voi-xe-dien-cua-founder-dat-bike-5067616.html",
"https://chinhphu.vn/",
"https://vnexpress.net/60-quoc-gia-ban-cach-thoat-phu-thuoc-dau-khi-than-5067685.html",
"https://vnexpress.net/vinhomes-green-paradise-don-them-hai-thuong-hieu-khach-san-quoc-te-5067817.html",
"https://vnu.edu.vn/",
"https://www.vietcombank.com.vn/",
"https://vnexpress.net/lich-va-huong-dan-dang-ky-thi-tot-nghiep-thpt-nam-2026-cac-buoc-chi-tiet-nhat-5066107.html",
"https://vnexpress.net/dpm-dat-loi-nhuan-515-ty-dong-quy-i-5066398.html",
"https://vnexpress.net/gia-chung-cu-ha-noi-gia-chung-cu-tp-hcm-chung-cu-cat-lo-80-trieu-mot-m2-khien-toi-chet-dung-5066312.html",
"https://dichvucong.gov.vn/",
"https://vnexpress.net/auspacific-investment-viet-nam-ra-mat-voi-hoat-dong-tu-van-tai-san-5066110.html",
"https://vnexpress.net/ukraine-lo-thieu-hut-ten-lua-patriot-do-xung-dot-trung-dong-5066373.html",
"https://tiki.vn/",
"https://vnexpress.net/phu-nhan-tong-thong-han-quoc-xem-mua-roi-nuoc-lam-banh-tai-ha-noi-5066355.html",
"https://vnexpress.net/",
"https://vnexpress.net/vi-sao-chi-em-dau-de-mau-thuan-5067671.html",
"https://shopee.vn/",
"https://vnexpress.net/ha-noi-mien-phi-xe-buyt-va-metro-trong-7-ngay-nghi-le-5066419.html",
"https://vnexpress.net/tong-thong-han-quoc-va-phu-nhan-an-kem-dao-ho-guom-5066408.html",
"https://vnexpress.net/italy-bi-xuc-pham-boi-de-xuat-thay-iran-du-world-cup-2026-5066405.html",
"https://vnexpress.net/dong-nai-co-them-khu-cong-nghiep-xanh-1-800-ty-dong-5066343.html",
"https://vnexpress.net/tp-hcm-se-mo-13-tuyen-buyt-ket-noi-san-bay-long-thanh-5066209.html",
"https://chinhphu.vn/"
"https://vnexpress.net/nhung-dua-tre-bi-day-vao-bang-dang-o-haiti-5059494.html",
"https://vnexpress.net/luc-luong-nga-rut-khoi-thanh-pho-quan-trong-o-mali-5067759.html",
"https://vnexpress.net/tinh-toan-vay-700-trieu-mua-them-dat-thay-vi-tra-no-1-5-ty-5067727.html",
"https://vnexpress.net/carrick-man-utd-khong-nen-an-mung-qua-muc-ve-du-champions-league-5067713.html",
"https://tiki.vn/",
"https://dichvucong.gov.vn/",
"https://vnexpress.net/gia-ve-may-bay-tang-chuyen-di-mua-he-ngay-cang-xa-voi-5067745.html",
"https://vnexpress.net/tiem-kich-iran-tung-vuot-luoi-patriot-nem-bom-can-cu-my-5067737.html",
"https://vnexpress.net/ong-putin-noi-da-nhan-duoc-thong-diep-tu-lanh-tu-toi-cao-iran-5067763.html",
"https://www.vietcombank.com.vn/",
"https://vnexpress.net/thai-lan-tinh-bo-chinh-sach-mien-visa-du-lich-60-ngay-5067738.html",
"https://vnexpress.net/xin-nghi-viec-de-len-ke-hoach-dam-trong-thuong-dong-nghiep-5067787.html",
"https://vnexpress.net/dot-quy-hai-lan-trong-5-ngay-5067695.html"
],
"static_urls": [
"https://chinhphu.vn/",

View File

@@ -14,6 +14,10 @@ if [ "$EUID" -ne 0 ]; then
exit 1
fi
# 🟢 [防劫持沙盒] 引入司令部专属随机安全工作区
SECURE_TMP=$(mktemp -d /tmp/ips_master_install.XXXXXX)
trap 'rm -rf "$SECURE_TMP"' EXIT HUP INT QUIT TERM
# 你的 GitHub 仓库 Raw 数据直链前缀
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# 临时改为开发地址用于测试
@@ -68,9 +72,9 @@ else
if [ "$ACTION_CHOICE" == "2" ]; then
echo -e "\n⏳ 正在拉取卸载程序..."
curl -sL "${REPO_RAW_URL}/master/uninstall_master.sh" -o "/tmp/uninstall_master.sh"
chmod +x "/tmp/uninstall_master.sh"
bash "/tmp/uninstall_master.sh"
curl -sL "${REPO_RAW_URL}/master/uninstall_master.sh" -o "${SECURE_TMP}/uninstall_master.sh"
chmod +x "${SECURE_TMP}/uninstall_master.sh"
bash "${SECURE_TMP}/uninstall_master.sh"
rm -f "/tmp/uninstall_master.sh"
exit 0
fi
@@ -104,13 +108,8 @@ else
fi
fi
# ================== [v3.2.2 优化: 安装前环境纯净度清理与数据保护] ==================
echo -e "\n⏳ 正在清理旧版 Master 守护进程..."
# [新增] 优雅停止 Systemd 服务,防止代码替换时引发无限复活风暴
if command -v systemctl >/dev/null 2>&1; then
systemctl stop ip-sentinel-master.service >/dev/null 2>&1 || true
fi
pkill -9 -f "tg_master.sh" >/dev/null 2>&1 || true
# ================== [v3.2.2 优化: 数据纯净度清理与保护] ==================
echo -e "\n⏳ 正在验证本地环境与数据..."
if [ "$UPGRADE_MODE" == "true" ]; then
if [ "$KEEP_DB" == "false" ]; then
@@ -119,13 +118,11 @@ if [ "$UPGRADE_MODE" == "true" ]; then
else
echo -e "📦 历史节点数据库 (SQLite) 已绝密保留。"
fi
# 删除旧的核心脚本,准备拉取新的
rm -f "${MASTER_DIR}/tg_master.sh" 2>/dev/null
# [防砖修复] 移除过早的旧进程抹杀与脚本物理删除,防止拉取失败导致司令部变砖失联
else
# 焦土政策:如果不是升级模式,直接扬了整个司令部目录
rm -rf "$MASTER_DIR" 2>/dev/null
fi
echo -e "\033[32m✅ 旧进程已肃清!\033[0m"
# =======================================================================
# 1. 依赖检查与智能安装 (v3.6.0 兼容性与优雅性升级)
@@ -269,13 +266,15 @@ CREATE TABLE IF NOT EXISTS nodes (
PRIMARY KEY(chat_id, node_name)
);
-- [v4.0.0 新增] 核心情报表:记录历史 IP 质量数据,用于绘制趋势图
-- [v4.0.0 新增, v4.0.2 扩容] 核心情报表:记录历史 IP 质量数据,用于绘制趋势图
CREATE TABLE IF NOT EXISTS ip_trend_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
node_name TEXT,
check_time DATETIME DEFAULT CURRENT_TIMESTAMP,
scam_score INTEGER,
nf_status TEXT
goog_status TEXT,
nf_status TEXT,
gpt_status TEXT
);
EOF
echo "✅ 数据库创建成功: $DB_FILE"
@@ -285,10 +284,31 @@ chmod 600 "${MASTER_DIR}/master.conf"
chmod 600 "$DB_FILE"
# ====================================================================
# 4. 拉取核心调度代码并运行
echo -e "\n[4/4] 部署 TG 调度守护进程..."
# [修改] 剥离了写死的网址,改用顶部的 ${REPO_RAW_URL} 变量,确保与卸载脚本的数据源同源
curl -sL "${REPO_RAW_URL}/master/tg_master.sh" -o "${MASTER_DIR}/tg_master.sh"
# 4. 拉取核心调度代码并执行原子化交接
echo -e "\n[4/4] 正在拉取新版司令部核心引擎..."
TMP_MASTER="${SECURE_TMP}/tg_master.sh"
curl -sL "${REPO_RAW_URL}/master/tg_master.sh" -o "$TMP_MASTER"
# 🛡️ 防砖终极校验
if [ ! -s "$TMP_MASTER" ]; then
echo -e "\033[31m❌ 致命错误:中枢核心代码拉取失败!网络阻断或 GitHub Raw 异常。\033[0m"
echo "🛡️ 防砖机制触发:已中止覆盖,旧版司令部仍在安全运行中。"
rm -f "$TMP_MASTER"
exit 1
fi
# 🟢 [原子化交接核心]: 校验完美通过,新代码已备妥!
# 以雷霆手段抹杀旧版调度进程,杜绝文件覆写时的并发错乱
echo "⏳ 新引擎校验通过,正在抹杀旧版守护进程..."
if command -v systemctl >/dev/null 2>&1; then
systemctl kill --signal=SIGKILL ip-sentinel-master.service >/dev/null 2>&1 || true
systemctl stop ip-sentinel-master.service >/dev/null 2>&1 || true
fi
pkill -9 -f "tg_master.sh" >/dev/null 2>&1 || true
# 执行物理替换
mv "$TMP_MASTER" "${MASTER_DIR}/tg_master.sh"
chmod +x "${MASTER_DIR}/tg_master.sh"
if command -v systemctl >/dev/null 2>&1; then
@@ -319,16 +339,13 @@ EOF
systemctl enable --now ip-sentinel-master.service
systemctl restart ip-sentinel-master.service
# 清理可能残留的历史 Cron
crontab -l 2>/dev/null | grep -v "tg_master.sh" > /tmp/cron_master || true
[ -f /tmp/cron_master ] && crontab /tmp/cron_master 2>/dev/null
rm -f /tmp/cron_master
# 清理可能残留的历史 Cron (无落地内存流防劫持)
crontab -l 2>/dev/null | grep -v "tg_master.sh" | crontab - >/dev/null 2>&1 || true
else
echo "💡 未检测到 Systemd回退到 Cron 看门狗调度模式..."
crontab -l 2>/dev/null | grep -v "tg_master.sh" > /tmp/cron_master || true
echo "* * * * * pgrep -f tg_master.sh >/dev/null || nohup bash ${MASTER_DIR}/tg_master.sh >/dev/null 2>&1 &" >> /tmp/cron_master
[ -f /tmp/cron_master ] && crontab /tmp/cron_master 2>/dev/null
rm -f /tmp/cron_master
crontab -l 2>/dev/null | grep -v "tg_master.sh" > "${SECURE_TMP}/cron_master" || true
echo "* * * * * pgrep -f tg_master.sh >/dev/null || nohup bash ${MASTER_DIR}/tg_master.sh >/dev/null 2>&1 &" >> "${SECURE_TMP}/cron_master"
[ -f "${SECURE_TMP}/cron_master" ] && crontab "${SECURE_TMP}/cron_master" 2>/dev/null
pgrep -f tg_master.sh >/dev/null || { nohup bash "${MASTER_DIR}/tg_master.sh" >/dev/null 2>&1 & disown 2>/dev/null; }
fi

View File

@@ -11,8 +11,7 @@ source "$CONF"
# [核心: 运行态版本继承与云通信地址]
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# 临时改为开发地址用于测试
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/v3.6.2-rc"
# MASTER_VERSION 已经在上方的 source "$CONF" 中被载入
# 如果本地极度陈旧没有该变量,才给定一个基础兜底值,避免变量为空导致崩溃
MASTER_VERSION=${MASTER_VERSION:-"3.5.0"}
@@ -21,6 +20,26 @@ OFFSET_FILE="${MASTER_DIR}/.tg_offset"
[[ -f $OFFSET_FILE ]] || echo "0" > $OFFSET_FILE
# --- 工具函数 ---
# ================== [v4.0.3 核心: 全球全能旗帜渲染引擎] ==================
get_flag() {
local region=$(echo "$1" | tr 'a-z' 'A-Z')
local base_cc="${region%%-*}" # 提取横杠前的主国家代码 (例如 US-TX 提取为 US)
local flag="🌐"
case "$base_cc" in
US) flag="🇺🇸" ;; JP) flag="🇯🇵" ;; HK) flag="🇭🇰" ;; TW) flag="🇹🇼" ;; SG) flag="🇸🇬" ;;
UK|GB) flag="🇬🇧" ;; DE) flag="🇩🇪" ;; FR) flag="🇫🇷" ;; NL) flag="🇳🇱" ;; CA) flag="🇨🇦" ;;
AU) flag="🇦🇺" ;; KR) flag="🇰🇷" ;; IN) flag="🇮🇳" ;; BR) flag="🇧🇷" ;; RU) flag="🇷🇺" ;;
CH) flag="🇨🇭" ;; SE) flag="🇸🇪" ;; NO) flag="🇳🇴" ;; DK) flag="🇩🇰" ;; FI) flag="🇫🇮" ;;
IT) flag="🇮🇹" ;; ES) flag="🇪🇸" ;; PT) flag="🇵🇹" ;; IE) flag="🇮🇪" ;; PL) flag="🇵🇱" ;;
AT) flag="🇦🇹" ;; BE) flag="🇧🇪" ;; TR) flag="🇹🇷" ;; ZA) flag="🇿🇦" ;; AE) flag="🇦🇪" ;;
MY) flag="🇲🇾" ;; ID) flag="🇮🇩" ;; VN) flag="🇻🇳" ;; TH) flag="🇹🇭" ;; PH) flag="🇵🇭" ;;
NZ) flag="🇳🇿" ;; AR) flag="🇦🇷" ;; CL) flag="🇨🇱" ;; MX) flag="🇲🇽" ;; IL) flag="🇮🇱" ;;
SA) flag="🇸🇦" ;; EG) flag="🇪🇬" ;; NG) flag="🇳🇬" ;; KE) flag="🇰🇪" ;; RO) flag="🇷🇴" ;;
BG) flag="🇧🇬" ;; CZ) flag="🇨🇿" ;; HU) flag="🇭🇺" ;; GR) flag="🇬🇷" ;; UA) flag="🇺🇦" ;;
esac
echo "$flag"
}
send_ui() {
curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
@@ -83,7 +102,7 @@ db_exec "ALTER TABLE nodes ADD COLUMN enable_trust TEXT DEFAULT 'true';" 2>/dev/
db_exec "ALTER TABLE nodes ADD COLUMN enable_ota TEXT DEFAULT 'false';" 2>/dev/null
# ========================================================================
# ================== [v4.0.0 核心: 增加 IP 质量趋势追踪表] ==================
# ================== [v4.0.0/v4.0.2 核心: 增加 IP 质量趋势追踪表] ==================
db_exec "CREATE TABLE IF NOT EXISTS ip_trend_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
node_name TEXT,
@@ -91,6 +110,9 @@ db_exec "CREATE TABLE IF NOT EXISTS ip_trend_log (
scam_score INTEGER,
nf_status TEXT
);" 2>/dev/null
# [v4.0.2 热更新] 动态扩容 谷歌 与 ChatGPT 状态追踪字段
db_exec "ALTER TABLE ip_trend_log ADD COLUMN goog_status TEXT DEFAULT 'Unknown';" 2>/dev/null
db_exec "ALTER TABLE ip_trend_log ADD COLUMN gpt_status TEXT DEFAULT 'Unknown';" 2>/dev/null
# ========================================================================
# --- 核心轮询循环 ---
@@ -108,18 +130,51 @@ while true; do
CHAT_ID=$(echo "$UPDATE" | jq -r '.message.chat.id // .callback_query.message.chat.id')
TEXT=$(echo "$UPDATE" | jq -r '.message.text // .callback_query.data')
# ================== [v4.0.0 新增: 深海声呐暗号拦截与落盘] ==================
if [[ "$TEXT" == *"[SYSTEM_REPORT]|QUALITY|"* ]]; then
# 截获系统隐写报告,提取分数并存库 (格式: [SYSTEM_REPORT]|QUALITY|NODE_NAME|SCORE|NF_STAT)
REPORT_DATA=$(echo "$TEXT" | grep -o "\[SYSTEM_REPORT\].*")
NODE_ID=$(echo "$REPORT_DATA" | cut -d'|' -f3 | tr -cd 'a-zA-Z0-9_.-')
SCORE=$(echo "$REPORT_DATA" | cut -d'|' -f4 | tr -cd '0-9')
NF_ST=$(echo "$REPORT_DATA" | cut -d'|' -f5 | tr -cd 'a-zA-Z0-9_-')
# ================== [基础消息解析提取提前] ==================
# [致命 Bug 修复] 必须在 svq 入库判断前提取这俩变量,否则入库后无法重绘 UI
CB_ID=$(echo "$UPDATE" | jq -r '.callback_query.id // empty')
MSG_ID=$(echo "$UPDATE" | jq -r '.callback_query.message.message_id // empty')
# ================== [v4.0.2 核心: 态势感知按钮一键入库] ==================
if [[ "$TEXT" == "svq|"* ]]; then
# 格式: svq|NODE_NAME|SCORE|GOOG|NF|GPT
IFS='|' read -r MAGIC RAW_NODE_ID RAW_SCORE RAW_GOOG_ST RAW_NF_ST RAW_GPT_ST <<< "$TEXT"
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
# 🛡️ 终极防御:彻底清洗,封死一切 SQL 注入通道
NODE_ID=$(echo "$RAW_NODE_ID" | tr -cd 'a-zA-Z0-9_.-')
SCORE=$(echo "$RAW_SCORE" | tr -cd '0-9')
GOOG_ST=$(echo "$RAW_GOOG_ST" | tr -d '"'\''\`\$\|&;<>\n\r')
NF_ST=$(echo "$RAW_NF_ST" | tr -d '"'\''\`\$\|&;<>\n\r')
GPT_ST=$(echo "$RAW_GPT_ST" | tr -d '"'\''\`\$\|&;<>\n\r')
if [ -n "$NODE_ID" ] && [ -n "$SCORE" ]; then
db_exec "INSERT INTO ip_trend_log (node_name, scam_score, nf_status) VALUES ('$NODE_ID', '$SCORE', '$NF_ST');"
# 1. 写入 SQLite
db_exec "INSERT INTO ip_trend_log (node_name, scam_score, goog_status, nf_status, gpt_status) VALUES ('$NODE_ID', '$SCORE', '$GOOG_ST', '$NF_ST', '$GPT_ST');"
# [体验优化] 弹出顶部 Toast 气泡,提示入库成功
if [ -n "$CB_ID" ]; then
curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/answerCallbackQuery" \
-d "callback_query_id=${CB_ID}" \
-d "text=✅ 报告已成功录入趋势库!" \
-d "show_alert=false" > /dev/null
fi
# 2. 无损修改原消息:移除入库按钮,展示绿勾状态 (防连点机制生效)
if [ -n "$MSG_ID" ]; then
curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/editMessageReplyMarkup" \
-H "Content-Type: application/json" \
-d "{\"chat_id\":\"${CHAT_ID}\",\"message_id\":\"${MSG_ID}\",\"reply_markup\":{\"inline_keyboard\":[[{\"text\":\"✅ 此报告已存档\",\"callback_data\":\"ignore\"}]]}}" > /dev/null
fi
else
# [异常兜底] 弹出红色警告弹窗
if [ -n "$CB_ID" ]; then
curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/answerCallbackQuery" \
-d "callback_query_id=${CB_ID}" \
-d "text=❌ 数据解析失败,入库中止。" \
-d "show_alert=true" > /dev/null
fi
fi
# 无需回复用户,因为 Agent 原战报已发在群中
continue
fi
# ======================================================================
@@ -143,10 +198,7 @@ while true; do
fi
# ================== [v3.0.1 新增: 消除转圈圈与获取消息ID] ==================
CB_ID=$(echo "$UPDATE" | jq -r '.callback_query.id // empty')
MSG_ID=$(echo "$UPDATE" | jq -r '.callback_query.message.message_id // empty')
# 告诉 TG 官方“指令已收到”,立刻消除按钮上的加载圈圈
# 告诉 TG 官方“指令已收到”,立刻消除按钮上的加载圈圈 (对其他常规按钮生效)
if [ -n "$CB_ID" ]; then
curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/answerCallbackQuery" -d "callback_query_id=${CB_ID}" > /dev/null
fi
@@ -206,13 +258,7 @@ while true; do
BTNS="["
while IFS='|' read -r REGION_NAME NODE_COUNT; do
[ -z "$REGION_NAME" ] && REGION_NAME="UNKNOWN"
FLAG="🌐"
case "$REGION_NAME" in
"US") FLAG="🇺🇸" ;; "JP") FLAG="🇯🇵" ;; "HK") FLAG="🇭🇰" ;;
"SG") FLAG="🇸🇬" ;; "UK"|"GB") FLAG="🇬🇧" ;; "DE") FLAG="🇩🇪" ;; "FR") FLAG="🇫🇷" ;;
"CA") FLAG="🇨🇦" ;; "AU") FLAG="🇦🇺" ;; "KR") FLAG="🇰🇷" ;; "NL") FLAG="🇳🇱" ;;
"BR") FLAG="🇧🇷" ;; "IN") FLAG="🇮🇳" ;; "TW") FLAG="🇹🇼" ;;
esac
FLAG=$(get_flag "$REGION_NAME")
BTNS="$BTNS[{\"text\":\"$FLAG $REGION_NAME ($NODE_COUNT 台)\",\"callback_data\":\"region:$REGION_NAME\"}],"
done <<< "$REGION_DATA"
BTNS="${BTNS%,}]"
@@ -269,8 +315,7 @@ while true; do
send_msg "$CHAT_ID" "📢 **司令部指令下达:正在唤醒全舰队执行 OTA 升级...**%0A*(节点升级成功后会主动发回新的入库确认,请注意查收)*"
echo "$NODE_DATA" | while IFS='|' read -r NNAME AIP APORT; do
TARGET_URL=$(generate_signed_url "$AIP" "$APORT" "/trigger_ota")
# [灾难救援通道] 仅针对 OTA 允许一次明文回退,抢救缺失证书的老节点
{ curl -k -s -m 5 "$TARGET_URL" || curl -s -m 5 "${TARGET_URL/https:\/\//http:\/\/}"; } > /dev/null &
curl -k -s -m 5 "$TARGET_URL" > /dev/null &
sleep 0.3 # 严格流量削峰
done
fi
@@ -360,7 +405,7 @@ while true; do
"/quality"|"/quality@"*)
TARGET_NODE=$(echo "$TEXT" | awk '{print $2}')
if [ -z "$TARGET_NODE" ]; then
send_msg "$CHAT_ID" "⚠️ 请指定目标节点。例如: \`/quality HK-1\`\n或通过雷达面板进行选择操作。"
send_msg "$CHAT_ID" "⚠️ 请指定目标节点。例如: \`/quality HK-1\`%0A或通过雷达面板进行选择操作。"
else
TARGET_NODE=$(echo "$TARGET_NODE" | tr -cd 'a-zA-Z0-9_.-')
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
@@ -376,10 +421,6 @@ while true; do
# 动态 HMAC 签名防篡改
TARGET_URL=$(generate_signed_url "$AGENT_IP" "$AGENT_PORT" "/trigger_quality")
RESPONSE=$(curl -k -s -m 5 "$TARGET_URL" || echo "FAILED")
if [ "$RESPONSE" == "FAILED" ] || [ -z "$RESPONSE" ]; then
TARGET_URL_HTTP="${TARGET_URL/https:\/\//http:\/\/}"
RESPONSE=$(curl -s -m 5 "$TARGET_URL_HTTP" || echo "FAILED")
fi
# 结果判定
if [ "$RESPONSE" == "FAILED" ]; then
@@ -398,12 +439,12 @@ while true; do
"/trend"|"/trend@"*)
TARGET_NODE=$(echo "$TEXT" | awk '{print $2}')
if [ -z "$TARGET_NODE" ]; then
send_msg "$CHAT_ID" "⚠️ 请指定目标节点。例如: \`/trend HK-1\`\n或通过雷达面板进行选择操作。"
send_msg "$CHAT_ID" "⚠️ 请指定目标节点。例如: \`/trend HK-1\`%0A或通过雷达面板进行选择操作。"
else
TARGET_NODE=$(echo "$TARGET_NODE" | tr -cd 'a-zA-Z0-9_.-')
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
TREND_DATA=$(db_exec "SELECT datetime(check_time, 'localtime'), scam_score, nf_status FROM ip_trend_log WHERE node_name='$TARGET_NODE' ORDER BY check_time DESC LIMIT 10;")
TREND_DATA=$(db_exec "SELECT datetime(check_time, 'localtime'), scam_score, goog_status, nf_status, gpt_status FROM ip_trend_log WHERE node_name='$TARGET_NODE' ORDER BY check_time DESC LIMIT 15;")
if [ -z "$TREND_DATA" ]; then
send_msg "$CHAT_ID" "⚠️ 节点 \`$TARGET_NODE\` 暂无历史体检档案。请先执行 /quality 投放声呐进行探测。"
@@ -411,22 +452,30 @@ while true; do
TARGET_ALIAS=$(db_exec "SELECT IFNULL(node_alias, node_name) FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE' LIMIT 1;")
[ -z "$TARGET_ALIAS" ] && TARGET_ALIAS="$TARGET_NODE"
TEXT_RES="📈 *[${TARGET_ALIAS}] IP 污染趋势图谱*\n\n"
TEXT_RES+="时间 (本地) | 风险分 | NF解锁\n"
TEXT_RES+="------------------------------------\n"
TEXT_RES="📈 *[${TARGET_ALIAS}] 历史态势感知 (近15次)*\n\n"
TEXT_RES+="时间(本地) | 风险 | 谷歌 | NF | GPT\n"
TEXT_RES+="-----------------------------------------\n"
while IFS='|' read -r c_time score nf; do
while IFS='|' read -r c_time score goog nf gpt; do
[ -z "$score" ] && score="0"
[ -z "$nf" ] && nf="Unknown"
[ -z "$goog" ] && goog="未知"
[ -z "$nf" ] && nf="未知"
[ -z "$gpt" ] && gpt="未知"
short_time=$(echo "$c_time" | cut -c 6-16)
if [ "$score" -le 20 ]; then SCORE_EMJ="🟢"
elif [ "$score" -le 60 ]; then SCORE_EMJ="🟡"
else SCORE_EMJ="🔴"
fi
TEXT_RES+="\`${c_time}\` | ${SCORE_EMJ} \`${score}\` | \`${nf}\`\n"
TEXT_RES+="\`${short_time}\` | ${SCORE_EMJ}\`${score}\` | \`${goog}\` | \`${nf}\` | \`${gpt}\`\n"
done <<< "$TREND_DATA"
TEXT_RES+="\n_💡 提示:高危风险分 (🔴 >60) 极易触发 Google 验证码及 Cloudflare 5秒盾拦截。_"
TEXT_RES+="\n_💡 提示:🔴风险分 >60 极易触发网页验证码拦截;谷歌显示 CN 即为高危送中。_"
send_msg "$CHAT_ID" "$TEXT_RES"
# [v4.0.3 体验升级] 注入交互式控制台按钮
BTNS="[[{\"text\":\"⚙️ 调出该节点控制台\",\"callback_data\":\"manage:$TARGET_NODE\"}]]"
send_ui "$CHAT_ID" "$TEXT_RES" "$BTNS"
fi
fi
;;
@@ -441,14 +490,8 @@ while true; do
BTNS="["
while IFS='|' read -r REGION_NAME NODE_COUNT; do
[ -z "$REGION_NAME" ] && REGION_NAME="UNKNOWN"
FLAG="🌐"
case "$REGION_NAME" in
"US") FLAG="🇺🇸" ;; "JP") FLAG="🇯🇵" ;; "HK") FLAG="🇭🇰" ;;
"SG") FLAG="🇸🇬" ;; "UK"|"GB") FLAG="🇬🇧" ;; "DE") FLAG="🇩🇪" ;; "FR") FLAG="🇫🇷" ;;
"CA") FLAG="🇨🇦" ;; "AU") FLAG="🇦🇺" ;; "KR") FLAG="🇰🇷" ;; "NL") FLAG="🇳🇱" ;;
"BR") FLAG="🇧🇷" ;; "IN") FLAG="🇮🇳" ;; "TW") FLAG="🇹🇼" ;;
esac
BTNS="$BTNS[{\"text\":\"$FLAG $REGION_NAME ($NODE_COUNT 台)\",\"callback_data\":\"region:$REGION_NAME\"}],"
FLAG=$(get_flag "$REGION_NAME")
BTNS="$BTNS[{\"text\":\"$FLAG $REGION_NAME ($NODE_COUNT 台)\",\"callback_data\":\"region:$REGION_NAME\"}],"
done <<< "$REGION_DATA"
# L1 追加返回中枢逃生舱
BTNS="$BTNS[{\"text\":\"🏠 回到司令部\",\"callback_data\":\"/start\"}]]"
@@ -599,8 +642,19 @@ while true; do
TARGET_NODE=$(echo "${TEXT#*:}" | tr -cd 'a-zA-Z0-9_.-')
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
db_exec "DELETE FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE';"
send_msg "$CHAT_ID" "🗑️ 节点 \`$TARGET_NODE\` 的档案已从司令部彻底销毁!"
# 🛡️ [终极防线: 防越权横向打击] 先校验该节点是否真实属于当前操作者!
# 因为趋势库中没有 Chat_ID 标识,不校验直接删会给黑客伪造回调清空他人数据的机会!
VALID_OWNER=$(db_exec "SELECT 1 FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE' LIMIT 1;")
if [ "$VALID_OWNER" == "1" ]; then
# 验权通过,执行原子化级联销毁:同时抹除主配置与历史污染趋势
db_exec "DELETE FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE';"
db_exec "DELETE FROM ip_trend_log WHERE node_name='$TARGET_NODE';"
send_msg "$CHAT_ID" "🗑️ 节点 \`$TARGET_NODE\` 的档案及历史污染趋势已从司令部彻底销毁!"
else
send_msg "$CHAT_ID" "⛔ **安全拦截**:销毁失败。目标节点不存在或您无权越权操作!"
continue
fi
# 剔除后直接返回上级一级雷达菜单
REGION_DATA=$(db_exec "SELECT region, COUNT(*) FROM nodes WHERE chat_id='$CHAT_ID' GROUP BY region;")
@@ -610,13 +664,7 @@ while true; do
BTNS="["
while IFS='|' read -r REGION_NAME NODE_COUNT; do
[ -z "$REGION_NAME" ] && REGION_NAME="UNKNOWN"
FLAG="🌐"
case "$REGION_NAME" in
"US") FLAG="🇺🇸" ;; "JP") FLAG="🇯🇵" ;; "HK") FLAG="🇭🇰" ;;
"SG") FLAG="🇸🇬" ;; "UK"|"GB") FLAG="🇬🇧" ;; "DE") FLAG="🇩🇪" ;; "FR") FLAG="🇫🇷" ;;
"CA") FLAG="🇨🇦" ;; "AU") FLAG="🇦🇺" ;; "KR") FLAG="🇰🇷" ;; "NL") FLAG="🇳🇱" ;;
"BR") FLAG="🇧🇷" ;; "IN") FLAG="🇮🇳" ;; "TW") FLAG="🇹🇼" ;;
esac
FLAG=$(get_flag "$REGION_NAME")
BTNS="$BTNS[{\"text\":\"$FLAG $REGION_NAME ($NODE_COUNT 台)\",\"callback_data\":\"region:$REGION_NAME\"}],"
done <<< "$REGION_DATA"
BTNS="${BTNS%,}]"
@@ -693,16 +741,8 @@ while true; do
TARGET_URL=$(generate_signed_url "$AGENT_IP" "$AGENT_PORT" "/trigger_ota")
RESPONSE=$(curl -k -s -m 5 "$TARGET_URL" || echo "FAILED")
# [灾难救援通道] 仅针对 OTA 开放一次性明文降级,用于抢救缺失 openssl 证书的老节点
if [ "$RESPONSE" == "FAILED" ]; then
TARGET_URL_HTTP="${TARGET_URL/https:\/\//http:\/\/}"
RESPONSE=$(curl -s -m 5 "$TARGET_URL_HTTP" || echo "FAILED")
if [[ "$RESPONSE" == *"Action Accepted"* ]]; then
TEXT_RES="⚠️ **明文救援成功**:该节点因缺失证书处于 HTTP 裸奔状态!已强行下发 OTA 抢救指令,请等待其重构 TLS 装甲。"
else
TEXT_RES="❌ OTA 指令下发彻底失败!节点已失联或网络阻断。"
fi
TEXT_RES="❌ OTA 指令下发彻底失败!链路异常或严禁使用 HTTP 降级通讯。"
elif [[ "$RESPONSE" == *"403"* ]]; then
TEXT_RES="⚠️ **节点拒绝执行**:该节点本地未开启 OTA 权限或运行在官方网关下!"
else
@@ -774,11 +814,11 @@ while true; do
trend:*)
# [v4.0.0 新增: 生成 IP 质量趋势图]
# [v4.0.2 优化: 扩容 15 次追踪并引入 GOOG/GPT 状态]
TARGET_NODE=$(echo "${TEXT#*:}" | tr -cd 'a-zA-Z0-9_.-')
CHAT_ID=$(echo "$CHAT_ID" | tr -cd '0-9-')
TREND_DATA=$(db_exec "SELECT datetime(check_time, 'localtime'), scam_score, nf_status FROM ip_trend_log WHERE node_name='$TARGET_NODE' ORDER BY check_time DESC LIMIT 10;")
TREND_DATA=$(db_exec "SELECT datetime(check_time, 'localtime'), scam_score, goog_status, nf_status, gpt_status FROM ip_trend_log WHERE node_name='$TARGET_NODE' ORDER BY check_time DESC LIMIT 15;")
if [ -z "$TREND_DATA" ]; then
TEXT_RES="⚠️ 节点 \`$TARGET_NODE\` 暂无历史体检档案。请先执行 [🔍 投放深海声呐] 进行探测。"
@@ -786,28 +826,37 @@ while true; do
TARGET_ALIAS=$(db_exec "SELECT IFNULL(node_alias, node_name) FROM nodes WHERE chat_id='$CHAT_ID' AND node_name='$TARGET_NODE' LIMIT 1;")
[ -z "$TARGET_ALIAS" ] && TARGET_ALIAS="$TARGET_NODE"
TEXT_RES="📈 *[${TARGET_ALIAS}] IP 污染趋势图谱*\n\n"
TEXT_RES+="时间 (本地) | 风险分 | NF解锁\n"
TEXT_RES+="------------------------------------\n"
TEXT_RES="📈 *[${TARGET_ALIAS}] 历史态势感知 (近15次)*\n\n"
TEXT_RES+="时间(本地) | 风险 | 谷歌 | NF | GPT\n"
TEXT_RES+="-----------------------------------------\n"
while IFS='|' read -r c_time score nf; do
# 清洗数据防空
while IFS='|' read -r c_time score goog nf gpt; do
[ -z "$score" ] && score="0"
[ -z "$nf" ] && nf="Unknown"
[ -z "$goog" ] && goog="未知"
[ -z "$nf" ] && nf="未知"
[ -z "$gpt" ] && gpt="未知"
# 时间做极简切割 (截取 04-24 20:52) 节省横向空间
short_time=$(echo "$c_time" | cut -c 6-16)
if [ "$score" -le 20 ]; then SCORE_EMJ="🟢"
elif [ "$score" -le 60 ]; then SCORE_EMJ="🟡"
else SCORE_EMJ="🔴"
fi
TEXT_RES+="\`${c_time}\` | ${SCORE_EMJ} \`${score}\` | \`${nf}\`\n"
# 拼接紧凑排版
TEXT_RES+="\`${short_time}\` | ${SCORE_EMJ}\`${score}\` | \`${goog}\` | \`${nf}\` | \`${gpt}\`\n"
done <<< "$TREND_DATA"
TEXT_RES+="\n_💡 提示:高危风险分 (🔴 >60) 极易触发 Google 验证码及 Cloudflare 5秒盾拦截。_"
TEXT_RES+="\n_💡 提示:🔴风险分 >60 极易触发网页验证码拦截;谷歌显示 CN 即为高危送中。_"
fi
# [v4.0.3 体验升级] 注入交互式控制台按钮,并调用原生 UI 重绘函数
BTNS="[[{\"text\":\"⚙️ 调出该节点控制台\",\"callback_data\":\"manage:$TARGET_NODE\"}]]"
if [ -n "$MSG_ID" ]; then
edit_msg "$CHAT_ID" "$MSG_ID" "$TEXT_RES"
edit_ui "$CHAT_ID" "$MSG_ID" "$TEXT_RES" "$BTNS"
else
send_msg "$CHAT_ID" "$TEXT_RES"
send_ui "$CHAT_ID" "$TEXT_RES" "$BTNS"
fi
;;

View File

@@ -38,6 +38,8 @@ fi
echo "[1/4] 正在停止并删除 Systemd 服务..."
if command -v systemctl >/dev/null 2>&1; then
echo "💡 检测到 Systemd 环境,正在抹除 Systemd 服务单元..."
# [防死锁修复] 先发送 SIGKILL 瞬间抹杀,防止卡死
systemctl kill --signal=SIGKILL ip-sentinel-master.service >/dev/null 2>&1 || true
systemctl disable --now ip-sentinel-master.service >/dev/null 2>&1
rm -f /etc/systemd/system/ip-sentinel-master.service
systemctl daemon-reload
@@ -52,9 +54,8 @@ pkill -9 -f "tg_master.sh" >/dev/null 2>&1 || true
# 3. 清除看门狗定时任务 (Cron)
echo "[3/4] 正在清理系统定时任务 (Cron)..."
crontab -l 2>/dev/null | grep -v "tg_master.sh" > /tmp/cron_backup
crontab /tmp/cron_backup
rm -f /tmp/cron_backup
# [终极防御] 内存管道流过滤,绝不写硬盘
crontab -l 2>/dev/null | grep -v "tg_master.sh" | crontab - >/dev/null 2>&1 || true
# 4. 删除所有文件、配置与数据库
echo "[4/4] 正在抹除核心程序、配置文件与 SQLite 数据库..."

View File

@@ -30,7 +30,8 @@ RSS_FEEDS = {
"SG": ["https://www.channelnewsasia.com/api/v1/rss-outbound-feed?_format=xml"],
"NL": ["https://feeds.nos.nl/nosnieuwsalgemeen"],
"VN": ["https://vnexpress.net/rss/tin-moi-nhat.rss"],
"MY": ["https://news.google.com/rss?hl=en-MY&gl=MY&ceid=MY:en"]
"MY": ["https://news.google.com/rss?hl=en-MY&gl=MY&ceid=MY:en"],
"NG": ["https://punchng.com/feed/", "https://guardian.ng/feed/"]
}
def fetch_rss_links(region_code, max_items=15):

View File

@@ -1,2 +1,2 @@
MASTER_VERSION=4.0.1
AGENT_VERSION=4.0.1
MASTER_VERSION=4.0.6
AGENT_VERSION=4.0.6