Compare commits

...

379 Commits

Author SHA1 Message Date
hotyue
793332a9ef chore(release): bump Agent version to v4.0.9 2026-05-09 00:31:06 +00:00
hotyue
0f50ca38ee fix(scripts): 重构热词抓取引擎,增加 LA/MN 战区兜底机制,并引入 UA 轮换与请求限流防封锁 2026-05-09 00:05:59 +00:00
hotyue
8424b0c9bc fix(data): 完善 PR #47 遗留细节,修正沙特 Google 后缀并为数据引擎补充 12 个新国家的 RSS 活体新闻源 2026-05-08 23:49:40 +00:00
MOK
0e240b66ee Create kw_SA.txt 2026-05-09 03:26:47 +08:00
MOK
f464617366 Update map.json 2026-05-09 01:04:13 +08:00
MOK
17b525eae8 Create Riyadh.json 2026-05-09 01:02:47 +08:00
MOK
c9c6cc5cae Update map.json 2026-05-09 01:01:58 +08:00
MOK
70c328bbc5 Create kw_AE.txt 2026-05-09 01:00:22 +08:00
MOK
86c9a5b15b Create Dubai.json 2026-05-09 01:00:11 +08:00
MOK
9deaea5490 Update map.json 2026-05-09 00:58:03 +08:00
MOK
ca0055f769 Create kw_BD.txt 2026-05-09 00:57:10 +08:00
MOK
4b388fc343 Create Dhaka.json 2026-05-09 00:56:55 +08:00
MOK
75d7e2b0f9 Update map.json 2026-05-09 00:56:13 +08:00
MOK
e81467f31f Create kw_NP.txt 2026-05-09 00:55:17 +08:00
MOK
d497ed44ef Create Kathmandu.json 2026-05-09 00:55:02 +08:00
MOK
f4aa566f01 Update map.json 2026-05-09 00:54:09 +08:00
MOK
d087687d38 Create kw_MN.txt 2026-05-09 00:52:43 +08:00
MOK
05b91a736d Create Ulaanbaatar.json 2026-05-09 00:52:26 +08:00
MOK
1809168562 Update map.json 2026-05-09 00:50:50 +08:00
MOK
e52315798a Create Honolulu.json 2026-05-09 00:47:31 +08:00
MOK
a1b1168aa6 Delete data/regions/US/Hawaii directory 2026-05-09 00:47:09 +08:00
MOK
ccabed6bea Create Honolulu.json 2026-05-09 00:44:13 +08:00
MOK
7342559844 Update map.json 2026-05-09 00:42:48 +08:00
MOK
b85529e2c1 Create kw_IN.txt 2026-05-09 00:41:50 +08:00
MOK
96ba81c611 Create Delhi.json 2026-05-09 00:41:34 +08:00
MOK
bc87d9d9af Update map.json 2026-05-09 00:41:03 +08:00
MOK
6f91d30e82 Create kw_ID.txt 2026-05-09 00:40:00 +08:00
MOK
392517514c Create Jakarta.json 2026-05-09 00:39:40 +08:00
MOK
b05789a367 Update map.json 2026-05-09 00:38:31 +08:00
MOK
7a1f974930 Create kw_LA.txt 2026-05-09 00:37:27 +08:00
MOK
ef283dcbf3 Create Vientiane.json 2026-05-09 00:37:14 +08:00
MOK
ac0c4abd8b Update map.json 2026-05-09 00:36:04 +08:00
MOK
5a1194f8de Create kw_MM.txt 2026-05-09 00:34:56 +08:00
MOK
a49976d54c Create Yangon.json 2026-05-09 00:34:34 +08:00
MOK
aed5a5bf0f Update map.json 2026-05-09 00:34:01 +08:00
MOK
5793f13b9c Create kw_KH.txt 2026-05-09 00:32:30 +08:00
MOK
fb58f25175 Create PhnomPenh.json 2026-05-09 00:32:10 +08:00
MOK
9c434fdbdc Update map.json 2026-05-09 00:29:37 +08:00
MOK
3c8cd0499e Create kw_TH.txt 2026-05-09 00:27:25 +08:00
MOK
f26bb49692 Create Bangkok.json 2026-05-09 00:26:56 +08:00
MOK
8b0abf8d05 Add Philippines Manila region support
Add Philippines (PH) Manila region

- Added Manila config
- Added PH keyword file
- Updated map.json
2026-05-09 00:21:39 +08:00
MOK
518b62444e Create kw_PH.txt 2026-05-09 00:16:35 +08:00
MOK
ffc593f9bc Create Manila.json
Add Philippines Manila region config
2026-05-09 00:15:14 +08:00
hotyue
84b5fc9f93 docs: 更新官方网关模式下的 Agent 部署教程链接 2026-05-08 05:48:28 +00:00
github-actions[bot]
14761ee128 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-08] 2026-05-08 05:24:41 +00:00
hotyue
4d29b719ef fix(scripts): 修复 NG 战区 RSS 抓取 403 报错,替换为高可用源 (Vanguard News) 2026-05-07 08:42:38 +00:00
github-actions[bot]
a3d4de00bc chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-07] 2026-05-07 05:55:18 +00:00
hotyue
aa3fb2e298 feat(data): 新增土耳其 (TR) 战区及伊斯坦布尔节点,并补充活体新闻流 RSS 源 (closes #46) 2026-05-07 05:44:12 +00:00
hotyue
3fb71e2a60 feat(data): 新增美洲核心数据中心节点,覆盖亚利桑那州凤凰城 (Phoenix, AZ) (closes #45) 2026-05-06 13:55:55 +00:00
hotyue
41520782d1 style(report): 移除每日战报底部的 GitHub URL 实体按钮,保持面板清爽 2026-05-06 06:31:59 +00:00
hotyue
24286ebb75 style(report): 优化每日简报底部 GitHub 引流文案排版,拆分为双行以提升阅读体验 2026-05-06 06:28:19 +00:00
hotyue
3f73825972 chore(release): bump version to v4.0.8 全面部署专业化 UI 与全网节点扩容 2026-05-06 06:13:57 +00:00
hotyue
56b655af2d feat(ui): 优化全局提示文案并脱除过度拟人化,在多端高光时刻增设 GitHub Star 引流按钮
1. core/install & master/install_master: 底部新增 OSC 8 终端超链接引流
2. core/tg_report & master/tg_master: 底部常驻跳转 GitHub 的内联键盘按钮
3. docs: 更新 README 注入顶部 Star 引导文案,并追加 @Bryan2333 贡献者致谢
2026-05-06 06:11:44 +00:00
github-actions[bot]
70d940584e chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-06] 2026-05-06 05:50:59 +00:00
github-actions[bot]
0cdb4f8d3f chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-05] 2026-05-05 05:36:04 +00:00
github-actions[bot]
67be930060 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-04] 2026-05-04 05:57:46 +00:00
hotyue
be82242ed1 feat(data): 新增美洲及欧洲主流数据中心节点,全面覆盖爱荷华、弗吉尼亚、法尔肯施泰因等机房重镇 (closes #43) 2026-05-03 11:31:47 +00:00
github-actions[bot]
67d6e35d9f chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-03] 2026-05-03 05:52:04 +00:00
hotyue
f34e697016 fix(install): 对齐双端部署脚本的网络波动兜底版本锚点 (Agent v4.0.6 / Master v4.0.7) 2026-05-03 02:22:03 +00:00
hotyue
56cfbb5485 chore(core): 删除已废弃的 tg_daemon.sh 长轮询脚本,全面对齐 Webhook 架构 2026-05-03 02:20:19 +00:00
github-actions[bot]
d40b7928d0 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-02] 2026-05-02 05:30:24 +00:00
github-actions[bot]
ac2f8b0a1c chore(data): 🤖 自动机兵:刷新 4000 条绝对坐标指纹库 2026-05-01 06:30:32 +00:00
github-actions[bot]
caf7589b89 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-05-01] 2026-05-01 06:09:27 +00:00
hotyue
ebada9f455 fix(install): 优化 Arch Linux 依赖安装逻辑,采用 -S --needed 避免部分更新导致系统损坏 (closes #42)
Thanks to @Bryan2333 for the pacman flag optimization and security improvements.
2026-05-01 03:38:17 +00:00
hotyue
d2dc1a20c3 Merge pull request #42 from Bryan2333/main
Change pacman install to use --needed flag
2026-05-01 11:31:13 +08:00
BryanLiang
d115f01d4a Fix pacman command to use '-S' instead of '-Sy' 2026-04-30 23:26:49 +08:00
BryanLiang
b1dc0ab79d Change pacman install to use --needed flag 2026-04-30 23:23:56 +08:00
github-actions[bot]
c147843d39 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-30] 2026-04-30 05:51:59 +00:00
hotyue
ae67817eb4 chore: bump MASTER_VERSION to v4.0.7 for tg_master UX optimization 2026-04-30 01:06:19 +00:00
hotyue
27e48defb2 feat(master): 优化 UX 体验,态势感知报告存档后保留返回节点控制台按钮 (closes #41) 2026-04-30 01:04:31 +00:00
github-actions[bot]
cc216e288e chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-29] 2026-04-29 05:48:04 +00:00
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
hotyue
b3fbed4a94 chore: 🚀 跃升至 v4.0.1,防弹装甲专项重构全面闭环 2026-04-24 10:53:08 +00:00
hotyue
71fe3bde51 fix(master): 补齐 Master 部署脚本缺失的 openssl 核心依赖,杜绝纯净系统下因 HMAC 签名生成失败导致指令被全网拒收的致命隐患 2026-04-24 10:48:18 +00:00
hotyue
c739f58cc5 refactor(agent): 🛡️ 终极安全重构 - 阻断 FD 文件锁继承导致的任务死锁,并将深海声呐探针收编本地化执行,彻底铲除第三方 RCE 投毒风险 2026-04-24 10:29:11 +00:00
hotyue
2c50c72fcb refactor(agent): 🛡️ 终极安全重构 - 阻断 FD 文件锁继承导致的任务死锁,并将深海声呐探针收编本地化执行,彻底铲除第三方 RCE 投毒风险 2026-04-24 10:28:38 +00:00
hotyue
8d16c549fc fix(agent): 修复公网 IP 变动重新注册时丢失 OTA 权限的漏洞,并彻底肃清质量检测路由中的僵尸进程残留 2026-04-24 10:09:18 +00:00
hotyue
d74d6d8775 fix(agent): 🚨 彻底废除官方网关模式下的 HTTP 裸奔漏洞,实现全网节点 100% 强制 TLS 加密,配合主控端 Strict-TLS 2026-04-24 10:02:40 +00:00
hotyue
853e6c09e1 fix(install): 修复 Alpine Linux 下 dcron 依赖缺失导致 openssl 链式静默安装失败的漏洞 2026-04-24 09:44:29 +00:00
hotyue
1f21ac9a7e fix: 🚨 破除 Strict-TLS 死亡锁死,强制全网挂载 openssl 证书,并为 OTA 指令开辟一次性 HTTP 灾难救援通道 2026-04-24 09:36:58 +00:00
hotyue
28fd94eff5 fix(agent): 🚀 全面排雷 - 修复 IPv6 映射监听失败、60秒 HMAC 并发重放漏洞、长效守护引发的僵尸进程泄露,并实现 OTA 源地址动态解耦 2026-04-24 07:30:12 +00:00
hotyue
7460935acc fix(master): 🚨 彻底废除 HTTP 强制降级漏洞,实现全链路 Strict-TLS 加密,封堵明文劫持入口 2026-04-24 07:16:08 +00:00
hotyue
109ae6f319 Merge PR #32: 引入双写日志架构,全面打通 Systemd Journal 遥测通道 2026-04-24 06:45:01 +00:00
hotyue
6b3acf5787 docs: 更新项目文档,彰显 V4.0.0 深海声呐全维探针与趋势追踪架构 2026-04-24 03:30:20 +00:00
hotyue
b1ecbd4f9a chore: 恢复拉取源为 main 并移除 Beta 标识,准备发布 v4.0.0 正式版 2026-04-24 03:25:32 +00:00
hotyue
4d091e4dd9 fix(agent): 增加双栈容灾试探,修复纯V6环境下提取云端版本号超时导致被异常降级的Bug 2026-04-24 03:25:01 +00:00
hotyue
ae6559c850 fix(master): 同步修复 V6 环境下提取云端版本号超时的 Bug,并抬高兜底版本至 v4.0.0 2026-04-24 03:24:24 +00:00
hotyue
5cfaebceab Merge remote-tracking branch 'origin/main' into dev/v4.0.0-sonar 2026-04-24 03:15:31 +00:00
github-actions[bot]
88f55cbab9 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-23] 2026-04-23 19:22:57 +00:00
IcySteam
1204336612 fix(telemetry): Restore dual-write logging to the Systemd journal
Reapply commit `e77b7c0`, which was (inadvertently?) omitted in the recent upstream rollup `34320b2`.

Original commit description:
```
This commit refactors the internal logging functions across all core modules to guarantee telemetry reaches the Systemd journal. Sentinels now mirror their physical log outputs directly to the OS `logger`, ensuring flawless `journalctl` visibility even when modules are spawned in detached subshells.
```
2026-04-24 01:47:56 +10:00
hotyue
49a65a5f11 fix(agent): 移除过度严格的 sed 过滤,修复因不可见字符导致的 JSON 截断告警,确立终极情报版战报排版 2026-04-23 14:14:24 +00:00
hotyue
7e5b836a49 feat(agent): 彻底重构声呐战报,解决广告字符干扰,实现全库打分矩阵与流媒体高亮排版 2026-04-23 14:08:07 +00:00
hotyue
18f80400ef feat(agent): 升级深海声呐为满血版,补充展示 ASN/归属地/原生IP/25端口及 Abuse 投诉分 2026-04-23 13:58:18 +00:00
hotyue
eca4b41da4 feat(agent): 丰富深海声呐战报,增加 YouTube/Disney/TikTok 解锁展示与 Google 送中警告 2026-04-23 13:51:08 +00:00
hotyue
a24a533165 fix(agent): 修复 webhook 路由 Python 严格缩进错误导致的进程崩溃问题 2026-04-23 13:40:12 +00:00
hotyue
d2b575fe85 chore: 临时将全局拉取源切换至 dev/v4.0.0-sonar,准备进行深海声呐实弹测试 2026-04-23 13:33:07 +00:00
hotyue
cb0aa2049e chore: 移除 beta 标识,准备发布 v4.0.0 正式版 2026-04-23 13:28:49 +00:00
hotyue
981b9e4859 feat(master): 完善部署脚本,新增 ip_trend_log 数据表以支持 IP 污染趋势追踪 2026-04-23 13:26:11 +00:00
hotyue
eeee1b6811 feat(agent): 新增深海声呐核心模块 (mod_quality.sh),实现异步 IP 质量探测与隐写战报回传 2026-04-23 13:25:54 +00:00
hotyue
e6852d0c9d feat(agent): 将深海声呐武器 mod_quality.sh 接入 install 部署/OTA 补给线 2026-04-23 13:22:22 +00:00
hotyue
23ea08f981 feat(agent): Webhook 追加 /trigger_quality 路由,支持异步拉起深海声呐 2026-04-23 13:17:36 +00:00
hotyue
580a3d7fd5 feat(master): 完善深海声呐与趋势监测中枢,指令与 UI 面板彻底闭环 2026-04-23 13:13:06 +00:00
hotyue
6eabb60c28 chore: 开启 v4.0.0-sonar 深海声呐模块开发分支,升级版本号至 beta 2026-04-23 12:27:11 +00:00
hotyue
7fd432ffee fix(install): 修复装机量统计逻辑,仅在全新部署时触发探针,彻底解决平滑升级导致的数据虚高与 Cloudflare KV 写入配额耗尽问题 2026-04-23 11:18:46 +00:00
github-actions[bot]
351143e59d chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-23] 2026-04-23 01:59:32 +00:00
hotyue
725e8ae8c9 ci: 全局挂载 FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true 消除 Node.js 20 弃用警告 2026-04-23 01:58:44 +00:00
github-actions[bot]
1e9de46fc5 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-23] 2026-04-23 01:56:38 +00:00
hotyue
543ab5c8bd Merge branch 'main' of https://github.com/hotyue/IP-Sentinel 2026-04-23 01:53:47 +00:00
hotyue
972cd02874 fix(scripts): 修复 MY 战区 Yahoo RSS 拒绝 GitHub IP (403) 问题,切换为高可用 Google News 源 2026-04-23 01:53:36 +00:00
github-actions[bot]
9c37cb9df3 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-23] 2026-04-23 01:51:45 +00:00
hotyue
2a8a6b6fa7 feat(region): 拓展亚太战区,新增马来西亚 (MY) 节点及本地骨干网与 RSS 活体流 (Resolves #31) 2026-04-23 01:50:15 +00:00
hotyue
e4b4c747eb chore(data): 初始化 MY (马来西亚) 战区热点词库基石,防止边缘节点初次部署时 404 2026-04-23 01:49:39 +00:00
github-actions[bot]
eabd33e6b2 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-22] 2026-04-22 19:24:05 +00:00
hotyue
233af7181f release: bump AGENT_VERSION to v3.6.4 for Trust module Live News Engine 2026-04-22 14:03:41 +00:00
github-actions[bot]
62fb19f0c5 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-22] 2026-04-22 13:49:03 +00:00
hotyue
54178ddcf1 fix(scripts): 修复 TW 战区 Yahoo RSS 拒绝 GitHub Actions IP 访问 (403) 的问题,切换至高可用 Google News TW 源 2026-04-22 13:48:06 +00:00
github-actions[bot]
92a65d8308 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-22] 2026-04-22 13:45:37 +00:00
hotyue
eaaa7dabf0 Merge branch 'main' of https://github.com/hotyue/IP-Sentinel 2026-04-22 13:43:44 +00:00
hotyue
e797c8203f fix(scripts): 修复 HK 与 TW 战区 RSS 情报源失效报 404/解析错误的问题,切换至高可用源 2026-04-22 13:43:31 +00:00
github-actions[bot]
9ecf50c153 chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [2026-04-22] 2026-04-22 13:37:10 +00:00
hotyue
c02b7eecc9 feat(scripts): 引入 v3.6.4 活体新闻融合引擎,重构 Action 流水线实现冷热数据合并原子提交 2026-04-22 13:35:20 +00:00
hotyue
6af8b6b25d chore(data): 注入全球国家级权威骨干网基石,重构 Trust 模块冷数据结构 2026-04-22 13:31:28 +00:00
hotyue
7081aa77cc fix(core): 废除 OnBootSec 相对开机时间,改用高兼容性的 OnActiveSec,彻底修复老内核系统下自动巡逻瘫痪的 Bug 2026-04-22 12:42:04 +00:00
hotyue
5e48edb030 fix(core): 废除物理阉割,全量下载模块脚本,彻底修复动态启用模块后提示 403 文件不存在的 Bug 2026-04-22 11:53:20 +00:00
github-actions[bot]
5f0f677f59 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-21] 2026-04-21 19:22:42 +00:00
hotyue
7f0c3e3e29 release: bump version to v3.6.3 for final release 2026-04-21 09:50:14 +00:00
hotyue
c03f6ca9ba chore: 准备 v3.6.3 正式发布,将所有云端资源路由切换回 main 主干分支 2026-04-21 09:48:14 +00:00
hotyue
66f3ba7d06 perf(master): 优化包管理器参数,拒绝冗余依赖捆绑,实现 Master 中枢极致轻量化部署 2026-04-21 09:32:54 +00:00
hotyue
511ba90378 perf(core): 优化包管理器安装参数,拒绝冗余依赖捆绑,实现 Agent 节点极致轻量化部署 2026-04-21 09:30:04 +00:00
hotyue
01806d20dd fix(core): 引入智能网卡生存探测机制,彻底解决多 IP 站群机因 IP 漂移导致的 curl 死锁断网问题 2026-04-21 09:20:55 +00:00
hotyue
049278c458 fix(master): 修复 Telegram 429 频率限制拦截,延长全军简报下发间距至 2 秒,确保并发战报 100% 送达 2026-04-21 07:19:04 +00:00
hotyue
0aaa2d44a0 fix(master): 修复 db_exec 致命的标准输出混叠漏洞,改用静默的 .timeout 指令彻底消除面板 5000 乱码 2026-04-21 07:08:43 +00:00
hotyue
3f139a593e fix(master): 修复 db_exec 输出泄露导致的节点计数与战区列表乱码问题 2026-04-21 07:01:54 +00:00
hotyue
bee6fef69c fix(master): 启用 SQLite WAL 高并发引擎与 5000ms 锁排队机制,彻底解决全舰队并发通讯时的 database is locked 报错 2026-04-21 06:51:49 +00:00
hotyue
f283a8a4c6 fix(master): 完善向下兼容机制,对未升级老节点自动降级回退至 HTTP 通讯,确保私有司令部平滑过渡 2026-04-21 06:47:02 +00:00
hotyue
0d2433d850 feat(security): 引入动态 TLS 降级机制与自签名证书,全域 Webhook 通讯升级为强加密 HTTPS,彻底阻断明文嗅探风险并完美兼容官方网关 2026-04-21 06:27:58 +00:00
hotyue
a6b01bd8d5 chore(core): 恢复 install.sh 语法完整性,完成 OTA 防砖机制实弹演习 2026-04-21 06:12:38 +00:00
hotyue
8f2279b7e2 chore(core): 破坏 install.sh 语法完整性,用于 OTA 防砖机制实弹演习 2026-04-21 06:09:48 +00:00
hotyue
d37d26708d chore(core): 恢复 install.sh 语法完整性,完成 OTA 防砖机制实弹演习 2026-04-21 06:07:50 +00:00
hotyue
6234d7c49a fix(ota): 重构 Agent 防砖机制,引入双重 Base64 隔离,彻底杜绝 Shell 注入与换行截断,并实现失败主动告警 2026-04-21 06:05:39 +00:00
hotyue
f9a7bba32a Update install.sh
test
2026-04-21 13:52:06 +08:00
hotyue
068734da16 fix(ota): 引入 bash -n 语法树完整性校验,彻底阻断因网络波动下载不全导致的单点死机风险 2026-04-21 05:45:50 +00:00
hotyue
09a4108bcc docs(readme): 更新 Legacy 分支部署指令,全站统一采用更安全的落地执行法 2026-04-21 02:47:18 +00:00
hotyue
a7f08ec7a7 chore(release): 解除测试沙箱 URL 劫持,跃升至 v3.6.2,正式开启 Systemd 与智能双栈纪元 2026-04-21 02:42:04 +00:00
hotyue
f075fcce36 fix(master): 修复 Systemd 沙盒环境变量丢失问题,打通跨进程通讯,确保 OTA 升级捷报正常下发 2026-04-21 02:30:45 +00:00
hotyue
0bb96169e5 fix(core): 引入 Ceasefire Protocol (停火协议),彻底解决 Systemd 架构下 OTA 升级引发的无限重启风暴 2026-04-21 02:21:43 +00:00
hotyue
34320b2385 refactor(core): 手工融合 Systemd 引擎与 Root 权限校验 (提取自 PR #25),修复 Cgroup 误杀与交互逻辑陷阱,构建灰度测试候选版 2026-04-21 02:00:10 +00:00
github-actions[bot]
aeed9f0e57 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-20] 2026-04-20 19:17:23 +00:00
hotyue
c04a4c41e4 fix(core): 修复内核级禁用 IPv6 时 Python Webhook 假死的问题,引入智能 IPv4 降级回退机制 (Resolves #23) 2026-04-20 17:41:17 +00:00
hotyue
3b28ead0e4 chore: 战略撤退,代码全量回滚至 9a38fb6 (PR 引入前的纯净状态) 2026-04-20 17:37:47 +00:00
hotyue
d0ea5d09b1 chore(release): 跃升至 v3.6.2,引入 Systemd 守护与智能双栈降级引擎 2026-04-20 17:20:09 +00:00
hotyue
a119973ec0 chore(release): 暂时回退至 v3.6.1 2026-04-20 17:18:17 +00:00
hotyue
b8b91ac17e chore(release): 跃升至 v3.6.2,引入 Systemd 守护与智能双栈降级引擎 2026-04-20 17:17:38 +00:00
hotyue
34f2c7e123 fix(core): 引入 systemd-run 逃逸机制,彻底修复 OTA 升级时因子进程被 Cgroup 误杀导致的假死漏洞 2026-04-20 17:13:48 +00:00
hotyue
172f1e0209 chore(release): 暂时回退至 v3.6.1 2026-04-20 17:11:05 +00:00
hotyue
1d5ed5d0cb chore(release): 跃升至 v3.6.2,引入 Systemd 守护与智能双栈降级引擎 2026-04-20 17:06:38 +00:00
hotyue
1e150f26f1 fix(core): 修复内核级禁用 IPv6 时 Python Webhook 假死的问题,引入智能 IPv4 降级回退机制 (Resolves #23) 2026-04-20 16:59:28 +00:00
hotyue
03e735a44b docs(readme): 重构系统部署指令,采用落地执行模式彻底修复管道符交互闪退与进程误杀漏洞 2026-04-20 16:55:12 +00:00
hotyue
011c1faad4 fix(core): 移除 agent_daemon.sh 尾部的 nohup 后台逻辑,适配 Systemd Type=simple 的前台阻塞监听,修复 cgroup 误杀导致的无限重启死循环 2026-04-20 16:46:45 +00:00
hotyue
2325a8abdf fix(core): 修复节点部署多城市选择分支下 CITY_NAME 变量未赋值导致播报为空的 UI 瑕疵 2026-04-20 16:41:00 +00:00
hotyue
201df489db refactor(core): 缝合 Systemd 架构,修复 PR #25 中的管道符闪退及 oneshot 守护进程死锁漏洞 2026-04-20 16:24:32 +00:00
IcySteam
2d680c5fc7 refactor(core): Enable Systemd and upgrade Sentinel service orchestration
The legacy crontabs have been superseded by Systemd to fortify orchestration of our global fleet of Sentinels.

While cron relies on timed, fire-and-forget execution, Systemd elevates our operations into natively integrated, state-aware OS daemons. This paradigm shift unlocks precise lifecycle management, unified logging (inspect all service logs with `journalctl -t ip-sentinel`), and absolute control over module deployment.

- Battle-Hardened: Sentinels now auto-resurrect upon failure, bypassing minute-long cron wait times.
- Zero-Impact Missions: Sentinels now operate under strict `idle` CPU/IO scheduling. This guarantees that automated maintenance cycles yield to high-priority user interactions, and never impact primary server workloads.
- Field Intelligence Auto-Stagger: Service-level `RandomizedDelaySec` natively staggers Agent check-ins to protect the Command Center.
- Legacy Fallback: OS interrogation on deployment ensures a seamless fallback to cron for Sentinels operating in Alpine/OpenRC environments.

The fleet is more resilient than ever, but the architecture is always evolving. I highly welcome any reviews/suggestions from the original Author/Commander to perfect this pull request!
2026-04-21 00:27:01 +10:00
IcySteam
e77b7c0319 fix(telemetry): Implement dual-write logging for Systemd integration
This commit refactors the internal logging functions across all core modules to guarantee telemetry reaches the Systemd journal. Sentinels now mirror their physical log outputs directly to the OS `logger`, ensuring flawless `journalctl` visibility even when modules are spawned in detached subshells.
2026-04-21 00:12:03 +10:00
IcySteam
2283da7421 docs(readme): Update setup instructions to use sudo pipes
The installation instructions in the README have been updated to pipe the `curl` output directly into `sudo bash`.

As we now mandate root privileges on setup, the standard `bash <(curl...)` command fails when prepended with `sudo` due to process substitution permissions. This fix ensures all new Commanders can deploy their Sentinels flawlessly on the first attempt.
2026-04-20 23:01:34 +10:00
IcySteam
4a28f7f395 fix(core): Mandate root privileges for all setup scripts
The old setup scripts assume root privileges. We are fixing this by explicitly requiring an `$EUID` root check before execution so that no borked, non-root installations happen.
2026-04-20 19:46:30 +10:00
github-actions[bot]
9a38fb62d0 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-19] 2026-04-19 19:01:27 +00:00
hotyue
fefd5dc60c fix(master): 修复双栈机 IPv6 黑洞导致轮询假死的致命 Bug 2026-04-19 15:06:56 +00:00
hotyue
89aa1ead33 docs: 新增动态贡献者头像墙 (Contributors Wall),致敬开源极客 2026-04-19 14:36:48 +00:00
hotyue
a5f2fb53ed feat(data): 建立韩国 (KR) 战区拓扑,新增首尔节点信标及本土化高频活体词库 2026-04-19 14:23:50 +00:00
hotyue
bd26f1011d fix(master): 统一全域雷达面板的国旗状态机映射数组,修复删除节点后小众国家国旗丢失的 UI 渲染问题 2026-04-19 14:13:28 +00:00
hotyue
cfaf156e03 Merge pull request #24 from IcySteam/main
feat: Activate the AU command theater, deploy sentinel to 5 major Australian cities
2026-04-19 22:03:44 +08:00
github-actions[bot]
75cf50ce0c chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-18] 2026-04-18 19:01:49 +00:00
IcySteam
e2b6bbc347 master(AU): Add AU flag to TG menu 2026-04-19 01:05:38 +10:00
IcySteam
cd5160d1ea core(AU): Add AU flag to TG menu 2026-04-19 01:05:28 +10:00
IcySteam
040827aa27 data(AU): activate AU command theater, deploy sentinel to 5 major Australian cities 2026-04-19 00:57:01 +10:00
IcySteam
d00317a645 feat(map): establish the Oceania (AU) command theater 2026-04-19 00:53:00 +10:00
hotyue
60317b4444 docs: 更新项目文档,正式发布 v3.6.1 扁平化指控矩阵与司令部金蝉脱壳 (Master OTA) 架构 2026-04-18 00:54:27 +00:00
hotyue
a0bb0f30f2 chore(master): 移除安装向导测试期锚点,恢复生产环境 main 主分支直链 2026-04-18 00:54:22 +00:00
hotyue
cc6f7bf958 chore(master): 移除调度枢纽测试期锚点,恢复生产环境 main 主分支直链 2026-04-18 00:54:17 +00:00
hotyue
583e0b00d8 chore(release): 升级双端版本信标至 v3.6.1,激活扁平化矩阵与中枢 OTA 引擎 2026-04-18 00:54:09 +00:00
hotyue
c27f2fced9 feat(master): 实装司令部金蝉脱壳 (Silent Override) 架构,新增中枢免交互 OTA 热重载能力与自动捷报推送 2026-04-18 00:41:03 +00:00
hotyue
8baa141339 chore(master): 临时切换 install_master.sh 拉取直链至 dev-v3.6.1 分支以支持扁平化 UI 演习测试 2026-04-18 00:20:45 +00:00
hotyue
2eceb43ac3 chore(master): 临时切换 install_master.sh 拉取直链至 dev-v3.6.1 分支以支持扁平化 UI 演习测试 2026-04-18 00:17:12 +00:00
hotyue
8ce9eb256b refactor(master): 重构 M 菜单为扁平化指挥矩阵 (Flat Command Matrix),优化 L0-L3 层级逻辑,新增全局返回逃生舱,并实现统一哨兵终端的原位丝滑重绘 2026-04-18 00:15:33 +00:00
github-actions[bot]
bf2cfb7da0 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-17] 2026-04-17 19:11:44 +00:00
hotyue
5dfaa19cca chore: 移除测试期 dev-v3.6.0 专属锚点,全系组件直链恢复至 main 主分支,准备发布正式版 2026-04-17 15:07:45 +00:00
hotyue
3404666b8e chore(release): 升级双端版本信标至 v3.6.0,全面激活零信任 OTA 引擎 2026-04-17 15:05:28 +00:00
hotyue
b64ab95658 docs: 重构项目文档,正式发布 v3.6.0 零信任 OTA 架构及全舰队升级指引 2026-04-17 15:05:05 +00:00
hotyue
f19d165ece refactor(master): 移植 Agent 级智能依赖探测引擎,实现缺啥补啥的优雅部署,并增加二次复检熔断机制 2026-04-17 14:49:10 +00:00
hotyue
602919dc18 fix(master): 修正 send_ui 函数的 JSON 载荷换行符为 \n,解决带按钮面板的排版乱码问题 2026-04-17 14:43:27 +00:00
hotyue
722db9f6d1 style(core): 引入终端 OSC 8 超链接特性,重构教程链接交互为点击即达,提升终端沉浸式体验 2026-04-17 14:35:55 +00:00
hotyue
970867f3c7 fix(master): 司令部启动追加 disown 脱钩指令,抹除卸载与升级时底层 Bash 的 Killed 进程报错,提升静默优雅度 2026-04-17 14:18:39 +00:00
hotyue
e22d8d3cd0 fix(master): 修复官方机器人 OTA 按钮 UI 泄露问题,精准挂载 IS_OFFICIAL_GATEWAY 标识完成渲染层拦截 2026-04-17 14:10:54 +00:00
hotyue
cfe6dd59c8 feat(master): 部署向导新增官方与私有网关身份选择,固化 IS_OFFICIAL_GATEWAY 标识以支持 UI 级物理熔断 2026-04-17 14:10:40 +00:00
hotyue
b46e257545 fix(master): 修正 TG 报文换行符为 %0A,解决 Markdown 解析排版异常 2026-04-17 13:39:59 +00:00
hotyue
3e9a82a657 chore: 临时将各组件拉取直链指向 dev-v3.6.0 分支,修复跨分支拉取导致的数据解析错位 2026-04-17 13:27:20 +00:00
hotyue
4cf687f436 feat(master): 控制面板实装单点与全舰队级 OTA 升级核按钮及二次确认防抖,重构底层注册逻辑以兼容 7 字段解析入库 2026-04-17 13:08:04 +00:00
hotyue
e88cf4ac5b feat(master): 部署引擎移植全境兼容嗅探器,并预建 SQLite 数据库的 enable_ota 控制字段 2026-04-17 13:07:14 +00:00
hotyue
898349d22e feat(core): Webhook 通讯引擎新增 /trigger_ota 高危路由,实装本地与网关双重熔断校验,并支持后台剥离交互的静默热重载 2026-04-17 13:06:44 +00:00
hotyue
9ea188cb6d feat(core): 部署向导新增静默接管模式 (SILENT_OTA),并实现基于双轨网关的 OTA 权限物理熔断与配置下发 2026-04-17 13:06:37 +00:00
hotyue
03d4c6160a docs: 恢复英文提示词 2026-04-17 09:02:38 +00:00
hotyue
cf4433cdd6 docs: 修改提示词 2026-04-17 08:55:17 +00:00
hotyue
ae80f25c67 docs: 增加Bot Token 及 Chat ID获取教程链接 2026-04-17 08:28:15 +00:00
hotyue
5b2c294c61 docs: 增加官方机器人直达链接 2026-04-17 08:19:00 +00:00
hotyue
a1595ab0c5 docs: 增加官方机器人直达链接 2026-04-17 08:17:30 +00:00
hotyue
0be1e92ac5 docs: 优化部署指南,将私有独立部署提升为首选推荐,并预告 OTA 远程升级战略 2026-04-17 08:02:59 +00:00
hotyue
cf3e5dca2f docs: 优化部署指南,将私有独立部署提升为首选推荐,并预告 OTA 远程升级战略 2026-04-17 07:58:54 +00:00
hotyue
902f612d31 chore(release): bump version to v3.5.4 2026-04-17 07:20:05 +00:00
hotyue
45475f14b7 feat(core): 优化中枢接入交互引导,将私有独立部署设为首选默认项,为后续 OTA 远程平滑升级铺路 2026-04-17 07:06:45 +00:00
hotyue
30f396aefe fix(core): 升级智能包管理器嗅探器,彻底修复 Alpine/Arch 依赖安装失败 Bug,并重构 Master 接入交互逻辑防止误触跳过 (Resolves #21) 2026-04-17 06:49:16 +00:00
hotyue
7cf7117615 fix(core): 增强安装引擎容错能力,加固 Cron 清理逻辑并严格限制底层物理标识符格式 2026-04-17 05:32:19 +00:00
hotyue
062305d126 fix(core): Webhook 引擎引入 fcntl 排他写锁防配置文件损坏,强制清洗底层物理主键 2026-04-17 05:32:15 +00:00
hotyue
f451aea643 fix(core): 优化战报日志提取逻辑,改用精确截断替代全量扫描,大幅降低 I/O 消耗 2026-04-17 05:32:09 +00:00
hotyue
64342b2846 fix(master): 批量调度引擎引入流量削峰机制,杜绝瞬间并发导致的网络栈与文件句柄耗尽 2026-04-17 05:32:03 +00:00
hotyue
d96b6e769a fix(core): 引入 flock 排他锁,彻底解决 Cron 任务重入导致的内存雪崩与 Fork 炸弹 2026-04-17 05:31:58 +00:00
hotyue
539de62eee chore(release): bump version to v3.5.3 2026-04-17 03:00:11 +00:00
hotyue
d514106e65 docs: [v3.5.3] 重构 README 极客特征文案,合并冗余架构特性并引入常青化排版 2026-04-17 03:00:05 +00:00
hotyue
7f9c8a4dea feat(master): [v3.5.3] 引入L5降维控制面板与内联UI重绘,实装红绿灯状态机与模块动态启停 (Resolves #17, Resolves #19) 2026-04-17 02:40:27 +00:00
hotyue
31014e571d feat(master): [v3.5.3] 升级 SQLite 初始表结构,新增模块状态追踪字段以支持红绿灯 UI (Resolves #19) 2026-04-17 02:40:23 +00:00
hotyue
f5aa68a8dc feat(core): [v3.5.3] Webhook 引擎新增模块动态启停(Toggle)路由,支持安全重写本地配置 (Resolves #19) 2026-04-17 02:40:19 +00:00
hotyue
63bbbd549e feat(agent): [v3.5.3] 优化安装向导,默认全量部署养护模块以支持远端动态控制 (Resolves #19) 2026-04-17 02:40:14 +00:00
hotyue
5e40ed426b chore: revert failed v3.6.0 attempts, rollback to safe state 2026-04-17 02:24:07 +00:00
hotyue
aebf3a9e90 fix(core): [v3.6.0] 终极修复 OTA 死锁:解决 curl 管道吞噬脚本 Bug,并应用底层网络脱壳机制 2026-04-17 02:17:32 +00:00
hotyue
8a3d7c305b fix(core): [v3.6.0] 彻底重构 OTA 升级调度,引入外挂延时脚本实现 100% 的网络脱壳与静默重启 2026-04-17 02:09:05 +00:00
hotyue
2d580eaea2 fix(core): [v3.6.0] 彻底解决 OTA 升级 TCP 通讯超时 Bug,引入 close_fds 剥离套接字继承机制 2026-04-17 01:59:29 +00:00
hotyue
d7ab695372 fix(core): [v3.6.0] 彻底解决 OTA 升级 TCP 通讯超时 Bug,引入异步守护线程与套接字剥离机制 2026-04-17 01:48:46 +00:00
hotyue
0c250dfd17 fix(core): [v3.6.0] 修复 OTA 升级时的竞态自杀 Bug,引入 TCP 强制刷新与 3 秒延迟脱壳机制 2026-04-17 01:44:40 +00:00
hotyue
52b12c7057 feat(master): [v3.6.0] 深度重构中枢调度,引入L5降维控制面板、红绿灯模块启停与全网 OTA 静默升级 (Resolves #17, Resolves #19) 2026-04-17 01:19:27 +00:00
hotyue
2166753569 feat(master): [v3.6.0] 司令部部署引入 OTA 下发权限控制,重构 SQLite 初始表结构以支持状态机 (Resolves #17, Resolves #19) 2026-04-17 01:19:20 +00:00
hotyue
46e418dfd0 feat(core): [v3.6.0] Webhook 引擎新增 OTA 升级与动态启停路由,实装底层权限物理熔断机制 (Resolves #17, Resolves #19) 2026-04-17 01:19:13 +00:00
hotyue
673e0ce3e6 feat(agent): [v3.6.0] 重构安装向导,引入静默 OTA 嗅探机制与双端授权防线,默认全量部署养护模块 (Resolves #17, Resolves #19) 2026-04-17 01:19:06 +00:00
github-actions[bot]
6203249782 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-16] 2026-04-16 19:25:36 +00:00
hotyue
05e708ed21 fix(master): [v3.5.2] 修复交互向导首选项的默认值丢失问题,防止直接回车导致主控数据库被误删 2026-04-16 07:57:02 +00:00
hotyue
c4faa102cf fix(installer): [v3.5.2] 修复交互向导首选项的默认值丢失问题,防止直接回车导致平滑升级失效被误删档 2026-04-16 07:52:45 +00:00
hotyue
4a1b32278c fix(core): [v3.5.2] 补充 version.txt 尾部换行符,防止环境变量读取截断 2026-04-16 06:54:29 +00:00
hotyue
584ead387e docs: [v3.5.2] 更新 README 战报日志,全系版本号正式锚定 v3.5.2 2026-04-16 06:52:06 +00:00
hotyue
efdc62ba68 feat(map): 更新全球战区拓扑,挂载考文垂与蒙特利尔节点索引 2026-04-16 06:32:47 +00:00
hotyue
67618587e4 feat(data): 新增节点数据 - 加拿大蒙特利尔 (CA, Montreal) 2026-04-16 06:32:42 +00:00
hotyue
a2c045a841 feat(data): 新增节点数据 - 英国考文垂 (UK, Coventry) 2026-04-16 06:32:37 +00:00
hotyue
9b35c87cb4 fix(master): [v3.5.2] 修复 Telegram 纯文本 API 下发消息时的换行符 (%0A) 转义问题 2026-04-16 06:02:51 +00:00
hotyue
e6c6e66e4b feat(agent): [v3.5.2] 剥除改名后的冗余 TG 推送报文,实现静默修改配置与底层 HTTP 回执 2026-04-16 05:51:04 +00:00
hotyue
f1d36a2148 feat(master): [v3.5.2] 实现全自动丝滑改名,接收 Agent 成功回执后瞬间刷新本地 SQLite 数据库 2026-04-16 05:50:58 +00:00
hotyue
41906d0570 revert: 紧急回滚至稳定版 9768bed (修复加密升级导致的通讯中断) 2026-04-16 03:24:11 +00:00
hotyue
dc7d1c0f40 feat: [v3.5.2] 终极安全与逻辑闭环补丁
1. 升级军工级 HMAC 签名:将数据负载 (Base64) 卷入哈希,封死中间人篡改路径。
2. 引入高熵复合密钥:结合 CHAT_ID 与 TG_TOKEN,大幅提升抗暴力破解强度。
3. 实现全自动改名闭环:Master 确认 Agent 修改成功后自动同步数据库,彻底告别手动复制。
2026-04-16 03:14:12 +00:00
hotyue
9768bed637 fix(master): [v3.5.2] 废除原生 tr 命令的失效中文白名单,改用黑名单过滤,确保中文字符完美送入 Base64 编码 2026-04-16 02:43:52 +00:00
hotyue
fa202a0405 fix(core): [v3.5.2] 采用 Base64 编码彻底重构别名同步链路,免疫 WAF 拦截与中英文符号解析崩溃 2026-04-16 02:24:50 +00:00
hotyue
b8bcd09134 fix(agent): [v3.5.2] 修复别名同步时的中文 UTF-8 编码崩溃,改用 curl 绕过 WAF 拦截,并拦截下划线防止 TG 面板渲染异常 2026-04-16 01:55:57 +00:00
hotyue
ef8dc033cc feat(master): [v3.5.2] 中枢支持解析 6 字段注册包,面板适配别名并新增重命名状态机 (Resolves #9) 2026-04-16 01:35:16 +00:00
hotyue
03a54bcca0 chore(master): [v3.5.2] 完善全新部署时的 SQLite 表结构 (增加 region 与 node_alias) 2026-04-16 01:35:16 +00:00
hotyue
f4f93d8955 feat(agent): [v3.5.2] 每日战报全面适配 NODE_ALIAS 展示字段 2026-04-16 01:35:16 +00:00
hotyue
07cac792f0 feat(agent): [v3.5.2] 守护进程新增 /trigger_rename 接口,实现免注入安全重命名 2026-04-16 01:35:16 +00:00
hotyue
50edad9e25 feat(agent): [v3.5.2] 部署引擎引入双轨身份,支持自定义节点展示别名 2026-04-16 01:35:16 +00:00
hotyue
69edf12620 feat(map): [v3.5.2] 全球大地图更新,正式集成台湾 (TW) 及美国本土 6 大新州节点 2026-04-16 01:35:16 +00:00
hotyue
0b448e2b7e data(US): [v3.5.2] 深度扩容美国版图,新增 IL, UT, WA, NV, NC, OR 六大节点 (Resolves #15, 感谢 NQ 论坛 @yct002, @Ideal 提交的需求) 2026-04-16 01:35:16 +00:00
github-actions[bot]
d7b95136dd data(TW): [v3.5.2] 新增台湾战区数据与台北锚点 (Resolves #11) 2026-04-16 01:35:16 +00:00
github-actions[bot]
80d74111c4 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-15] 2026-04-15 19:37:24 +00:00
hotyue
223d7c4b56 docs(readme): 更新项目架构图,同步 v3.5.1 双端版本解耦信标说明 2026-04-15 06:47:43 +00:00
hotyue
de3b4ca6d3 chore: 正式发布 v3.5.1,引入双端版本解耦架构 (KV 解析法) 2026-04-15 06:15:59 +00:00
hotyue
423a765e5f feat(core): 引入 KV 环境分解法,实现 Agent 与 Master 版本独立解耦 2026-04-15 05:58:28 +00:00
github-actions[bot]
ca74c31b96 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-15] 2026-04-15 04:50:05 +00:00
hotyue
9366240d62 chore: 正式发布 v3.5.0,整合大洲战区架构与全球版图扩张 (NL, ES, CA, VN) 2026-04-15 04:39:43 +00:00
hotyue
1fa2cd10b1 feat(map): 全球版图正式扩充,集成 VN, NL, ES, CA 节点并修正更新日期 2026-04-15 04:36:52 +00:00
hotyue
3210c8cfcc data(VN): 新增越南 (Vietnam) 战区数据与核心规则 2026-04-15 04:35:22 +00:00
hotyue
d7e1e8fc8f data(CA): 新增加拿大 (Canada) 战区数据与核心规则 2026-04-15 04:35:12 +00:00
hotyue
a81f0564f1 data(ES): 新增西班牙 (Spain) 战区数据与核心规则 2026-04-15 04:35:04 +00:00
hotyue
3b20630e9e data(NL): 新增荷兰 (Netherlands) 战区数据与核心规则 2026-04-15 04:33:17 +00:00
hotyue
7321b76bb5 fix(scripts): 升级热搜词抓取引擎,适配 v3.5.0 大洲战区多层级解析 2026-04-15 04:25:25 +00:00
hotyue
8016b0531c docs(readme): 全面同步 v3.5.0 特性,更新大洲战区贡献规范与 SSOT 架构说明 2026-04-15 03:57:18 +00:00
hotyue
c7c93ea22e refactor(core): 全面肃清硬编码版本注释,适配动态锚点架构 2026-04-15 03:57:12 +00:00
hotyue
9aef79831c refactor(daemon): 动态注入节点防撞身份与运行时版本号至 UA 请求头及交互播报中 2026-04-15 03:57:02 +00:00
hotyue
43f2e98459 refactor(master): 剥离写死版本,严格落实运行态配置继承,优化卸载进程绞杀逻辑 2026-04-15 03:56:55 +00:00
hotyue
5627c0115a feat(installer): 引入 SSOT 动态版本抓取机制,并重构边缘节点战区分组交互 UI 2026-04-15 03:56:45 +00:00
hotyue
f252b26088 feat(data): 重构 map.json 至 v3.5.0 大洲战区 (Continental Grouping) 降维拓扑架构 2026-04-15 03:56:36 +00:00
github-actions[bot]
12e6619ab9 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-14] 2026-04-14 19:26:11 +00:00
hotyue
a0bad1acf0 docs: 📝 更新 README 以适配 v3.4.0 架构特性与版本路由逻辑 2026-04-14 08:26:31 +00:00
hotyue
01d65972fd feat(master): 🗑️ Master 卸载程序同步 v3.4.0 焦土逻辑 2026-04-14 08:00:48 +00:00
hotyue
b1334fc06a feat(master): 🤖 调度中枢 UI 重构,接入 v3.4.0 实时版本监控 2026-04-14 08:00:47 +00:00
hotyue
918c73b5dc feat(master): 🧠 中枢安装脚本实现版本号补录与无损热升级 2026-04-14 08:00:47 +00:00
hotyue
28f04a4eb9 feat(core): 🗑️ 卸载脚本增加版本感知识别逻辑 2026-04-14 08:00:41 +00:00
hotyue
26328e66c4 feat(core): 🛡️ Trust 净化模块同步 v3.4.0 版本追踪标识 2026-04-14 08:00:40 +00:00
hotyue
1d85837e79 feat(core): 📍 Google 养护模块日志格式化对齐 v3.4.0 2026-04-14 08:00:40 +00:00
hotyue
ba8e2f1625 feat(core): 📊 战报模块注入云端版本感知与 OTA 提醒 2026-04-14 08:00:40 +00:00
hotyue
6b809138e5 feat(core): 🔄 更新引擎同步 v3.4.0 版本锚点架构 2026-04-14 08:00:40 +00:00
hotyue
6f4e871c7c feat(core): ⏱️ 调度引擎注入版本探针日志追踪 2026-04-14 08:00:40 +00:00
hotyue
fe2c9de80b fix(core): 🐍 守护进程同步 v3.4.0 标识并修正节点命名连接符 2026-04-14 08:00:40 +00:00
hotyue
6c0a589395 feat(core): 🚀 部署引擎升级至 v3.4.0 (引入版本路由与状态机) 2026-04-14 08:00:40 +00:00
hotyue
42a128fd6b feat: 🚩 建立云端版本锚点 v3.4.0 2026-04-14 08:00:32 +00:00
hotyue
a891f2017a fix(core): 🚑 替换节点命名连接符为中划线,彻底修复 Telegram Markdown V1 解析崩溃 Bug 2026-04-14 06:58:00 +00:00
hotyue
66fdfb1908 fix(install): 🐛 修复热更新节点失联问题,引入静默兼容基因锁 2026-04-14 06:44:17 +00:00
hotyue
aa2874fdcd chore(master): ⬆️ 对齐主控端安装脚本头部版本号 2026-04-14 06:18:12 +00:00
hotyue
120dd264c2 feat(master): 扩充全球战区国旗字典,完美适配无界战区版图的 UI 渲染 2026-04-14 06:17:24 +00:00
hotyue
455f98fafd fix(report): 🐛 同步防撞甲逻辑,确保每日战报身份代号与初始注册绝对统一 (v3.3.2) 2026-04-14 06:17:20 +00:00
hotyue
2c1041ebed fix(install): 🐛 引入 IP 指纹哈希防撞机制,粉碎克隆节点同名覆盖 Bug (v3.3.2) 2026-04-14 06:17:15 +00:00
github-actions[bot]
0af3ff5cd8 chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-13] 2026-04-13 19:22:53 +00:00
hotyue
6faa7b2c2a fix(install): 🚑 引入老版本配置无损热迁移装甲,确保 NAT 修复特性在平滑升级中完美生效 2026-04-13 12:10:34 +00:00
hotyue
873b6996ca chore(updater): ⬆️ 对齐脚本头部版本号至 v3.3.1 2026-04-13 12:06:16 +00:00
hotyue
84832395bd fix(daemon): 🔇 引入公网 IP 兜底机制,彻底拦截因 API 探测失败导致的幽灵注册风暴 2026-04-13 12:06:16 +00:00
hotyue
96a7400be8 fix(trust): 🐛 净化模块同步修复哈希种子逻辑,确保活体设备唯一性 2026-04-13 12:06:16 +00:00
hotyue
ba565978c6 fix(google): 🐛 重写哈希种子提取逻辑,彻底杜绝 NAT 节点指纹同质化灾难 2026-04-13 12:06:16 +00:00
hotyue
b53032cc92 fix(report): 🐛 战报 IP 探测接入 PUBLIC_IP 兜底,完美兼容 NAT 架构 2026-04-13 12:06:16 +00:00
hotyue
e96eacd6f8 feat(install): 重构网络锚定逻辑,引入双核身份剥离与双栈 NAT 嗅探 2026-04-13 12:06:16 +00:00
github-actions[bot]
4cac51673a chore(data): 🤖 自动机兵:刷新全战区热点词库 [2026-04-13] 2026-04-13 08:37:41 +00:00
106 changed files with 12748 additions and 4835 deletions

View File

@@ -1,16 +1,19 @@
name: Daily Trends Factory
name: Daily Data Factory
on:
schedule:
# 每天 UTC 18:00 运行 (北京时间凌晨 02:00)
- cron: '0 18 * * *'
# 每天 UTC 03:00 执行,为各节点全天随机拉取准备好弹药
- cron: '0 3 * * *'
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
permissions:
contents: write
jobs:
update-trends:
update-data:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
@@ -23,15 +26,20 @@ jobs:
with:
python-version: '3.10'
- name: Execute Trends Engine
- name: Execute Trends Engine (搜索词库)
run: python scripts/fetch_trends.py
- name: Commit and Push
- name: Execute Trust URL Engine (活体新闻流融合)
run: python scripts/fetch_trust_urls.py
- name: Commit and Push All Data
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
# 一揽子添加搜索词库和地区白名单的变化
git add data/keywords/
git add data/regions/
# 防御机制:如果没有新数据,就静默退出,不产生空提交
if git diff --staged --quiet; then
@@ -39,6 +47,6 @@ jobs:
exit 0
fi
# 策略:放弃危险的 amend 强制覆盖,采用带日期的标准安全提交
git commit -m "chore(data): 🤖 自动机兵:刷新全战区热点词库 [$(date +'%Y-%m-%d')]"
git push origin main
# 策略:将两路数据的更新合并为一个原子提交
git commit -m "chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [$(date +'%Y-%m-%d')]"
git push origin main

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:

145
README.md
View File

@@ -5,42 +5,29 @@
![License](https://img.shields.io/github/license/hotyue/IP-Sentinel)
> **一个极度轻量、零感知、支持中枢遥控的 VPS IP 自动化养护与区域纠偏引擎。**
> **💡 提示:如果本项目提升了您的节点稳定性,请点击右上角点亮 🌟 Star您的支持是我们持续研发和维护指纹库的核心动力。**
📢 官方战术交流频道: 🛰️ [IP-Sentinel Matrix](https://t.me/IP_Sentinel_Matrix)
专为解决 VPS IP 被 Google 等数据库错误定位到中国大陆/香港俗称“送中”等问题而生。IP-Sentinel 已从单机脚本全面跃升为 **Master-Agent 分布式架构**。它像影子一样潜伏在全球各地的服务器后台,通过高度拟真的真实用户行为为你默默积累 IP 权重,并允许你通过 Telegram 随时随地对整个舰队进行毫秒级“点名”与“遥控”。
## ✨ 核心极客特性
## ✨ 核心极客特性 (Core Architecture)
- 🗺️ **全球拓扑矩阵 (Global Nexus)**v3.1 跨洲际跃升。守护版图现已横跨亚、欧、美三大洲(美、日、英、德、法、新、港)。为每个国家注入极其硬核的“原生本地化”搜索词库与本土高权重站点(如政府、权威媒体、高铁网),真正实现“拟真融入”
- 📊 **深海声呐全维探针 (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 嵌套,系统均能瞬间避开网络黑洞,彻底杜绝探针假死与流量溢出。
- 👻 **设备资产持久化 (Hash-Seeded Persona)**v3.2 核心换代。彻底摒弃传统的“随机抽取指纹”,引入基于节点物理 IP 的哈希锚定引擎。利用不可变哈希种子,为您的每台 VPS 在千万级指纹库中永久锁定 3 个绝对专属设备(如固定表现为 1台 Mac、1台 iPhone、1台 PC 交替上网)。完美构建高权重真实家庭内网画像,根除“僵尸网络”同质化特征!
- 🏭 **自动化指纹兵工厂 (Automated UA Factory)**:依托 GitHub Actions CI/CD 流水线,每月 1 日无人值守全自动生成 4000+ 带绝对物理分区的真实终端设备数据。配合边缘节点的守护进程静默拉取,实现千万级指纹资产的“自动驾驶”级演进
- 📡 **OTA 动态活体词库 (Dynamic Trends)**v3.3.0 跨时代跃升。彻底废弃静态搜索词,引入 GitHub Actions 云端流水线。每天自动抓取美、日、德、英等全战区当日 Google 热搜榜单,并通过边缘节点每日静默同步,让您的 IP 搜索行为永远贴合当地当天的真实网络脉搏
- 🔀 **智能错峰调度 (Thundering Herd Mitigation)**v3.3.0 架构升级。首创节点部署时间戳锚定逻辑。边缘节点按需智能分频(每日拉取几百行轻量词库,每月按 30 天周期错峰拉取千万级指纹库),完美化解“惊群效应”,彻底抹平统一升级时的数据并发特征,隐匿于无形。
- 🖧 **底层路由死锁 (Hard-Bind Routing)**v3.2.1 热修复升级。底层探测引擎强力接管 curl 核心参数 (--interface),强制将发出的每一滴伪装流量死死绑定在您设定的物理网卡或隧道 IP 上,彻底杜绝双栈或多网卡环境下的流量溢出漏洞。
- 🎯 **多级容灾与高精度探针 (High-Precision Probe)**v3.2.2 底层重构。重写战报模块与底层协议自适应逻辑,植入多级 ISP 容灾探针链路,并按“底层数据共识原则”智能清洗冗余 AS 号。确保在纯 V6、隧道或弱网环境下数据获取依然 100% 精准畅通。
- 🔄 **平滑热更新装甲 (Smooth Upgrade Engine)**v3.2.2 体验进化。全系植入状态机嗅探逻辑。无论是 Master 司令部还是 Agent 边缘节点再次执行部署脚本时将自动识别并继承历史配置、SQLite 数据库与锚定 IP一键回车即可瞬间完成无损换代告别繁琐的重复配置。
- ☁️ **云端中枢 (Public Master)**:引入官方公共机器人 @OmniBeacon_bot,新手无需部署 Master 司令部,部署 Agent 时一键回车即可调用官方加密网关30 秒极速入伍!
- 🧠 **分布式中枢 (Master-Agent)**:对于硬核极客,支持私有化部署。一台 Master 主控集成 SQLite 数据库,统管无数台 Agent 边缘节点,确保数据绝对私有。
- 🔒 **叹息之墙 (Zero-Trust HMAC)**:全面废弃明文 Token底层通讯引入 时间戳 + HMAC-SHA256 军用级动态签名。指令有效期仅 60 秒(阅后即焚),彻底免疫中间人抓包、重放攻击与端口爆破。
- 🛡️ **工业级并发与自净引擎**:底层 Webhook 采用多线程模型彻底免疫慢速耗尽攻击;独创“智能清道夫”逻辑,覆盖安装/升级时自动绞杀僵尸进程与冗余定时任务,绝对纯净,告别玄学冲突。
- 🎮 **TG 战术面板 (Command Center)**:无需记忆繁琐命令,全 Inline Keyboard 交互。支持一键下发伪装指令、一键索要精准战报、毫秒级抓取边缘节点实时运行日志。
- 👁️‍🗨️ **玻璃房透明遥测 (Glasshouse Telemetry)**:引入基于 Cloudflare Workers 的全透明计数中枢,首页动态徽章实时展示全球真实装机与调用量。绝对零隐私收集,仅作原子累加,底层网关源码全开源,接受全网极客审计。
-**丝滑战术交互 (Seamless UI)**:司令部交互面板像素级打磨。新节点发送暗号入伍成功后,司令部将无缝零延迟自动呼出最新的活跃节点阵列面板,彻底免除重复输入命令的繁琐,掌控感拉满。
**—— 💎 骨干基建特征 ——**
- 🏭 **全自动云端军工厂 (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 的全透明计数中枢,绝对零隐私收集,仅作原子累加,底层网关源码全开源
## 📂 项目架构 (Monorepo)
@@ -49,56 +36,69 @@
```text
📦 IP-Sentinel
┣ 📂 .github/workflows/ # 🏭 自动化兵工厂:每月定时触发指纹生成的 CI/CD 流水线
┣ 📂 master/ # 🧠 司令部SQLite 存储、TG 监听与 Webhook 调度中心
┣ 📂 core/ # 🛡️ 边缘哨兵Webhook 被动监听、哈希锚定执行引擎
┣ 📂 master/ # 🧠 司令部SQLite 存储 (含 ip_trend_log 趋势跟踪表)、TG 监听与 Webhook 调度
┣ 📂 core/ # 🛡️ 边缘哨兵Webhook 被动监听、哈希锚定执行引擎 (集成深海声呐探测模块)
┣ 📂 scripts/ # 🐍 兵工厂引擎:基于 Python 的多物理分区 UA 生成器
┣ 📂 data/ # 🗂️ 全球数据规则库 (动态拓扑)
┃ ┣ 📜 map.json # 🌐 全球区域索引大脑 (Master Index)
┃ ┣ 📜 map.json # 🌍 全球区域大脑 (v3.5.0 大洲战区拓扑)
┃ ┣ 📂 regions/ # 🧊 冷数据:按 [国家/省州/城市] 深度细分的 LBS 锚点
┃ ┣ 📂 keywords/ # 🔥 热数据:按国家归类的动态搜索词库 (OTA 自动更新)
┃ ┗ 📜 user_agents.txt # 🔥 热数据:由兵工厂每月锻造的绝对坐标专属设备库
┣ 📜 version.txt # 🚩 双端版本信标Agent/Master 独立解耦的 KV 环境配置
┗ 📂 telemetry/ # 👁️‍🗨️ 玻璃房计划Cloudflare Workers 透明计数器网关源码
```
## 🚀 极速部署 (Quick Start)
> 🛡️ **跨平台装甲支持**Debian / Ubuntu / CentOS / RHEL / Alpine Linux / Arch Linux
系统现提供两种接入模式,请根据您的战术需求选择:
v3.3.x 提供了两种接入模式,请根据您的战术需求选择:
### 🔹 模式 A私有独立模式 (全自主、强烈推荐)
适合追求绝对数据隐私与舰队最高控制权的领主。
### 🔹 模式 A官方公共模式 (最简、推荐)
**适合不想折腾、只想快速养护 IP 的新兵。**
1. **关注机器人**:在 TG 中关注 [@OmniBeacon_bot](https://t.me/OmniBeacon_bot) 并发送 `/start`
2. **部署 Agent**:在目标 VPS 上执行以下指令,安装过程中**直接回车**使用官方机器人,并输入您的 Chat ID
```Bash
bash <(curl -sL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh)
> ☢️ **核按钮系统已就绪**:采用私有部署,您将解锁 **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
```
3. **激活节点**:安装完成后,您的手机会收到一条 #REGISTER# 暗号,将其转发给机器人即可完成入库。
### 🔸 模式 B私有独立模式 (全自主、硬核)
**适合追求绝对数据隐私、需自建机器人的领主。**
1. **部署 Master**:找一台 VPS 作为大脑(仅需部署一台),执行:
- 部署 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
bash <(curl -sL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/master/install_master.sh)
curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh -o /tmp/ins_agent.sh && sudo bash /tmp/ins_agent.sh
```
2. **部署 Agent**:在需要养护的机器上执行 Agent 脚本,输入您自建机器人的 Token 以及与 Master 一致的配置
- 激活节点:安装完成后,您的手机会收到一条 #REGISTER# 注册暗号,将其转发给您自己的机器人即可完成编队入库
### 🔸 模式 B官方公共模式 (最简体验)
适合不想折腾、只想快速体验养护效果的新兵。
- 关注机器人:在 TG 中关注官方安全网关 [@OmniBeacon_bot](https://t.me/OmniBeacon_bot) 并发送 /start。
- 部署 Agent在目标 VPS 上执行以下指令,安装过程中选择官方公共网关,并输入您的 Chat ID
- [官方部署教程](https://blog.iot-architect.com/engineering-practice/deploy-ip-sentinel-official-gateway/)
```Bash
bash <(curl -sL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh)
curl -fsSL https://raw.githubusercontent.com/hotyue/IP-Sentinel/main/core/install.sh -o /tmp/ins_agent.sh && sudo bash /tmp/ins_agent.sh
```
3. **激活节点**:同上,将暗号转发给您自己的机器人即可。
- 激活节点:同上,将收到的暗号转发给官方机器人即可。
### ⚠️ 平滑升级指引 (Upgrade to v3.3.0)
## 🆙 架构级无损热升级指引 (Upgrade Guide)
得益于 **v3.2.2 全新引入的平滑热更新引擎 (Smooth Upgrade Engine)**,系统升级现已变得极其优雅与安全。
### 📡 方式一OTA 远程静默升级 (私有中枢专属)
如果您是私有中枢领主,当司令部首页 (`/start`) 或每日战报提示发现新版本时:
无需卸载旧版本,无论您是要升级 Agent 边缘节点还是 Master 控制中枢,只需在您的终端中**再次运行上方对应的官方部署指令**
1. **升级 Master 司令部自身**:在司令部顶级菜单,点击最上方的 `[ 🆙 升级司令部至 vX.X.X ]`。中枢将释放幽灵进程静默重构,数秒后向您发送捷报
2. **升级全舰队 Agent**:在司令部顶级菜单,点击 `[ ☢️ 全舰队 OTA 热重载 ]`
3. **升级单节点 Agent**:进入 `🌍 全球战区雷达` -> 选择目标节点 -> 在统一终端面板点击 `[ 🆙 OTA 静默升级 ]`
*(⚠️ 节点收到指令后会在后台挂起静默拉取,全程无需登录 SSH完成后将主动发回心跳确认)*
安装雷达会自动嗅探您的历史部署状态(包括您的 Token、区域设定、SQLite 数据库及物理网卡锚点)。当询问是否平滑升级时,您只需**一路回车 (默认选 y)**,脚本将在短短 3 秒内瞬间完成核心装甲的无损换脑手术,您的所有战术资产将得到 100% 保留!
### 💻 方式二SSH 终端平滑直装 (适用于官方网关或老旧节点)
如果您的节点不支持 OTA或者您的节点版本过于陈旧 (如 v3.3.1)
🗑️ 一键无痕卸载
- 登录该节点的 SSH 终端,再次运行上面的 core/install.sh 官方安装指令。
- 安装引擎自带状态机嗅探逻辑它会自动读取老旧数据您只需一路回车3 秒即可在本地完成配置继承、数据同步与新内核的无损覆盖热重载!
## 🗑️ 一键无痕卸载
如果你需要清理某个边缘节点,只需重新运行 `core/install.sh` 并选择 **[2]**,或直接在节点终端执行:
```Bash
@@ -106,7 +106,7 @@ bash /opt/ip_sentinel/core/uninstall.sh
```
### 🧓 传家宝老旧系统专用通道 (Debian 9)
## 🧓 传家宝老旧系统专用通道 (Debian 9)
如果你的小鸡系统版本过低(如 Debian 9由于官方 APT 源已关闭且 Python 版本过旧,无法使用主线版本,请使用 **Legacy 兼容分支** 部署。
*(注意:该分支仅作基础维护,不享受新功能迭代,请尽可能升级你的系统)*
@@ -115,20 +115,39 @@ bash /opt/ip_sentinel/core/uninstall.sh
bash <(curl -sL https://raw.githubusercontent.com/hotyue/IP-Sentinel/legacy/core/install.sh)
```
📡 战术联络 (Community)
## 📡 战术联络 (Community)
如果你在使用过程中遇到任何疑难杂症,或者想围观大佬们的养护战报,欢迎加入我们的基地:
- Telegram 频道: [@IP_Sentinel_Matrix](https://t.me/IP_Sentinel_Matrix)
🤝 参与贡献
如果你想为项目增加新的节点区域(例如德国、英国、新加坡等),或者提供更丰富的本土化搜索词库,非常欢迎提交 Pull Request
## 🤝 参与贡献 (Contributors)
**v3.0 全球节点贡献规范:**
**🌟 感谢以下所有为 IP-Sentinel 添砖加瓦的指挥官们!** 你们的每一次 PR 都在让这艘战舰的全球雷达覆盖得更广。
<a href="https://github.com/hotyue/IP-Sentinel/graphs/contributors">
<img src="https://contrib.rocks/image?repo=hotyue/IP-Sentinel" alt="Contributors" />
</a>
如果你想为项目增加新的节点区域(例如德国、英国、大洋洲等),或者提供更丰富的本土化搜索词库,非常欢迎提交 Pull Request
> - 感谢 @xykt 本项目IP质量检测采用[xykt/IPQuality](https://github.com/xykt/IPQuality) 脚本!
**💡 全球节点贡献规范:**
1.`data/regions/国家代码/省州代码/` 目录下新增对应城市的配置 `.json`
2.`data/keywords/` 目录下新增或完善配套国家的词库 `kw_XX.txt`
3. **最重要的一步:**`data/map.json` 中登记你的国家、省州与城市信息。安装脚本将自动读取地图,在全球雷达中点亮你的节点!
⚠️ 免责声明
## ⚠️ 免责声明
本项目仅供网络原理研究、个人 VPS 维护学习使用。请遵守当地法律法规及目标服务商的 TOS服务条款切勿用于恶意高频请求或任何非法用途。使用者需自行承担因不当使用造成的 IP 封禁或其他相关风险。
## 保持联系
[![Blog](https://img.shields.io/badge/Blog-个人博客-blue)](https://blog.iot-architect.com)
如果你觉得这个项目对你有帮助,欢迎关注我的个人博客,我会定期分享技术教程。
## Stargazers over time
[![Stargazers over time](https://starchart.cc/hotyue/IP-Sentinel.svg?variant=adaptive)](https://starchart.cc/hotyue/IP-Sentinel)

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# ==========================================================
# 脚本名称: agent_daemon.sh (受控节点 Webhook 守护进程 V3.0.3)
# 脚本名称: agent_daemon.sh (受控节点 Webhook 守护进程 - 动态锚点版)
# 核心功能: 智能防打扰注册、进程自检、模块级路由分发(403拦截)
# ==========================================================
@@ -17,45 +17,53 @@ source "$CONFIG_FILE"
# 默认 Webhook 监听端口
AGENT_PORT=${AGENT_PORT:-9527}
NODE_NAME=$(hostname | cut -c 1-15)
# --- [重点升级 1: 守护进程防冲突自检] ---
if pgrep -f "webhook.py $AGENT_PORT" > /dev/null; then
exit 0
# [v3.5.2 核心] 载入不可变主键与可变展示名 (双轨身份)
if [ -z "$NODE_NAME" ]; then
IP_HASH=$(echo "${PUBLIC_IP:-127.0.0.1}" | md5sum | cut -c 1-4 | tr 'a-z' 'A-Z')
NODE_NAME="$(hostname | tr -cd 'a-zA-Z0-9' | cut -c 1-10)-${IP_HASH}"
fi
NODE_ALIAS="${NODE_ALIAS:-$NODE_NAME}"
# 1. [v3.0.1修复] 严格按照 install.sh 锁定的网络协议 (v4/v6) 获取 IP
# 1. 尝试获取实时公网 IP
RAW_IP=$(curl -${IP_PREF:-4} -s -m 5 api.ip.sb/ip | tr -d '[:space:]')
# 为新获取到的 v6 自动加方括号,以确保与之前锁定的格式对齐比对
if [[ "$RAW_IP" == *":"* ]] && [[ "$RAW_IP" != *"["* ]]; then
AGENT_IP="[${RAW_IP}]"
# [v3.3.1 修改] 为新获取到的 v6 自动加方括号;如果网络波动没抓到,强制信任本地 config 中的公网面孔
if [ -n "$RAW_IP" ]; then
if [[ "$RAW_IP" == *":"* ]] && [[ "$RAW_IP" != *"["* ]]; then
AGENT_IP="[${RAW_IP}]"
else
AGENT_IP="$RAW_IP"
fi
else
AGENT_IP="$RAW_IP"
AGENT_IP="${PUBLIC_IP:-${BIND_IP:-Unknown}}"
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.1.3 协议升级: 在底部暗号中精准嵌入 ${REGION_CODE} 大区标识
REG_MSG="👋 **[边缘节点接入申请]**%0A大区: \`${REGION_CODE}\`%0A节点: \`${NODE_NAME}\`%0A地址: \`${AGENT_IP}:${AGENT_PORT}\`%0A%0A⚠ **安全验证**: 为防止非法节点接入,请长按复制下方代码,并**发送给我**以完成最终授权录入:%0A%0A\`#REGISTER#|${REGION_CODE}|${NODE_NAME}|${AGENT_IP}|${AGENT_PORT}\`"
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
# ================== [v3.6.3 新增: 自动生成自签名 TLS 加密证书] ==================
# [修复] 彻底废除官方网关免 TLS 的裸奔逻辑,全网强制生成证书装甲
CERT_FILE="${INSTALL_DIR}/core/cert.pem"
KEY_FILE="${INSTALL_DIR}/core/key.pem"
if [ ! -f "$CERT_FILE" ] || [ ! -f "$KEY_FILE" ]; then
echo "🔐 [Agent] 正在生成本地自签名 TLS 加密证书 (2048位 RSA)..."
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout "$KEY_FILE" -out "$CERT_FILE" \
-subj "/C=US/O=IP-Sentinel/CN=Agent-Sec" >/dev/null 2>&1 || true
fi
# ==============================================================================
# 3. 启动轻量级 Python3 Webhook 监听服务 (v3.0.4 动态 HMAC 签名防重放)
cat > "${INSTALL_DIR}/core/webhook.py" << 'EOF'
import http.server
@@ -66,7 +74,7 @@ import os
import html
# ================== [v3.0.4 新增密码学与解析依赖] ==================
import urllib.parse
import urllib.request # [修复] 提升至全局作用域,防止局部变量遮蔽
import urllib.request
import hmac
import hashlib
import time
@@ -74,6 +82,15 @@ import time
PORT = int(sys.argv[1])
# 🛡️ 防重放攻击 (Nonce 缓存池)
USED_SIGNS = {}
def clean_used_signs():
now = time.time()
# 清理过期签名 (超 60 秒的安全窗口)
expired = [s for s, t in USED_SIGNS.items() if now - t > 65]
for s in expired:
del USED_SIGNS[s]
# 🛡️ 提取全局鉴权 Token (利用 CHAT_ID 作为 PSK 预共享密钥)
AUTH_TOKEN = ""
if os.path.exists('/opt/ip_sentinel/config.conf'):
@@ -103,8 +120,9 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
return
try:
current_time = int(time.time())
# 校验 2时间戳防重放 (误差 ±60秒 内有效,拒绝隔夜抓包重放)
if abs(int(time.time()) - int(req_t)) > 60:
if abs(current_time - int(req_t)) > 60:
self.send_response(401)
self.end_headers()
self.wfile.write(b"401 Unauthorized: Request Expired\n")
@@ -113,6 +131,14 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
self.send_response(401)
self.end_headers()
return
# 校验 2.5:基于 60秒 窗口的精确重放拦截 (拦截 MITM 并发洗劫)
clean_used_signs()
if req_sign in USED_SIGNS:
self.send_response(401)
self.end_headers()
self.wfile.write(b"401 Unauthorized: Replay Attack Detected\n")
return
# 校验 3HMAC 数据完整性与身份合法性校验
msg = f"{req_path}:{req_t}".encode('utf-8')
@@ -124,17 +150,20 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
self.end_headers()
self.wfile.write(b"401 Unauthorized: Signature Mismatch\n")
return
# 鉴权通过,记录该签名至防重放内存池
USED_SIGNS[req_sign] = current_time
# ================== 路由分发 (恢复为安全的精确匹配) ==================
# 路由 0: 全局统筹调度 (处理 /trigger_run 一键全节点维护)
# 路由 0: 全局统筹调度
if req_path == '/trigger_run':
if os.path.exists('/opt/ip_sentinel/core/runner.sh'):
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: runner\n")
subprocess.Popen(['bash', '/opt/ip_sentinel/core/runner.sh'])
os.system("nohup bash /opt/ip_sentinel/core/runner.sh >/dev/null 2>&1 &")
else:
self.send_response(404)
self.end_headers()
@@ -146,7 +175,7 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: mod_google\n")
subprocess.Popen(['bash', '/opt/ip_sentinel/core/mod_google.sh'])
os.system("nohup bash /opt/ip_sentinel/core/mod_google.sh >/dev/null 2>&1 &")
else:
self.send_response(403)
self.send_header("Content-type", "text/plain")
@@ -160,7 +189,7 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: mod_trust\n")
subprocess.Popen(['bash', '/opt/ip_sentinel/core/mod_trust.sh'])
os.system("nohup bash /opt/ip_sentinel/core/mod_trust.sh >/dev/null 2>&1 &")
else:
self.send_response(403)
self.send_header("Content-type", "text/plain")
@@ -173,7 +202,7 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: tg_report\n")
subprocess.Popen(['bash', '/opt/ip_sentinel/core/tg_report.sh'])
os.system("nohup bash /opt/ip_sentinel/core/tg_report.sh >/dev/null 2>&1 &")
# 路由 4: 抓取并回传实时日志
elif req_path == '/trigger_log':
@@ -200,25 +229,241 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
if lines:
log_data = html.escape("".join(lines[-15:]))
node_name = subprocess.check_output(['hostname']).decode('utf-8').strip()[:15]
text_msg = f"📄 <b>[{node_name}] 实时运行日志:</b>\n<pre><code>{log_data}</code></pre>"
# [v3.5.2 核心] 获取版本与节点展示别名
local_ver = config.get('AGENT_VERSION', '未知')
node_alias = config.get('NODE_ALIAS', config.get('NODE_NAME', 'Unknown-Node'))
data = urllib.parse.urlencode({
text_msg = f"📄 <b>[{node_alias}] 实时日志 (v{local_ver}):</b>\n<pre><code>{log_data}</code></pre>"
# [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': 'IP-Sentinel-Agent/3.0.4'}
# [动态化] 彻底消灭硬编码,使用运行态版本号,并声明 JSON 头
headers={
'User-Agent': f'IP-Sentinel-Agent/{local_ver}',
'Content-Type': 'application/json'
}
)
urllib.request.urlopen(req, timeout=10)
except Exception as e:
print(f"Log transmission failed: {e}")
# ================== [v4.0.0 新增: 触发深海声呐] ==================
elif req_path == '/trigger_quality':
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: trigger_quality\n")
if os.path.exists('/opt/ip_sentinel/core/mod_quality.sh'):
os.system("nohup bash /opt/ip_sentinel/core/mod_quality.sh >/dev/null 2>&1 &")
# =================================================================
# 路由 5: 节点重命名展示别名同步接口 (Base64 终极防御版)
elif req_path == '/trigger_rename':
b64_alias = query.get('b64', [''])[0]
if not b64_alias:
self.send_response(400)
self.end_headers()
self.wfile.write(b"400 Bad Request: Alias is empty\n")
return
import re
import base64
try:
# 1. 还原 URL 安全的 Base64 字符并解码 (杜绝乱码与 WAF 拦截)
pad = len(b64_alias) % 4
if pad > 0:
b64_alias += '=' * (4 - pad)
b64_alias = b64_alias.replace('-', '+').replace('_', '/')
raw_alias = base64.b64decode(b64_alias).decode('utf-8', errors='ignore')
# 2. 强清洗:杜绝 TG Markdown 崩溃严格限制中英数最大20字符
decoded_alias = raw_alias.replace('_', '-')
safe_alias = re.sub(r'[^a-zA-Z0-9\-\u4e00-\u9fa5]', '', decoded_alias)[:20]
if safe_alias:
# 3. 强容错读写 config.conf (引入 fcntl 排他锁与 r+ 模式防并发清空)
config_path = '/opt/ip_sentinel/config.conf'
import fcntl
with open(config_path, 'r+', encoding='utf-8', errors='ignore') as f:
fcntl.flock(f, fcntl.LOCK_EX)
lines = f.readlines()
alias_found = False
for i, line in enumerate(lines):
if line.startswith('NODE_ALIAS='):
lines[i] = f'NODE_ALIAS="{safe_alias}"\n'
alias_found = True
break
if not alias_found:
lines.append(f'NODE_ALIAS="{safe_alias}"\n')
f.seek(0)
f.writelines(lines)
f.truncate()
fcntl.flock(f, fcntl.LOCK_UN)
# [v3.5.2 极致丝滑] 移除向 TG 推送冗余报文的逻辑,直接向 Master 回执成功状态即可
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: trigger_rename\n")
return
except Exception as e:
self.send_response(500)
self.end_headers()
self.wfile.write(f"500 Internal Error: {str(e)}\n".encode('utf-8'))
return
self.send_response(400)
self.end_headers()
self.wfile.write(b"400 Bad Request: Invalid Characters\n")
# ================== [v3.5.3 新增: 模块动态启停接口] ==================
elif req_path == '/trigger_toggle':
mod_name = query.get('mod', [''])[0]
target_state = query.get('state', [''])[0].lower()
if mod_name not in ['google', 'trust'] or target_state not in ['true', 'false']:
self.send_response(400)
self.end_headers()
self.wfile.write(b"400 Bad Request: Invalid parameters\n")
return
config_key = f"ENABLE_{mod_name.upper()}="
try:
config_path = '/opt/ip_sentinel/config.conf'
import fcntl
with open(config_path, 'r+', encoding='utf-8', errors='ignore') as f:
fcntl.flock(f, fcntl.LOCK_EX)
lines = f.readlines()
found = False
for i, line in enumerate(lines):
if line.startswith(config_key):
lines[i] = f'{config_key}"{target_state}"\n'
found = True
break
if not found:
lines.append(f'{config_key}"{target_state}"\n')
f.seek(0)
f.writelines(lines)
f.truncate()
fcntl.flock(f, fcntl.LOCK_UN)
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: trigger_toggle\n")
except Exception as e:
self.send_response(500)
self.end_headers()
self.wfile.write(f"500 Internal Error: {str(e)}\n".encode('utf-8'))
# ================== [v3.6.0 新增: 零信任 OTA 远程静默升级路由] ==================
elif req_path == '/trigger_ota':
try:
# 动态读取最新 config 内存态
config_mem = {}
config_path = '/opt/ip_sentinel/config.conf'
if os.path.exists(config_path):
with open(config_path, 'r', errors='ignore') as f:
for line in f:
line = line.strip()
if '=' in line and not line.startswith('#'):
key, val = line.split('=', 1)
config_mem[key] = val.strip('"\'')
# 🛡️ 熔断校验 1: Agent 本地是否开启了 OTA 授权
if config_mem.get('ENABLE_OTA', 'false').lower() != 'true':
self.send_response(403)
self.end_headers()
self.wfile.write(b"403 Forbidden: OTA Upgrade Disabled locally\n")
return
# 🛡️ 熔断校验 2: 是否处于官方公共网关下 (强行硬编码拦截)
if config_mem.get('TG_TOKEN', '') == 'OFFICIAL_GATEWAY_MODE':
self.send_response(403)
self.end_headers()
self.wfile.write(b"403 Forbidden: OTA strictly disabled under Public Gateway mode\n")
return
# 校验通过,立即返回 200 回执,释放 Master 连接池
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(b"Action Accepted: trigger_ota\n")
# [修复] 逃逸 Systemd Cgroup并引入 bash -n 语法树校验防砖机制
import shutil
import base64
# 动态提取部署时的源地址,废除强制写死 main 分支,保障隔离测试环境
repo_url = "https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
if os.path.exists('/opt/ip_sentinel/core/install.sh'):
with open('/opt/ip_sentinel/core/install.sh', 'r') as f:
for line in f:
if line.startswith('REPO_RAW_URL='):
repo_url = line.split('=', 1)[1].strip('"\'')
break
# 动态构建报错回执文本 (第一层 Base64 隔离换行与特殊字符)
err_msg = f"❌ **OTA 熔断告警**\n📍 节点: `{config_mem.get('NODE_ALIAS', '未知')}`\n⚠ 原因: 脚本语法校验(bash -n)未通过,下载可能不完整。\n🚀 状态: 升级已取消,节点安全。"
err_msg_b64 = base64.b64encode(err_msg.encode('utf-8')).decode('utf-8')
tg_url = config_mem.get('TG_API_URL', '')
chat_id = config_mem.get('CHAT_ID', '')
# [v3.6.3 究极防御] 采用 Base64 将整个 OTA 执行脚本封装 (第二层隔离)
# 彻底免疫因为 python 变量掺杂引号而导致的 shell 注入或截断
ota_script = f"""
export SILENT_OTA="true"
curl -fsSL {repo_url}/core/install.sh -o /tmp/ota_agent.sh
if bash -n /tmp/ota_agent.sh; then
bash /tmp/ota_agent.sh > /opt/ip_sentinel/logs/ota_upgrade.log 2>&1
else
MSG=$(echo '{err_msg_b64}' | base64 -d)
curl -s -m 10 -X POST "{tg_url}" -d "chat_id={chat_id}" -d "text=$MSG" -d "parse_mode=Markdown" > /dev/null 2>&1
echo "OTA Checksum Failed: Script corrupted" > /opt/ip_sentinel/logs/ota_upgrade.log
fi
"""
ota_script_b64 = base64.b64encode(ota_script.encode('utf-8')).decode('utf-8')
# 安全解包并执行
if shutil.which("systemd-run"):
full_cmd = f"systemd-run --quiet --no-block bash -c \"echo '{ota_script_b64}' | base64 -d | bash\""
else:
full_cmd = f"nohup bash -c \"echo '{ota_script_b64}' | base64 -d | bash\" >/dev/null 2>&1 &"
# 彻底统一为 os.system消灭最后一个可能游离的 Popen 僵尸进程
os.system(full_cmd)
except Exception as e:
self.send_response(500)
self.end_headers()
self.wfile.write(f"500 Internal Error: {str(e)}\n".encode('utf-8'))
else:
self.send_response(404)
self.end_headers()
@@ -228,21 +473,49 @@ class AgentHandler(http.server.BaseHTTPRequestHandler):
import socket
# ================== [v3.0.3 变更: 引入多线程模型抵抗 Slowloris 攻击] ==================
class ThreadedDualStackServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
class ThreadedServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
allow_reuse_address = True # 开启端口复用,防止热重启时端口冲突
address_family = socket.AF_INET6 if socket.has_ipv6 else socket.AF_INET
# [核心修复] 显式关闭 V6ONLY 参数,治愈大量云主机纯双栈下的 IPv4 耳聋现象
def server_bind(self):
if self.address_family == socket.AF_INET6:
try:
self.socket.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
except Exception:
pass
super().server_bind()
try:
bind_addr = "::" if socket.has_ipv6 else ""
with ThreadedDualStackServer((bind_addr, PORT), AgentHandler) as httpd:
httpd.serve_forever()
# 1. 优先尝试监听双栈/IPv6
ThreadedServer.address_family = socket.AF_INET6
httpd = ThreadedServer(("::", PORT), AgentHandler)
except Exception:
# 2. [核心修复 Issue #23] 若系统内核已禁用 IPv6抛弃报错智能回退至纯 IPv4 监听
ThreadedServer.address_family = socket.AF_INET
httpd = ThreadedServer(("0.0.0.0", PORT), AgentHandler)
# ================== [v3.6.3 核心: 挂载 TLS 加密隧道 (强制装甲版)] ==================
import ssl
cert_path = '/opt/ip_sentinel/core/cert.pem'
key_path = '/opt/ip_sentinel/core/key.pem'
# 全网强制启用 TLS 装甲,彻底消灭 HTTP 裸奔漏洞
if os.path.exists(cert_path) and os.path.exists(key_path):
try:
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile=cert_path, keyfile=key_path)
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
except Exception as e:
print(f"SSL 隧道构建失败,退化为 HTTP: {e}")
# ======================================================================================
try:
httpd.serve_forever()
except Exception as e:
sys.exit(1)
# ====================================================================================
EOF
# --- [重点升级 3: 真正的静默后台启动] ---
echo "🚀 [Agent] 正在后台启动 Webhook 监听服务 (端口: $AGENT_PORT)..."
nohup python3 "${INSTALL_DIR}/core/webhook.py" "$AGENT_PORT" > /dev/null 2>&1 &
disown 2>/dev/null || true
echo "✅ [Agent] 守护进程启动完毕,可安全关闭终端。"
# --- [重点升级 3: 移交系统级守护进程接管 (阻塞模式)] ---
echo "🚀 [Agent] 正在启动 Webhook 监听服务 (端口: $AGENT_PORT)..."
exec python3 "${INSTALL_DIR}/core/webhook.py" "$AGENT_PORT"

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# ==========================================================
# 脚本名称: mod_google.sh (Google 业务逻辑模块)
# 脚本名称: mod_google.sh (Google 业务逻辑模块 - 动态锚点版)
# 核心功能: 执行坐标微抖动、模拟真实阅读时长、会话行为拉伸
# ==========================================================
@@ -16,11 +16,27 @@ else
exit 1
fi
# 容错机制:如果父进程没有传递 log 函数,则本地定义一个作为 fallback
# 容错机制:如果父进程没有传递 log 函数,则本地定义一个作为 fallback (v3.4.0 引入版本探针)
if ! type log >/dev/null 2>&1; then
log() {
# [v3.4.0 核心] 提取当前配置中的版本锚点
local local_ver="${AGENT_VERSION:-未知}"
# 保证日志目录存在
mkdir -p "${INSTALL_DIR}/logs"
printf "[$(date '+%Y-%m-%d %H:%M:%S')] [%-5s] [%-7s] [%s] %s\n" "$2" "$1" "$REGION_CODE" "$3" >> "${INSTALL_DIR}/logs/sentinel.log"
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$2" "$1" "$REGION_CODE" "$3")
# [时区对齐] 强制无视本地时区,以绝对 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
logger -t ip-sentinel "$core_msg"
else
# 降级输出到 stdout让 Systemd 捕获
echo "$core_msg"
fi
}
fi
@@ -48,8 +64,8 @@ get_random_coord() {
}
# --- [环境初始化] ---
# [v3.0.2修复] 直接读取系统已锁定的锚点 IP彻底杜绝“获取IP失败”及隧道偏移
CURRENT_IP="${BIND_IP:-Unknown}"
# [v3.3.1修改] 优先读取对外公网面孔作为哈希种子,兼容 NAT 机的空 BIND_IP
CURRENT_IP="${PUBLIC_IP:-${BIND_IP:-Unknown}}"
# -----------------------------------------------------------
# [V3.1.5] 哈希锚定法 (Hash-Seeded Persona)
@@ -93,14 +109,21 @@ CURL_BIND_OPT=""
DYNAMIC_IP_PREF="-${IP_PREF:-4}" # 默认提取用户配置
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\.]+$ ]]; then
CURL_BIND_OPT="--interface $BIND_IP"
# 智能探测:带冒号为 V6带点号为 V4
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
log "$MODULE_NAME" "INFO " "底层路由锁定: 绑定 IPv6 出口及协议 ($BIND_IP)"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
log "$MODULE_NAME" "INFO " "底层路由锁定: 绑定 IPv4 出口及协议 ($BIND_IP)"
# [v3.6.3 容错层补丁] 探测物理网卡/虚拟 IP 存活状态
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
if ! ip addr show 2>/dev/null | grep -qw "$RAW_BIND_IP"; then
log "$MODULE_NAME" "WARN " "检测到配置的出口 IP ($RAW_BIND_IP) 已丢失,自动降级为系统默认路由出网!"
CURL_BIND_OPT=""
else
CURL_BIND_OPT="--interface $BIND_IP"
# 智能探测:带冒号为 V6带点号为 V4
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
log "$MODULE_NAME" "INFO " "底层路由锁定: 绑定 IPv6 出口及协议 ($BIND_IP)"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
log "$MODULE_NAME" "INFO " "底层路由锁定: 绑定 IPv4 出口及协议 ($BIND_IP)"
fi
fi
fi
@@ -139,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

266
core/mod_quality.sh Executable file
View File

@@ -0,0 +1,266 @@
#!/bin/bash
# ==========================================================
# IP-Sentinel: 深海声呐 (IP 质量全维异步检测模块 v4.0.0)
# ==========================================================
source /opt/ip_sentinel/config.conf
# ==========================================
# 1. 动态网络锚定与协议自适应 (专为多 IP / NAT 架构打造)
# ==========================================
DYNAMIC_IP_PREF="${IP_PREF:-4}"
PROBE_ARGS=("-y" "-j" "-f") # 默认注入: 自动确认、JSON格式、明文无掩码IP
# 强壮正则:支持 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"
# [校验 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
# ==========================================
# 3. 极速预检与容灾打靶系统
# ==========================================
# 封装链路预检函数 (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#*\{}"
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
curl -s -X POST "${TG_API_URL}" \
-d "chat_id=${CHAT_ID}" \
-d "parse_mode=Markdown" \
-d "text=❌ *深海声呐探测失败*
📍 节点:\`${NODE_ALIAS}\`
🌐 锁定IP\`${PUBLIC_IP}\`
⚠️ *未收到有效回波。检测源超时或数据解析受阻。*" >/dev/null
exit 1
fi
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)
COUNTRY=$(echo "$JSON_DATA" | jq -r '.Info.Region.Name // "Unknown"' 2>/dev/null)
IP_TYPE=$(echo "$JSON_DATA" | jq -r '.Info.Type // "未知属性"' 2>/dev/null)
USAGE_TYPE=$(echo "$JSON_DATA" | jq -r '.Type.Usage.IPinfo // "未知场景"' 2>/dev/null)
# 3. 深度欺诈与信用评估 (各大权威库联查)
SCAM_SCORE=$(echo "$JSON_DATA" | jq -r '.Score.SCAMALYTICS // "0"' 2>/dev/null)
ABUSE_SCORE=$(echo "$JSON_DATA" | jq -r '.Score.AbuseIPDB // "0"' 2>/dev/null)
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 || \
echo "$JSON_DATA" | jq -e '.Factor.VPN | to_entries | any(.value == true)' >/dev/null 2>&1; then
IS_PROXY="🟡 疑似代理/VPN"
fi
# 4. 提取流媒体与 AI 解锁指标 (带解锁类型)
parse_media() {
local status=$(echo "$JSON_DATA" | jq -r ".Media.$1.Status // \"未知\"" 2>/dev/null)
local reg=$(echo "$JSON_DATA" | jq -r ".Media.$1.Region // \"\"" 2>/dev/null)
local type=$(echo "$JSON_DATA" | jq -r ".Media.$1.Type // \"\"" 2>/dev/null)
if [[ "$status" == *"解锁"* ]]; then
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}"
fi
}
NF_STAT=$(parse_media "Netflix")
YT_STAT=$(parse_media "Youtube")
DP_STAT=$(parse_media "DisneyPlus")
TK_STAT=$(parse_media "TikTok")
GPT_STAT=$(parse_media "ChatGPT")
APV_STAT=$(parse_media "AmazonPrimeVideo")
# 提取原生 JSON 里的原始状态用于底层隐写回传
RAW_NF_STAT=$(echo "$JSON_DATA" | jq -r '.Media.Netflix.Status // "Unknown"' 2>/dev/null)
RAW_YT_REG=$(echo "$JSON_DATA" | jq -r '.Media.Youtube.Region // ""' 2>/dev/null)
RAW_YT_STAT=$(echo "$JSON_DATA" | jq -r '.Media.Youtube.Status // "Unknown"' 2>/dev/null)
# 5. 邮局连通性与黑名单
PORT25=$(echo "$JSON_DATA" | jq -r '.Mail.Port25 // "false"' 2>/dev/null)
[ "$PORT25" == "true" ] && P25_TEXT="✅ 畅通" || P25_TEXT="❌ 封堵"
DNS_BLACK=$(echo "$JSON_DATA" | jq -r '.Mail.DNSBlacklist.Blacklisted // "0"' 2>/dev/null)
DNS_MARK=$(echo "$JSON_DATA" | jq -r '.Mail.DNSBlacklist.Marked // "0"' 2>/dev/null)
# 6. “送中” 逻辑判定
WARNING_MSG=""
# [修复] 官方 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}
*🏢 物理身份与网络属性*
\`AS${ASN}\` | \`${ORG}\`
**定位:** \`${COUNTRY} - ${CITY}\`
**属性:** \`${IP_TYPE}\` | \`${USAGE_TYPE}\`
**探针:** ${IS_PROXY}
*🛡️ 欺诈雷达 (0为最优)*
• **Scamalytics:** \`${SCAM_SCORE}/100\`
• **AbuseIPDB:** \`${ABUSE_SCORE}/100\`
• **IPQS:** \`${IPQS_SCORE}/100\`
• **IP2Location:** \`${IP2L_SCORE}/100\`
• **IPAPI 风险率:** \`${FRAUD_RISK}\`
*🎬 核心业务解锁*
• **YouTube:** ${YT_STAT}
• **Netflix:** ${NF_STAT}
• **Disney+:** ${DP_STAT}
• **PrimeVideo:** ${APV_STAT}
• **TikTok:** ${TK_STAT}
• **ChatGPT:** ${GPT_STAT}
*✉️ 邮局与污染度*
• **25 端口出站:** ${P25_TEXT}
• **DNS 污染库:** 严重 \`${DNS_BLACK}\` | 轻微 \`${DNS_MARK}\`
_👉 [🔍 详细信用图谱直达 (Scamalytics)](https://scamalytics.com/ip/${LINK_IP})_
⏱️ \`${CURRENT_TIME}\` | ⚙️ \`v${LOCAL_VER}\`"
# [修复] 剥离显示层的 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

@@ -1,7 +1,7 @@
#!/bin/bash
# ==========================================================
# 脚本名称: mod_trust.sh (IP 信用净化模块 V3.1.4 拓扑自适应版)
# 脚本名称: mod_trust.sh (IP 信用净化模块 - 动态锚点版)
# 核心功能: 动态扫描本地 LBS 冷数据,提取权威白名单,执行流量净化
# ==========================================================
@@ -11,7 +11,7 @@ UA_FILE="${INSTALL_DIR}/data/user_agents.txt"
# 你的 GitHub 仓库 Raw 数据直链前缀
REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/main"
# 临时改为私库地址用于测试
# REPO_RAW_URL="https://git.94211762.xyz/hotyue/IP-Sentinel/raw/branch/main"
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/v3.6.2-rc"
# 1. 基础环境校验
[ ! -f "$CONFIG_FILE" ] && exit 1
@@ -41,12 +41,17 @@ if [ ${#TRUST_URLS[@]} -eq 0 ]; then
TRUST_URLS=("https://en.wikipedia.org/wiki/Special:Random" "https://www.apple.com/" "https://www.microsoft.com/")
fi
# 3. 日志规范化
# 3. 日志规范化 (v3.4.0 引入版本探针)
log_msg() {
local TYPE=$1
local MSG=$2
local TIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$TIME] [$TYPE] [Trust ] [$REGION] $MSG" | tee -a "$LOG_FILE"
# [时区对齐] 强制无视本地时区,以绝对 UTC 时间生成日志时间戳
local TIME=$(date -u "+%Y-%m-%d %H:%M:%S UTC")
# [v3.4.0 核心] 提取当前配置中的版本锚点
local local_ver="${AGENT_VERSION:-未知}"
# 日志格式注入 [版本号] 追踪标识,保持对齐
echo "[$TIME] [v%-5s] [%-5s] [Trust ] [$REGION] $MSG" | sed "s/%-5s/$local_ver/;s/%-5s/$TYPE/" | tee -a "$LOG_FILE"
}
# 4. 锁定单次会话指纹
@@ -59,8 +64,8 @@ if [ -f "$UA_FILE" ]; then
TOTAL_UA=${#UA_POOL[@]}
if [ "$TOTAL_UA" -gt 0 ]; then
# 以本地锁定的公网 IP (BIND_IP) 为种子计算 CRC32 哈希值
SEED=$(echo -n "${BIND_IP:-127.0.0.1}" | cksum | awk '{print $1}')
# [v3.3.1修改] 优先使用固化的公网 IP 作为哈希种子,防止 NAT 节点指纹同质化
SEED=$(echo -n "${PUBLIC_IP:-${BIND_IP:-127.0.0.1}}" | cksum | awk '{print $1}')
# 利用确定的种子,在全球 4000 的库中,计算出本机的 3 个绝对专属坐标
IDX1=$(( SEED % TOTAL_UA ))
@@ -95,14 +100,21 @@ CURL_BIND_OPT=""
DYNAMIC_IP_PREF="-${IP_PREF:-4}" # 默认提取用户配置
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\.]+$ ]]; then
CURL_BIND_OPT="--interface $BIND_IP"
# 智能探测:带冒号为 V6带点号为 V4
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
log_msg "INFO " "底层路由锁定: 绑定 IPv6 出口及协议 ($BIND_IP)"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
log_msg "INFO " "底层路由锁定: 绑定 IPv4 出口及协议 ($BIND_IP)"
# [v3.6.3 容错层补丁] 探测物理网卡/虚拟 IP 存活状态
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
if ! ip addr show 2>/dev/null | grep -qw "$RAW_BIND_IP"; then
log_msg "WARN " "检测到配置的出口 IP ($RAW_BIND_IP) 已丢失,自动降级为系统默认路由出网!"
CURL_BIND_OPT=""
else
CURL_BIND_OPT="--interface $BIND_IP"
# 智能探测:带冒号为 V6带点号为 V4
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
log_msg "INFO " "底层路由锁定: 绑定 IPv6 出口及协议 ($BIND_IP)"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
log_msg "INFO " "底层路由锁定: 绑定 IPv4 出口及协议 ($BIND_IP)"
fi
fi
fi

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# ==========================================================
# 脚本名称: runner.sh (IP-Sentinel 主控调度引擎 V2.0 智能分配版)
# 脚本名称: runner.sh (IP-Sentinel 主控调度引擎 - 动态锚点版)
# 核心功能: 防并发延迟启动、功能开关(Feature Flag)自适应、多模块概率轮盘调度
# ==========================================================
@@ -15,20 +15,42 @@ if [ ! -f "$CONFIG_FILE" ]; then
fi
source "$CONFIG_FILE"
# 2. 全局日志写入函数 (导出给子进程共享使用)
# ================== [新增: 文件排他锁,防止并发重入引发内存雪崩] ==================
exec 200>"/tmp/ip_sentinel_runner.lock"
if ! flock -n 200; then
echo "[$(date)] ⚠️ 上一轮巡逻任务尚未结束,本次触发自动取消。" >> "$LOG_FILE"
exit 0
fi
# ==================================================================================
# 2. 全局日志写入函数 (导出给子进程共享使用v3.4.0 引入版本探针)
log() {
local module=$1
local level=$2
local msg=$3
# [v3.4.0 核心] 提取当前配置中的版本锚点
local local_ver="${AGENT_VERSION:-未知}"
# 保证日志目录存在
mkdir -p "${INSTALL_DIR}/logs"
printf "[$(date '+%Y-%m-%d %H:%M:%S')] [%-5s] [%-7s] [%s] %s\n" "$level" "$module" "$REGION_CODE" "$msg" >> "$LOG_FILE"
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$level" "$module" "$REGION_CODE" "$msg")
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
logger -t ip-sentinel "$core_msg"
else
# 降级输出到 stdout让 Systemd 捕获
echo "$core_msg"
fi
}
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
@@ -69,7 +91,8 @@ fi
if [ -n "$TARGET_MOD" ] && [ -x "${INSTALL_DIR}/core/${TARGET_MOD}" ]; then
log "SYSTEM" "INFO" "命中触发条件,加载并执行子模块: ${MOD_NAME}"
# 核心降耗逻辑:使用 nice -n 19 赋予进程最低 CPU 优先级,绝不抢占 VPS 正常业务的资源
nice -n 19 bash "${INSTALL_DIR}/core/${TARGET_MOD}"
# [安全修复] 注入 200>&-,强行关闭子进程对排他锁的继承权!防止子进程假死导致全局死锁
nice -n 19 bash "${INSTALL_DIR}/core/${TARGET_MOD}" 200>&-
else
log "SYSTEM" "ERROR" "配置了模块 ${MOD_NAME},但未找到对应的可执行脚本: ${TARGET_MOD}"
fi

View File

@@ -1,73 +0,0 @@
#!/bin/bash
# ==========================================================
# 脚本名称: tg_daemon.sh (Telegram 互动监听守护进程)
# 核心功能: 极低功耗长轮询监听 TG 指令,实现远程控制
# ==========================================================
INSTALL_DIR="/opt/ip_sentinel"
CONFIG_FILE="${INSTALL_DIR}/config.conf"
OFFSET_FILE="/tmp/ip_sentinel_tg_offset.txt"
# 1. 环境自检
[ ! -f "$CONFIG_FILE" ] && exit 1
source "$CONFIG_FILE"
# 如果没有配置 TG 机器人,则安静退出守护进程
[ -z "$TG_TOKEN" ] || [ -z "$CHAT_ID" ] && exit 0
# 2. 初始化消息偏移量 (Offset) 记录文件,防止重启后重复处理老消息
OFFSET=0
[ -f "$OFFSET_FILE" ] && OFFSET=$(cat "$OFFSET_FILE")
# 发送消息的快捷工具函数
send_msg() {
curl -s -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
-d "chat_id=$CHAT_ID" -d "text=$1" -d "parse_mode=Markdown" > /dev/null
}
# 3. 核心守护循环 (无限长轮询监听)
# timeout=30 表示如果没有新消息,连接会挂起 30 秒才断开重连,极大地降低了系统资源消耗
while true; do
UPDATES=$(curl -s "https://api.telegram.org/bot${TG_TOKEN}/getUpdates?offset=${OFFSET}&timeout=30")
# 使用 jq 检查是否有新消息返回
COUNT=$(echo "$UPDATES" | jq -r '.result | length' 2>/dev/null)
if [[ "$COUNT" =~ ^[0-9]+$ ]] && [ "$COUNT" -gt 0 ]; then
for (( i=0; i<$COUNT; i++ )); do
UPDATE_ID=$(echo "$UPDATES" | jq -r ".result[$i].update_id")
MSG_CHAT_ID=$(echo "$UPDATES" | jq -r ".result[$i].message.chat.id")
MSG_TEXT=$(echo "$UPDATES" | jq -r ".result[$i].message.text")
# 【安全防御】严格权限验证:只响应你部署时填入的 Chat ID无视陌生人消息
if [ "$MSG_CHAT_ID" == "$CHAT_ID" ]; then
case "$MSG_TEXT" in
"/run")
send_msg "🚀 **[指令下达]** 正在后台立即触发 IP 养护任务..."
# 使用 nohup 另起后台独立进程运行,防止阻塞当前监听器的循环
nohup bash "${INSTALL_DIR}/core/mod_google.sh" >/dev/null 2>&1 &
;;
"/log")
LOG_DATA=$(tail -n 15 "${INSTALL_DIR}/logs/sentinel.log")
send_msg "📄 **[最近 15 行系统日志]**%0A\`\`\`log%0A${LOG_DATA}%0A\`\`\`"
;;
"/report")
# 触发生成一次战报
bash "${INSTALL_DIR}/core/tg_report.sh"
;;
"/help"|"/start")
HELP_MSG="🛡️ **IP-Sentinel 控制台**%0A/run - 立刻执行一次养护%0A/log - 抓取最新运行日志%0A/report - 手动生成统计简报"
send_msg "$HELP_MSG"
;;
esac
fi
# 记录处理完毕的 message ID下次请求从新的 ID 开始获取
OFFSET=$((UPDATE_ID + 1))
echo "$OFFSET" > "$OFFSET_FILE"
done
fi
# 基础安全延时,防止极端网络情况下的死循环吃光 CPU
sleep 2
done

View File

@@ -1,8 +1,8 @@
#!/bin/bash
# ==========================================================
# 脚本名称: tg_report.sh (Telegram 每日战报模块 V6.0 动态拼装版)
# 核心功能: 适配 Feature Flag 架构,按需展示 Google/Trust 独立统计数据
# 脚本名称: tg_report.sh (Telegram 每日战报模块 - 动态锚点版)
# 核心功能: 适配 Feature Flag 架构,按需展示独立统计数据OTA 更新预警
# ==========================================================
INSTALL_DIR="/opt/ip_sentinel"
@@ -18,26 +18,53 @@ 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 协议自适应与多级容灾版)
NODE_NAME=$(hostname | cut -c 1-15)
# [v3.5.2 核心: 引入双轨身份架构]
if [ -z "$NODE_NAME" ]; then
IP_HASH=$(echo "${PUBLIC_IP:-127.0.0.1}" | md5sum | cut -c 1-4 | tr 'a-z' 'A-Z')
NODE_NAME="$(hostname | cut -c 1-10)-${IP_HASH}"
fi
NODE_ALIAS="${NODE_ALIAS:-$NODE_NAME}"
# --- [防线 1: 底层路由锁定与协议自适应] ---
CURL_BIND_OPT=""
DYNAMIC_IP_PREF="-${IP_PREF:-4}"
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\.]+$ ]]; then
CURL_BIND_OPT="--interface $BIND_IP"
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
# [v3.6.3 容错层补丁] 探测物理网卡/虚拟 IP 存活状态
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
if ! ip addr show 2>/dev/null | grep -qw "$RAW_BIND_IP"; then
CURL_BIND_OPT=""
else
CURL_BIND_OPT="--interface $BIND_IP"
if [[ "$BIND_IP" == *":"* ]]; then
DYNAMIC_IP_PREF="-6"
elif [[ "$BIND_IP" == *"."* ]]; then
DYNAMIC_IP_PREF="-4"
fi
fi
fi
# 多节点容灾探测出口 IP (注入协议自适应)
CURRENT_IP=$( (curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -s -m 5 api.ip.sb/ip || curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -s -m 5 ifconfig.me) 2>/dev/null | tr -d '[:space:]' )
# 强制兜底:如果所有外部 API 挂了,直接使用本地强行锁定的 BIND_IP
[ -z "$CURRENT_IP" ] && CURRENT_IP="$BIND_IP"
# [v3.3.1 修改] 强制兜底:如果外部 API 挂了,优先使用固化的对外公网面孔 (兼容 NAT 机的空 BIND_IP)
[ -z "$CURRENT_IP" ] && CURRENT_IP="${PUBLIC_IP:-$BIND_IP}"
# 为可能获取到的 IPv6 自动添加方括号护甲
[[ "$CURRENT_IP" == *":"* ]] && [[ "$CURRENT_IP" != *"["* ]] && CURRENT_IP="[${CURRENT_IP}]"
@@ -81,17 +108,18 @@ case "$REGION_CODE" in
"SG") FLAG="🇸🇬" ;;
"HK") FLAG="🇭🇰" ;;
"GB"|"UK") FLAG="🇬🇧" ;;
"AU") FLAG="🇦🇺" ;;
*) FLAG="🌐" ;;
esac
# 3. 截取过去 24 小时的日志
LOG_CONTENT=$(find "$LOG_FILE" -mtime -1 -exec cat {} \; 2>/dev/null)
# 3. 截取过去 24 小时的日志 (每天72次轮询保留最新 1000 行足以覆盖单日战报)
LOG_CONTENT=$(tail -n 1000 "$LOG_FILE" 2>/dev/null)
if [ -z "$LOG_CONTENT" ]; then
read -r -d '' MSG <<EOT
🛑 **[IP-Sentinel] 告警:节点异常**
----------------------------
📍 **节点名称**: \`${NODE_NAME}\`
📍 **节点名称**: \`${NODE_ALIAS}\`
⚠️ **警告**: 过去 24 小时无运行日志!
🛠️ **建议**: 节点可能刚部署完毕,请在面板手动执行一次养护动作。
EOT
@@ -109,7 +137,7 @@ else
# 开始组装战报头部
MSG="📊 **IP-Sentinel 每日简报 (${FLAG} ${REGION_NAME})**
----------------------------
📍 **节点名称**: \`${NODE_NAME}\`
📍 **节点名称**: \`${NODE_ALIAS}\`
📡 **出口 IP**: \`${CURRENT_IP}\`
🛡️ **IP 属性**: ${IP_TYPE}"
@@ -152,18 +180,65 @@ else
MSG="$MSG
🕒 **最近执行快照 [${LAST_MOD:-"System"}]:**
时间: ${LAST_TIME:-"暂无数据"}
结论: ${LAST_SCORE:-"暂无数据"}
----------------------------
💡 哨兵正在后台默默守护您的资产。"
时间: ${LAST_TIME:-"暂无数据"} (节点本地)
结论: ${LAST_SCORE:-"暂无数据"}"
fi
# 5. 调用 API 推送 (接入安全网关)
# ==========================================
# 5. [核心: OTA 云端版本探针与告警模块]
# ==========================================
# 从配置文件提取当前本地版本,若无则默认为未知
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"
REMOTE_VER=$(curl -s -m 3 "${REPO_RAW_URL}/version.txt" | grep "^AGENT_VERSION=" | cut -d'=' -f2 | tr -d '[:space:]')
# 构建底部引擎状态块
MSG="$MSG
----------------------------
🛡️ **系统引擎状态**
⏱️ 战报生成: \`${REPORT_UTC_TIME}\`
当前运行版本: \`v${LOCAL_VER}\`"
# 比准逻辑:如果成功抓到了远端版本,且和本地不一样
if [ -n "$REMOTE_VER" ] && [ "$REMOTE_VER" != "$LOCAL_VER" ]; then
MSG="$MSG
最新官方版本: \`v${REMOTE_VER}\` (✨有新版)
💡 *系统提示:检测到新版引擎,建议通过控制台执行 OTA 热更新!*"
elif [ -n "$REMOTE_VER" ] && [ "$REMOTE_VER" == "$LOCAL_VER" ]; then
MSG="$MSG
最新官方版本: \`v${REMOTE_VER}\` (✅已是最新)
💡 *IP-Sentinel 持续为您守护节点。*
*若本项目对您有帮助,欢迎前往 GitHub 赐予 🌟*"
else
# 抓取失败兜底
MSG="$MSG
💡 *IP-Sentinel 持续为您守护节点。*
*若本项目对您有帮助,欢迎前往 GitHub 赐予 🌟*"
fi
# 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

@@ -1,47 +1,97 @@
#!/bin/bash
# ==========================================================
# 脚本名称: uninstall.sh (IP-Sentinel 一键卸载脚本 V3.1.4 焦土版)
# 脚本名称: uninstall.sh (IP-Sentinel 一键卸载脚本 - 动态锚点版)
# 核心功能: 无痕清理守护进程、定时任务、运行目录及临时缓存
# ==========================================================
# ==========================================================
# 🛑 核心权限防线: 检查是否以 root 权限运行
# ==========================================================
if [ "$EUID" -ne 0 ]; then
echo -e "\033[31m❌ 权限被拒绝: 卸载 IP-Sentinel 需要最高系统权限。\033[0m"
echo -e "💡 请切换到 root 用户 (执行 su root 或 sudo -i) 后重新运行指令。"
exit 1
fi
INSTALL_DIR="/opt/ip_sentinel"
echo "========================================================"
echo " 🗑️ 准备卸载 IP-Sentinel (边缘节点 Edge Agent)"
# [核心: 动态读取并播报即将销毁的本地版本号]
CONFIG_FILE="${INSTALL_DIR}/config.conf"
if [ -f "$CONFIG_FILE" ]; then
CURRENT_VER=$(grep "^AGENT_VERSION=" "$CONFIG_FILE" | cut -d'"' -f2)
[ -n "$CURRENT_VER" ] && echo " 📍 目标版本: v${CURRENT_VER}"
fi
echo "========================================================"
# 1. 停止运行中的守护进程与主控模块 (涵盖所有历史版本进程)
echo "[1/3] 正在终止后台守护进程与所有养护任务..."
# 1. 停止并删除 Systemd 服务 (适配新架构)
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 \
ip-sentinel-agent-daemon.service >/dev/null 2>&1
rm -f /etc/systemd/system/ip-sentinel-runner.service
rm -f /etc/systemd/system/ip-sentinel-runner.timer
rm -f /etc/systemd/system/ip-sentinel-updater.service
rm -f /etc/systemd/system/ip-sentinel-updater.timer
rm -f /etc/systemd/system/ip-sentinel-report.service
rm -f /etc/systemd/system/ip-sentinel-report.timer
rm -f /etc/systemd/system/ip-sentinel-agent-daemon.service
systemctl daemon-reload
systemctl reset-failed
else
echo "💡 未检测到 Systemd跳过此步骤..."
fi
# 使用 pkill 替代传统的 pgrep | xargs指令更短、容错率更高
# 2. 停止运行中的守护进程与主控模块 (兜底清理老版进程)
echo "[2/4] 正在终止后台守护进程与所有养护任务..."
pkill -9 -f "tg_daemon.sh" >/dev/null 2>&1
pkill -9 -f "agent_daemon.sh" >/dev/null 2>&1
pkill -9 -f "python3.*webhook.py" >/dev/null 2>&1
pkill -9 -f "webhook.py" >/dev/null 2>&1
pkill -9 -f "runner.sh" >/dev/null 2>&1
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
# 2. 清除系统定时任务 (Cron)
echo "[2/3] 正在清理系统定时任务 (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
# 3. 清除系统定时任务 (Cron)
echo "[3/4] 正在清理系统定时任务 (Cron)..."
# [终极安全防御] 直接使用管道流过滤并覆盖,不产生任何 /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
# 3. 删除所有文件、日志与临时缓存
echo "[3/3] 正在抹除核心程序、配置文件与系统痕迹..."
# 4. 删除所有文件、日志与临时缓存
echo "[4/4] 正在抹除核心程序、配置文件与系统痕迹..."
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

@@ -1,8 +1,8 @@
#!/bin/bash
# ==========================================================
# 脚本名称: updater.sh (IP-Sentinel V3.3.0 养料注入与分频调度中枢)
# 核心功能: 静默更新热搜词/LBS、指纹库错峰调度、强制出站死锁
# 脚本名称: updater.sh (IP-Sentinel 养料注入与分频调度中枢 - 动态锚点版)
# 核心功能: 静默更新热数据/LBS、指纹库错峰调度、强制出站死锁、版本无缝继承
# ==========================================================
INSTALL_DIR="/opt/ip_sentinel"
@@ -11,6 +11,8 @@ UA_TIME_FILE="${INSTALL_DIR}/core/.ua_last_update"
# 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"
# 1. 加载本地冷数据配置
if [ ! -f "$CONFIG_FILE" ]; then
@@ -18,10 +20,26 @@ if [ ! -f "$CONFIG_FILE" ]; then
fi
source "$CONFIG_FILE"
# 2. 全局日志写入函数
# 2. 全局日志写入函数 (v3.4.0 引入版本探针)
log() {
# [v3.4.0 核心] 提取当前配置中的版本锚点
local local_ver="${AGENT_VERSION:-未知}"
# 保证日志目录存在
mkdir -p "${INSTALL_DIR}/logs"
printf "[$(date '+%Y-%m-%d %H:%M:%S')] [%-5s] [%-7s] [%s] %s\n" "$2" "$1" "$REGION_CODE" "$3" >> "$LOG_FILE"
# 日志格式注入 [版本号] 追踪标识
local core_msg=$(printf "[v%-5s] [%-5s] [%-7s] [%s] %s" "$local_ver" "$2" "$1" "$REGION_CODE" "$3")
# [时区对齐] 强制无视本地时区,以绝对 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
logger -t ip-sentinel "$core_msg"
else
# 降级输出到 stdout让 Systemd 捕获
echo "$core_msg"
fi
}
log "Updater" "INFO " "========== 触发后台静默 OTA 热数据更新 =========="
@@ -36,7 +54,12 @@ CURL_CMD="curl -${IP_PREF:-4} -sL"
if [ -n "$BIND_IP" ]; then
# curl 的 --interface 参数不支持带方括号的 IPv6 地址,必须强行脱壳
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
CURL_CMD="$CURL_CMD --interface $RAW_BIND_IP"
# [v3.6.3 容错层补丁] 探测网卡存活状态,防止 IP 漂移导致永久断网
if ! ip addr show 2>/dev/null | grep -qw "$RAW_BIND_IP"; then
log "Updater" "WARN " "检测到绑定的出口 IP ($RAW_BIND_IP) 已丢失,自动退回默认路由!"
else
CURL_CMD="$CURL_CMD --interface $RAW_BIND_IP"
fi
fi
# ==========================================================
@@ -111,6 +134,22 @@ if [ -n "$REGION_JSON_FILE" ] && [ -f "$REGION_JSON_FILE" ]; then
fi
fi
# ==========================================================
# 5.5. 容灾更新深海声呐底层探针 (彻底消除第三方 RCE 依赖)
# ==========================================================
TMP_PROBE="/tmp/ip_sentinel_probe.sh"
$CURL_CMD "https://raw.githubusercontent.com/xykt/IPQuality/main/ip.sh" -o "$TMP_PROBE"
# 🛡️ 供应链防毒:验证脚本内是否包含原作者特有签名,防止被墙重定向为 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
# ==========================================================
# 6. 日志防满瘦身机制 (保留最近 2000 行)
# ==========================================================

1
data/keywords/kw_AE.txt Normal file
View File

@@ -0,0 +1 @@
dubai news uae news abu dhabi news uae weather dubai weather uae economy dirham exchange rate dubai traffic dubai metro dubai airport flights emirates airline etihad airways uae tourism dubai hotels burj khalifa dubai mall abu dhabi tourism uae visa news khaleej times gulf news the national emirates247 uae government uae central bank etisalat du telecom uae noon uae amazon ae careem uae talabat uae dubai jobs uae real estate dubai news today breaking news uae weather today دبي أخبار الطقس الإمارات سعر الدرهم

200
data/keywords/kw_AU.txt Normal file
View File

@@ -0,0 +1,200 @@
outlander episode 9
beaudesert
airbus a380
lebron james
sydney roosters
michele bullock
kapila chandrasena
deandre ayton
st. george illawarra dragons
car chase
woolworths soft plastics recycling
star fox nintendo switch
latrell mitchell
ev bill
australia women's national football team
tyson smoothy
jake clifford
swatch
henley beach
isis brides arrival
vera wang 2026 met gala
power outage
milton fire
gws name change
mike wells
eta aquarids meteor shower
f1 news
sony playstation lawsuit
teams
jarred vanderbilt
kane cornes
peter daicos
chris phelan
diana, princess of wales
wesfarmers
anz class action lawsuit outcome
negative gearing
christian horner
craig silvey
nepal vs oman
shane flanagan
james hopes
budget
teacher
nick foot
the rookie the bandit
deine mariner
nate caddy
cairns post
rba
nyt strands hints
product recall
sharks vs tigers
siosifa talakai
sydney vs melbourne
brodie grundy
nba jayson tatum
australia world athletics relays record
kimi antonelli miami penalty
mitchell freeway crash
roosters vs broncos
bondi beach
tai tuivasa
ufc
auckland fc vs melbourne city fc
quillan salkilld
austin reaves
carlton vs st kilda
fijian drua vs highlanders
tasmania may temperature records
colorectal cancer
bulldogs vs cowboys
the sheep detectives
dolphins vs storm
airline
gta6
mike conley
home battery rebate
nba playoff bracket
rudy gobert
sam burgess
archibald prize 2026 finalists
kyle sandilands broadcasting return
dp world tour
alperen şengün
paramedic stabbed
marwan rahiki
weather perth
david allan coe
la lakers
jarome luai png chiefs
gauche
keith urban daughter instagram unfollow
sarah ferguson
one championship
parafield airport
ai bubble
tony burke
professor richard scolyer
san antonio spurs vs portland trail blazers match player stats
prince harry working royal
retirement
rebate
denver nuggets
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
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
ig
danish malewar
assassin's creed black flag resynced
sarfaraz khan
kartik sharma
instagram stories not working
meningococcal b
sundaresh menon
thunder vs suns
cade cunningham
real salt lake vs inter miami
pope francis
camera
anzac
kids news
bonds
hung cao
classroom
michael jackson biopic movie
india women vs south africa women
nato
bayern munich
barcelona vs celta vigo
bournemouth vs leeds
leverkusen vs bayern
burnley vs man city
elche vs atlético madrid
lsg vs rr
pakistan super league
kyle sandilands alleged rant jackie o
carrie bickmore
adam levine
alexandra eala
tubi
charles melton
nuclear weapon
janet jackson
justin bieber australia tour
fleche wallonne 2026
ange postecoglou
john hattie
real madrid vs alavés
brighton vs chelsea
woolworth
nitish rana
lyrid meteor shower
世界地球日
youth gang
earth day

1
data/keywords/kw_BD.txt Normal file
View File

@@ -0,0 +1 @@
dhaka news bangladesh news bangladesh weather dhaka weather bangladesh economy taka exchange rate dhaka traffic hazrat shahjalal airport flights bangladesh tourism coxs bazar travel sylhet news chittagong news bangladesh visa news daily star bdnews24 prothom alo dhaka tribune banglanews bangladesh government bangladesh bank btrc grameenphone banglalink robi daraz bangladesh nagad bkash bangladesh news today breaking news bangladesh weather today dhaka jobs আজকের খবর ঢাকা আবহাওয়া বাংলাদেশ টাকা বিনিময় হার

200
data/keywords/kw_CA.txt Normal file
View File

@@ -0,0 +1,200 @@
cason wallace
jake laravia
alex caruso
luguentz dort
sir david attenborough
leon must die forever
air canada jet fuel shortage
austin reaves
deandre ayton
ryan strome
stephen colbert
jansen harkins
nat wolff
steve carell
flight
carter bryant
lola consuelos
devin vassell
chicago pd
stephon castle
vancouver news
bc hydro
paul mccartney
salman khan
dario amodei
randy jackson health
cape breton hiker search
angelina jolie
meteor shower 2026
national emergency alert system test
mitch marner
daisy edgar jones
jackson lacombe
nepal vs oman
naz reid
christopher nolan
jelly roll
明天的天氣
lakers vs okc
julius randle
mamata banerjee
aaj tak
star wars
oil
내일 날씨
johnston canyon
aaj tak live
mats zuccarello
paris jackson
atlas - cruz azul
cruz azul
jake paul
lafc vs san diego fc
micheal jackson
aziz ansari
downtown toronto power outage today
matt damon
seattle mariners
fraud
margot robbie
steve erceg
hacks
jabari smith jr.
ringo starr
patton oswalt
pavel talankin oscar
bmo marathon
jack della maddalena
b
adam scott
canada immigration news
bruce cassidy
nugent hopkins
nhl playoff bracket
nepal vs uae
dostal
vasily podkolzin
nh
lebron james
carter hart
rachel kerr missing
lena dunham
utah
kailer yamamoto
clayton keller
jack white
keanu reeves
danielle smith
workday
jermaine jackson
prada
next oilers game
anaheim ducks coach
dhurandhar 2
bchl
from tv series
whl
shea theodore
nikola jokić
mark stone
cameron johnson
dea
dylan guenther
jamal murray
euphoria cast
mlb bo bichette
edmonton news
radko gudas
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
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
guide de la révolution de l'iran
casa pia vs braga
denaturalization
ocean
alberta referendum
vfb stuttgart vs sc freiburg
gpt 5.5
noah cates
pwhl scores
hank idsinga
karoline leavitt
ottawa charge
million dollar secret
white sox vs diamondbacks
suns vs thunder
stars vs wild
jaafar jackson
airport
grand theft auto vi
pentagone
etats unis
monette farms news
jose soriano
jon cooper
barcelona vs celta vigo
764
david scott
rodrigo duterte
u18 world championship
zara tindall
graham platner
lsg vs rr
nikki glaser
global news edmonton
policier
nuclear weapon
motorcycle
msc francesca
poet stock
fifa tickets
7 jours
alexandra eala
earth
zara larsson
girona vs real betis
kevyn adams
ali khamenei
inter côme
leicester city vs hull
fenerbahçe
françois bonnardel
missile
real madrid vs alavés
vrabel and russini photos

View File

@@ -1,10 +1,200 @@
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
amazon alexa+
buckelwal timmy timmy wal
esc 2026
barbara schöneberger
wetter regensburg
mile high city
tennessee
flyers hurricanes
ban vs pak
berufsbildungsbericht
wehrdienst
stau a2
umfrage sachsen-anhalt
samsung galaxy s25 one ui 8.5
timmy news
hermann göring
nordex
alan ritchson
tesla, inc.
украинцы
novo nordisk
daimler truck
we
angelina jolie
westfalia rhynern
rosenheim24
oliver zipse
eisheiligen 2026
finanztrends
wetter lübeck
gracie abrams
dolly parton
connor storrie
wetter
wetter bamberg
wetter kassel
venus
newcastle-krankheit
wetter ulm
wetter erlangen
west bengal election 2026
gamestop
american water works company
tesla roadster
bengal election 2026
arnold schwarzenegger
star wars tag
united states army
republikanische partei
omr 2026
rezession
franz wagner
la galaxy whitecaps
kuba
frankreich
wetter mannheim
spacex
hurricanes flyers
audi in der formel 1
hornissen
lindsey vonn
spirit airlines
bruins sabres
mammoth golden knights
chiemgau24
usa donald trump
rentenbescheid24
goodbye deutschland marie heidtke
vinicius junior
gntm wer ist raus heute
atlassian aktie
vietnam
haben bäckereien am 1 mai geöffnet
1 mai veranstaltungen in der nähe
warum ist der 1 mai ein feiertag
brenntag
tagesspiegel
wild stars
maifeiertag
stefan hartung
mckinsey & company
the taste promi wer ist raus
fc bayern münchen champions league
danny ramirez
claudia major
peter wohlleben
heizungsgesetz
jerome powell
joko & klaas gegen prosieben
swr aktuell baden-württemberg
rettungshubschrauber
lebensmittelwarnung.de
julia ruhs
vw id polo
warburg
elon musk
diablo 4 warlock build
wirtschaft
фридрих мерц
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
hull city
demirovic
elton john
jeff chabot
lindt schokolade
manzambi
angelo stiller
lamine yamal verletzung
peer steinbrück
h&m
lotto 6aus49
pistons magic
chemnitzer fc erzgebirge aue
asiago
23 nisan
sternschnuppen heute lyriden
aryna sabalenka
michael douglas
herman van veen
georgina fleur
tui
trainer bayern münchen
katie holmes
prinz frederic
bayern vs
flekken
бернли манчестер сити
ard
queen camilla
clankriminalität
politik
gladbach-news
sara gündogan
krankenversicherung
jan-lennard struff
bryan lasme
thailand
robin gosens
maremma
tennis madrid
osterburg
برايتون ضد تشيلسي
sebastian hoeneß
ncis
menowin fröhlich
maren gilzer
cineplex
gina schumacher
alexander räuscher

200
data/keywords/kw_ES.txt Normal file
View File

@@ -0,0 +1,200 @@
bangladesh vs pakistan
jared mccain
tiempo zaragoza
lebron james
eltiempo
tiempo bilbao
tiempo hoy
el tiempo hoy
nba hoy
junior - cerro
aemet malaga
star fox nintendo switch
weather
tiempo
telescopio espacial james webb
tolima - nacional
barracas central - olimpia
independiente rivadavia - fluminense
multa
2026
bad bunny
spurs - timberwolves
anthony edwards
blake lively
heidi klum
santiago segura
knicks - 76ers
robinho
ashley graham
pogacar
wetter
dinero en efectivo
itv
gene hackman
carrera f1 miami
heraldo de aragon
alberto durán cornada
tiempo valencia
g20
luis zahera
despido laboral
shakira
renfe
alianza lima - cd moquegua
eleccion bellea del foc alicante
meteocat
noticiastrabajo
meme vito quiles begoña gomez
rockets - lakers
sports
sorteo once
juana acosta
raptors - cavaliers
magic - pistons
raul ruiz torero
dia
precio de la luz
fútbol
pension
formula 1
hacienda
precio de la luz hoy
metro madrid
vivienda en españa
tiempo en zaragoza
euribor hoy
austin reaves
estafa
lakers vs rockets
cienciano - atlético mineiro
anthropic
prórroga alquileres congreso
sorteo bonoloto
aemet valencia
aemet
huelga gasolineras
el tiempo
nepotismo
instituto cervantes
airbus
tiempo en bilbao
el
el tiempo en granada
spencer jones
encuesta
lili pink
trail blazers - spurs
clasificacion segunda
20minutos
internacional de bogotá - boyacá chicó
el tiempo en valencia
fluminense - chapecoense
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
llanes
vfb stuttgart freiburg
roca rey
psv - zwolle
daredevil
a que estas esperando
real oviedo - villarreal
real salt lake - inter miami
pistons - magic
barcelona sc - mushuc runa
kick
raphinha
lluvia estrellas liridas
frenkie de jong
santos - coritiba
del cerro grande
phillip cocu
cospedal
david wilcock
barcelona - celta de vigo
barcelone celta vigo
macarena gómez
luis merlo
bournemouth vs leeds
racing de estrasburgo - niza
burnley vs man city
alaska cantante
raúl gonzález blanco
marta sanchez
roberto bautista
cifras y letras
xbox game pass ultimate
horse powertrain
las hurdes
herbicida cancer colon
lluvia de barro
ripoll
manilva
steve jobs
berrettini
prizmic
laura moure
lens - toulouse
girona vs real betis
yuri berchiche
posiciones de la liga
resultados liga
lfp
umar sadiq
реал мадрид алавес
jan virgili
moreirense - estoril
downton abbey
koldo garcía izaguirre
jorge martín
mike james
carla leite
eclipse solar del 12 de agosto de 2026
crystal palace - west ham
luz valdenebro
porto - tondela
santos - fluminense
juventus
almería - málaga
punjab kings vs lucknow super giants standings
mönchengladbach mainz
victor eloy
paris-sg lyon
psg vs lyon
zamora - osasuna b
estrecho
nurburgring
la 1 directo
oyarzabal
enrique cerezo

View File

@@ -1,10 +1,200 @@
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
eurodreams 7 mai 2026
l équipe
top chef 2026
crédit agricole
bbc news
bangladesh vs pakistan
ajay mitchell
bracelet connecté google fitbit air
bandi netflix
borne
chems-eddine hafiz
christophe licata
un milliard
kj apa
saints de glace 2026
8 mai férié
nintendo star fox
dany leprince
menu mcdeal
cyril hanouna
artemis ii
6 mai
gouverneur de la banque de france
meteo le mans
chaine meteo
gap
jaylin williams
meteo toulon
éliminé koh lanta
5 mai
bath rugby
robinho
gladiator 2
patrick antonelli
meteo 15 jours
meteo france
weather
football psg bayern munich
jours fériés mai 2026
rudy giuliani
jour ferie mai
maries au premier regard episode 11
bali
coupe du monde de vtt
meteo calais
météo france
easyjet
centre presse aveyron
vladimir poutine
wetter
marathon biarritz
hassan du maroc
corse matin
invités léa salamé quelle époque
charlene wittstock
lionel messi
association sportive de saint-étienne
stellantis
groupe adp
romain gavras
livret a
pékin express 2026 candidats
autobus
moyen-orient
cyril féraud
bill ackman
teknival
madonna
le pal
brocante 1er mai
la depeche du midi
smic
2026
steven spielberg
maud bregeon
gendarmerie
chelsea football club
annulations vols prix kérosène
lafc deportivo toluca
meteo caen
playoff nba
shannon elizabeth
sandrine rousseau
brent
bernard cazeneuve
vignoble
forest automobile
brown-forman
meteo quimper
meteo brest
charles iii
montceau news
taylor swift
meteo amiens
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
bfm marseille provence
hunter schafer
unchosen netflix
john travolta
valence-romans brive
reem kherici
will smith
real salt lake inter miami
neymar
les traîtres
jacob elordi
pistons magic
invincible
santos coritiba
ios 18
la liga
royaume uni interdiction tabac
stephane tapie
tondelier
benjamin duhamel
loto 22 avril 2026
interdiction tabac royaume uni
lol qui rit sort
eva longoria
alain bauer
achraf hakimi
ibrahim mbaye
mma
roberto calvet
budget
coupe du monde de football 2006
plus belle la vie en avance
mateus fernandes
tour des alpes 2026
lorenzo finn
maine-et-loire
mathieu flamini
kamel daoud
vandalisme
sydney sweeney
julien odoul
france2
xavier dupont de ligonnès
elisabeth 2
antibes
girona betis
christine bravo
الريال ضد ألافيس
madonna age
margot haddad
ana riera
hinaupoko devèze
bruce toussaint
cheque energie
reid wiseman
loto 20 avril 2026
from serie

View File

@@ -1,10 +1,200 @@
香港天文台天氣預報
MTR 港鐵路線圖
OpenRice 附近美食
LIHKG 討論區
恆生指數今日行情
SCMP breaking news
HKEX 港交所股價
國泰航空航班狀態
香港迪士尼樂園門票
百佳超級市場網購
活期存款
一田
湖人
萬寧88折
thunder vs lakers
nba線上看
雷霆 對 湖人
李家鼎
ana
wordle
台风
star
spurs vs timberwolves
林熹瞳
陳柏宇
馬刺 對 灰狼
knicks vs 76ers
寶達邨
運輸署
etv
麥美恩
金建希
航空
袁偉豪
活塞 對 騎士
八達通
兵工廠 對 馬德里競技
龍蟠苑
飛驒山
澳元
草 蜢
kktix
安東尼·愛德華茲
艾佛頓 對 曼城
何君堯
失業
世界盃2026
周殷廷
鹹田灣
投資
漢坦病毒
急性內耳迷路炎
地獄占星師
灣仔
cavaliers vs raptors
charlie puth
兵工廠 對 富勒姆
趙雅芝
coleman wong
jayson tatum
celtics vs 76ers
osasuna vs barcelona
塞爾提克 對 76人
香港人
伊朗
咖啡
c羅
raptors vs cavaliers
lakers
nba playoffs
nba live
高淑樺
暴龍 對 騎士
黃澤林
lck
黎智英
草蜢演唱會
timberwolves vs nuggets
走私
76ers vs celtics
周嘉洛
莊子璇
深圳地鐵
奧斯汀·里夫斯
國際珍奶日香港
天仁茗茶
伊朗海軍
居屋
湖人 對 火箭
lakers vs rockets
異環兌換碼
洪金宝
梁嘉莹
spurs vs trail blazers
羅艷卿
weather forecast
observatory hk
尼克 對 老鷹
sfc
馬刺 對 拓荒者
粉嶺繞道
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
observatory
csk vs mi
長沙灣
魔音女團
球迷世界
天星銀行
game
林嘉華
套餐
賈曉晨
hk weather
綠色債券
barcelona vs celta vigo
weather
7-eleven
天气
班來 對 曼城
埃爾切 對 馬德里競技
rosenior
艾納斯
liam rosenior
巴黎聖日耳曼 對 南特
chatgpt image 2
啟德醫院
李泳漢老婆
破產
繼承人
英皇群星演唱會
布浩榮
新聞
貨幣貶值
居 屋 2025
3988
李泳豪老婆
皇家馬德里 對 艾拉維斯
李泳漢
鄭欣宜
srh vs dc
鍾嘉欣
張柏芝
江美儀
全港戲院日 2026
江旻憓
陶傑
水晶宮 對 西漢姆聯
吉達艾阿里
山口智子
百佳超級市場
利息
戴祖儀
陳若思
麥當勞
首岸
中国商飞c919
bundesliga
hailey bieber
德甲

1
data/keywords/kw_ID.txt Normal file
View File

@@ -0,0 +1 @@
jakarta news indonesia news indonesia weather jakarta weather indonesia economy rupiah exchange rate jakarta traffic transjakarta mrt jakarta soekarno hatta airport flights indonesia tourism bali travel yogyakarta travel bandung travel surabaya news indonesia visa news kompas detik tempo antara news cnn indonesia bank indonesia ojk indonesia kominfo telkomsel xl indosat tokopedia indonesia shopee indonesia lazada indonesia gojek indonesia grab indonesia bukalapak indonesia traveloka indonesia indonesia election berita hari ini berita terkini cuaca jakarta nilai tukar rupiah lowongan kerja jakarta

1
data/keywords/kw_IN.txt Normal file
View File

@@ -0,0 +1 @@
delhi news india news india weather delhi weather india economy rupee exchange rate delhi traffic delhi metro indira gandhi airport flights india tourism mumbai travel bangalore news hyderabad news india visa news times of india hindustan times the hindu indian express ndtv india today india election indian government rbi india stock market india sensex nifty india airtel jio vodafone idea flipkart india amazon india irctc train booking ola india uber india zomato swiggy india news today breaking news india weather today delhi jobs india hindi news आज की खबर दिल्ली मौसम रुपया विनिमय दर

View File

@@ -1,6 +1,200 @@
東京 天気 明日
新宿 おすすめ 居酒屋
最新のニュース 速報
ゴールド 相場 チャート
近くの静かなカフェ
円安 影響 生活
投手
フェルナンド・アロンソ
7203
dirty frag
フジロックフェスティバル
首都高速道路
nttドコモ
高橋ヒロム
横浜 道路陥没
ウルトラザウルス
村上 宗隆
サブスク
島根スサノオマジック
熱中症
柄本時生
藤田明美
国会議事堂
八代市
堀井雄二
イラン
渋野日向子
コンサドーレ
コンサドーレ札幌
栃木sc
秋山翔吾
大分トリニータ
藤枝myfc
大阪桐蔭高等学校
鹿児島ユナイテッド
j2
変死体
ミニストップ
ゴゴスマ
韓国 ホルムズ 海峡
バンテリンドーム
松本光平
クーリエ・ジャポン
タイアニ ライン デルス
阿智村
オリックス・バファローズ
無印
kpmg
トランテックス
31
jin
スタバ
ゴンチャ
travis japan
ウォニョン
dena 対 広島
菅沼菜々
カターレ富山
北九州 対 大分
山形 対 栃木sc
平良海馬
海上自衛隊
ベナビデス
weリーグ
田中健
ミステリーウェイ
石川遼
西野七瀬
堀田真由
横浜fc 対 相模原
イラストやメーカー
薬局
g大阪 対 神戸
オコエ瑠偉
川崎
湘南 対 栃木c
バルミューダ
hikakin
東京
近畿大学
小樽
田園都市線
常磐線
東京スカイツリー
みずほ銀行 ゴールデンウィーク
力士
秋元杏月
四国電力
佐久間宣行
和田 まあ や
浅田 美代子
バトオペ2
千葉県
慶應義塾大学
パンチ
ぶ いす ぽ 活動 休止
ベガルタ仙台
サンフレッチェ広島
相模原 対 栃木c
ロッチ中岡
奈良 対 高知
福島圭音
神宮球場
オスナ ヤクルト
浦和 対 川崎f
村上宗隆
ゴー イントゥ スカイ
地球温暖化
文部科学省
カベポスター
奈良県
バナナマン日村
山本由伸
警視正
中国電力
jr九州
村田製作所
四谷大塚
外崎 修 汰
備蓄
日産 キックス 新型
ドナルド・トランプ
ニューヨーク
小谷昌太郎 イケパラ
東京エレクトロン
ミラン 対 ユヴェントス
宇連ダム 貯水率
櫻坂46
与沢翼
岩手県 大槌町 山林火災
谷原章介
端午
週間天気予報
トリノ 対 インテル
佐野海舟
アーセナル
高岡蒼佑
マンチェスター・シティfc
ゲンク 対 スタンダール
kick
chat gpt
hulu
nac 対 アヤックス
エプスタイン
arsenal đấu với newcastle
ベティス 対 rマドリード
dior
伊藤美来
フィギュア
玉置浩二
生田絵梨花
日本高野連会長辞任
anaheim
sbiグローバルアセットマネジメント
ストレンジャーシングス
石油
ios 26.4 2
ポケモンカード
シュトゥットガルト 対 フライブルク
ドラクエ スマグロ 攻略
ipl
アコム
鈴木愛理
sox指数
村上世彰
桐山 照史
マラッカ海峡
ソニック
sbi新生銀行 株価
マイクラ
川口 春奈
サンダー 対 サンズ
インフルエンサー
サンケイビル
岡村隆史
上田竜也
メタプラネット
バルセロナ 対 セルタ
三橋くん
エルニーニョ
バーンリー 対 マンc
ボーンマス 対 リーズ u
elche vs atlético madrid
レバークーゼン 対 バイエルン
ソシエダ 対 ヘタフェ
サイメモリ
b リーグ 順位
日ハム
ナダル
失点
岩瀬洋志
ファイターズ 試合
江村美咲
宝島社
井ノ原 快彦
ファイターズ
西郷隆盛
ボーダー
チェルシー
関税
ブライトン
佳子内親王
rマドリード 対 アラベス
鳥貴族
ブライトン 対 チェルシー
アシエンダ乗馬学校

1
data/keywords/kw_KH.txt Normal file
View File

@@ -0,0 +1 @@
phnom penh news cambodia news cambodia weather phnom penh weather cambodia economy khmer riel exchange rate cambodia tourism siem reap travel angkor wat travel phnom penh traffic cambodia airport flights cambodia visa news khmer times phnom penh post fresh news cambodia grab cambodia foodpanda cambodia aba bank cambodia acleda bank cambodia wing money cambodia smart metfone cellcard cambodia lazada cambodia shopee cambodia khmer news today ព័ត៌មានថ្ងៃនេះ ភ្នំពេញ អាកាសធាតុ កម្ពុជា តម្លៃប្រាក់រៀល

200
data/keywords/kw_KR.txt Normal file
View File

@@ -0,0 +1,200 @@
빌라
정원오
김지원
최준영
이영호
에이피알
펜타포트
유조선
곡사포
노동조합
이자
디나미스원
개헌안
lafc
최태원
쯔양
장마
정수정
이창호
현대차 채용
박지원
울산항
에이 비엘 바이오
하하
삼성물산
풍력 발전
지수
수익률
라이언 와이스
사우디아라비아
nc 대 ssg
경북대학교
한화 대 kia
롯데 대 kt
키움 대 삼성
두산 대 lg
대학
여객선
고우림
안젤리나 졸리
안성재
토요타 rav4
황희찬
g7
항공 승무원
스트레티지
대한전선
나승엽
인플루언서
이재욱
삼성바이오로직스
스마일게이트
강민호
mls
장도연
이재명 정부
예방 접종
통장
소송
울산 대 포항
fc 서울 대 김천상무
차명석
붉은사막
소라와 진경
멕시코 축구 국가 대표팀
한화시스템
윤영경
월세
오타니 쇼헤이
이서진
굴리엘모 비카리오
재건축
나솔
재판
라이엇
진소리
아빠하고 나하고
mlb
박진만
중고
롯데 자이언츠
강동원
혁신도시
제로페이
체이스 인피니티
주스 아저씨
권민규
변요한
이유 비
변호사 시험
금보유고
이상화
커피
김효범
김범석
국립중앙도서관
어도어
황재균
주호민
채원빈
분식
위례신도시
박동혁
박용호
한화첨단소재
한상진
차승원
한국경제
효성중공업
최홍라
uae vs oman
부정승차
박하나
일본인
공천
한고은
우체국
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 주가
왕다루
시그널
모하메드 살라
공화당
윤하정
청남대
더보이즈
노민우
서비스나우
김민지
박해미
국가유산청
삼성전자 주가
두산에너빌리티 주가
김성수
한국사
삼성전기 주가
국립중앙박물관
대우건설 주가
지방 선거
서정대학교
캔바
한국항공우주산업
디트로이트 대 올랜도
리그 1
elche vs atlético madrid
알나스르
al-nassr vs al ahli
10
로세니어
psg 대 낭트
테슬라 실적발표
루카스 모우라
9950x3d2
삼천당 제약 간담회
김재윤
k리그1 순위
유영찬
이호연
sxmb
문재인
생산직
강훈식
cnn
리그오브레전드
박환희
박지현
카토
와우넷
지구의 날
컴프야

1
data/keywords/kw_LA.txt Normal file
View File

@@ -0,0 +1 @@
vientiane news laos news lao news laos weather vientiane weather laos economy lao kip exchange rate vientiane traffic wattay airport flights laos tourism luang prabang travel vang vieng travel laos visa news vientiane times kpl lao news pasaxon news bank of laos lao telecom unitel laos tplus laos foodpanda laos lao airlines laos hotels laos government laos electricity laos news today ຂ່າວມື້ນີ້ ວຽງຈັນ ອາກາດ ລາວ ເງິນກີບ

1
data/keywords/kw_MM.txt Normal file
View File

@@ -0,0 +1 @@
yangon news myanmar news myanmar weather yangon weather myanmar economy kyat exchange rate yangon traffic yangon airport flights myanmar visa news myanmar times irrawaddy news myanmar now eleven myanmar grab myanmar foodpanda myanmar shop com mm myanmar telecom mpt ooredoo telenor myanmar tourism bagan travel mandalay travel myanmar hotels myanmar politics myanmar stock exchange myanmar bank central bank myanmar news today သတင်း ယနေ့ ရန်ကုန် ရာသီဥတု မြန်မာ ကျပ်ငွေ

1
data/keywords/kw_MN.txt Normal file
View File

@@ -0,0 +1 @@
ulaanbaatar news mongolia news mongolia weather ulaanbaatar weather mongolia economy tugrik exchange rate ulaanbaatar traffic mongolia tourism gobi desert travel mongolia visa news montsame news ikon mn gogo mn mongolia government mongolbank mongolia telecom unitel skytel mobinet mongolia news today breaking news mongolia weather today ulaanbaatar jobs mongolia mining news mongolia coal export news өнөөдрийн мэдээ улаанбаатар цаг агаар төгрөг ханш

178
data/keywords/kw_MY.txt Normal file
View File

@@ -0,0 +1,178 @@
saman
lebron james
ana airlines
水晶宫 - 顿涅茨克矿工
strasbourg vs rayo vallecano
marissa dania hakim
大马卡
bangladesh vs pakistan
palace vs shakhtar donetsk
malaysia foreign driving licence conversion
keputusan
assist
马刺 - 森林狼
airbus a220
尼克斯 - 76人
spurs vs timberwolves
perkeso
tvk vijay election results
knicks vs 76ers
nsc
mykad
honda city
sspn
cimb group holdings berhad
谢伊·吉尔杰斯-亚历山大
recoleta fc vs santos fc standings
teams
ucl final 2026
雷霆 - 湖人
final ucl
nubhan
economy
johor darul ta'zim
world championship snooker final
安东尼·爱德华兹
hantavirus infections cruise ship
undang luak sungai ujong
peluru berpandu
nepal vs oman
central bank of malaysia
trisha
rudy giuliani
taiping
go live
perkahwinan
malaysia marathon
results.eci.gov.in 2026
dean wade
mom
jeram toi
haji
earthquake
leverkusen vs rb leipzig
凯尔特人 - 76人
tiong king sing
gaji mei 2026
palmeiras vs santos
奥萨苏纳 - 巴塞罗那
inter miami vs orlando city
uae opec exit analysis
grab cross border taxi
menteri besar negeri sembilan
malaysia badminton thomas cup
nba live
猛龙 - 骑士
flower moon
ek din movie review
火箭 - 湖人
macbook
china
global sumud flotilla 2.0
nepal vs uae
森林狼 - 掘金
robotaxi
76人 - 凯尔特人
selamat hari buruh 2026
f1 schedule
lakers vs houston rockets
amira othman
lakers vs houston rockets match player stats
federal reserve interest rates
adidas
mohamad hasan
austin reaves
lafc vs toluca
lakers
湖人 - 火箭
oma vs nep
ppv
mothers day
nte redeem code
skyechip
马刺 - 开拓者
one championship live
labour day
indonesia thomas cup
anggota tentera
阿sa
掘金 - 森林狼
one championship
apple iphone foldable
太阳 - 雷霆
p1p plate
nuggets vs timberwolves
electronic invoicing
malaysian meteorological department
datuk seri aminuddin harun
court
bella astillah
today wordle hints
ezi ray 01
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
danish malewar
mukesh choudhary
lyrid meteor showers
jamie overton
piala uber
madrid open
dewald brevis
counter strike
pistons vs magic
real salt lake vs inter miami
chart gpt
asiago
liza hanim
good morning
pandikar amin mulia
勒沃库森 - 拜仁
santos vs coritiba
Malaysia
Kuala Lumpur
Bursa Malaysia
Ringgit
Maybank
CIMB
Shopee MY
Lazada Malaysia
KWSP i-Akaun
LHDN MyTax
Anwar Ibrahim
Johor Bahru
Penang
Nasi Lemak

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

@@ -0,0 +1,110 @@
lakers vs thunder
b
independiente medellin vs cr flamengo rj
pistons vs cavaliers
joni lamb
pope leo xiv bank call
fcmb
kodak black
cole palmer
election law
one ui 8.5 release date
spurs vs timberwolves
knicks vs 76ers
atenas cordoba vs argentino junin
update
mikel merino return date arsenal
mbappe
junior kroupi
top scorer in champions league
puskas arena
trending video
recoleta fc vs santos fc standings
ig
2026 uae eid al adha
thunder vs lakers
adams oshiomhole
jamb news
2027 social security cola
10th nigeria national assembly
moniepoint
ypiranga fc rs vs ituano fc sp
birthday wishes
apple iphone 18 pro max
hantavirus infections cruise ship
ben ayade
desmond elliot
joint admissions and matriculation board
nrc
raptors vs cavaliers
f
cavaliers vs raptors
hantavirus
ol vs rennes
35th fighter wing
vinícius júnior
espanyol vs real madrid standings
liverpool news
nigeria news
40k armageddon box
palmeiras vs santos
celtics vs 76ers
inter miami vs orlando city
arsenal vs fulham premier league
alabama redistricting
barca news
barcelona news
rockets vs lakers
magic vs pistons
twitch tv
leke abejide
mallorca
living wage
noah okafor
remi tinubu
imperfect women
bbc.hausa
ekiti
china
timberwolves vs nuggets
76ers vs celtics
knicks vs hawks
hawks vs knicks
spotify
labour day
asake new album
lakers
lakers vs rockets
pistons vs magic
orlando city vs new england
ibukun awosika
xiaomi 17t anatel listing
sporting fc
alvarez
asake
arsenal vs psg
william ruto
spurs vs trail blazers
ahsoka tano replacement star wars
san lorenzo vs santos
the devil wears prada 2
king charles
house of the dragon season 3
gta 5
nuggets vs timberwolves
suns vs thunder
bybit
jack grealish
sanwo olu
saheed balogun
man u fc
live score today
tinubu
lagos weather
super eagles
naira exchange rate
davido
wizkid
burna boy
afcon
nollywood

200
data/keywords/kw_NL.txt Normal file
View File

@@ -0,0 +1,200 @@
hms prince of wales
groningen
iran nieuws
duitser krijgt schadevergoeding
netflix
verenigde arabische emiraten
nba
pensioenleeftijd
toto wolff
bonaire ik vertrek nicole manuel
een huis vol
jeffrey epstein
xbox
weer zwolle
epstein
weer rotterdam
ijsselstein
benzine
kyle loftis
stagflatie
adyen
weer groningen
weer utrecht
weerbericht
andes virus
stranger things
ziggo
priscilla wildeman
tanner horner
peter bosz
blue ivy
ryan reynolds
accijns
bevrijdingsdag
walvis
iptv
mark carney
prime video
roma - fiorentina
georginio wijnaldum
intercepted
ulster
rudy giuliani
weather
benzine en diesel
witsnuitdolfijn
farioli
ongeval
grand prix formule 1 van miami 2026
formule 1
uitslagen eredivisie
ontsnapte zebra
miami f1
shakira
rave
daghoroscoop
weeronline
wetter
isack hadjar
vakantiegeld aow netto
shivon zilis
china
buienradar
politie zandvoort
nl alert
oekraïne
jade kops erehaag
onweer
corinthians - peñarol
john de bever
lance stroll
mafs
nexperia
hypersonische raket
eindhoven
f1 kalender
lakers vs rockets
bultrug timmy
b&b vol liefde
vakantiegeld
martijn van der vorm rotterdam
ismaël baouf
ea sports fc 26
bauke mollema
xrp nieuws
kaaba
mathieu van der poel
een miljard
p2000
james comey
helena bonham carter
george russell
openbaar vervoer
wayne mardle
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
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
zonnepaneel
xrp
cyprus
verdachte
112 eerbeek
golden earring
sergiño dest
david wilcock
asiago
shownieuws
nijmegen
keira knightley
112 meldingen amsterdam
dierenmishandeling
112 amsterdam
freek rikkerink
poetin
atalanta - lazio
mr nobody against putin
club brugge - mechelen
frank hosmar
barcelona - celta
kees flodder
burnley - manchester city
lodewijk asscher
vallende sterren
guus meeuwis
hoofddorp
kaja kallas
politiek
stroomstoring amersfoort
solvinity digid
wout weghorst
jamie kames
bitvavo
box 3
ronde van de alpen
matthias uhl
taken film
robot
girona - real betis
real madryt deportivo alaves
tbilisi
southampton - bristol city
vittoria guazzini
oppo find x9 ultra
real madrid - alavés
الريال ضد ألافيس
lecce - fiorentina
pogoda jutro
vierhouten
weather tomorrow
over mijn lijk 2026 overleden
crystal palace - west ham
f-16 fighting falcon

1
data/keywords/kw_NP.txt Normal file
View File

@@ -0,0 +1 @@
kathmandu news nepal news nepal weather kathmandu weather nepal economy nepali rupee exchange rate kathmandu traffic tribhuvan airport flights nepal tourism pokhara travel everest base camp travel nepal visa news kathmandu post himalayan times onlinekhabar ekantipur ratopati nepal government nepal rastra bank nepal telecom ncell nepal daraz nepal esewa khalti nepal news today breaking news nepal weather today kathmandu jobs नेपाल समाचार आजको समाचार काठमाडौं मौसम नेपाली रुपैयाँ विनिमय दर

1
data/keywords/kw_PH.txt Normal file
View File

@@ -0,0 +1 @@
manila news philippines weather philippines economy cebu news davao news philippines traffic manila airport naia flights philippine peso rate bangko sentral ng pilipinas gma news abs cbn news philstar inquirer rappler philippines grab philippines lazada philippines shopee philippines balita ngayon panahon manila

1
data/keywords/kw_SA.txt Normal file
View File

@@ -0,0 +1 @@
riyadh news saudi arabia news jeddah news saudi weather riyadh weather saudi economy saudi riyal exchange rate riyadh traffic king khalid airport flights jeddah airport flights saudi tourism riyadh season alula travel mecca news medina news saudi visa news arab news saudi gazette saudi press agency sabq al riyadh saudi government sama saudi central bank stc saudi mobily zain saudi noon saudi amazon sa jarir bookstore hungerstation saudi riyadh jobs saudi real estate saudi news today breaking news saudi weather today أخبار السعودية الرياض الطقس سعر الريال السعودي

View File

@@ -1,10 +1,200 @@
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
lebron james
bangladesh vs pakistan
palace vs shakhtar donetsk
ec mop
thunder vs lakers
pistons vs cavaliers
canvas
david attenborough
iran war
uefa
job
megatsunami
hdb
mark zuckerberg
naval strike missile
spurs vs timberwolves
knicks vs 76ers
police
manchester united f.c.
soccernet
housing and development board
dress code
micron technology
阿森纳 - 马德里竞技
马来西亚
hydrogen
shell
kartik sharma
dario amodei
keppel infrastructure trust
toto jackpot singapore
anthony edwards
dbs bank
补贴
ticketmaster
新加坡博彩公司
kerala election results
toto
ndtv live
oneindia tamil
us-iran news
results.eci.gov.in 2026
tamilnadu election result date 2026
tamil nadu election results
dinamalar
tamil nadu election results date 2026
san diego fc vs lafc
citigroup
spirit airlines flights
thomson-east coast line
inter miami vs orlando city
mothers day
jet bridge
mls
celtics vs 76ers
james seah
8视界新闻
jpmorgan chase
singapore airlines ultra-long routes
drunk driving
kwek leng beng
raptors vs cavaliers
rockets vs lakers
magic vs pistons
warren buffett
lawrence wong may day speech
paynow
cold war 1994
expo event
timberwolves vs nuggets
76ers vs celtics
gardens by the bay
weather forecast
universal studios singapore
nba scores
lorna hajdini
cancer
lakers
dbs earnings
lafc vs toluca
cyclist
lakers vs rockets
jerome powell
white house correspondents' dinner
oman vs nepal
primary 1
mapletree industrial trust
spurs vs trail blazers
knicks vs hawks
snake
marriage
san lorenzo vs santos
bankruptcy
诈骗
us-iran
flight
jeanette aw
jisoo
nuggets vs timberwolves
suns vs thunder
drug
jimmy kimmel
erika kirk
elon musk
hokkaido earthquake today
labour day
angela palmares
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
allah ghazanfar
peregrine falcon
airasia flight
arrest
hao mart singapore
real salt lake vs inter miami
pistons vs magic
krisflyer
michael jackson biopic
新加坡
atalanta vs lazio
伯恩利 - 曼城
porto vs sporting
cdl directors resign millennium copthorne
tsla
leverkusen vs bayern
burnley vs man city
elche vs atlético madrid
psg vs nantes
al-nassr vs al ahli
changi
rr vs lsg
primary school
alexandra eala
tan su shan
sundaresh menon
moulin rouge musical singapore
south korea
step
gamba osaka vs avispa fukuoka
honor 600 pro
china shipyards oil tanker orders
coe
real madrid vs alavés
brighton vs chelsea
nitish rana
earth day
michael movie
kevin warsh
srh vs dc
chinese aircraft carrier liaoning
andie chen
jesseca liu wins best actress
crystal palace vs west ham
grok
gemini
claude ai
gpt
ai
is chatgpt down
strait of hormuz news
mi vs gt
psg vs lyon
sporting vs benfica
bayern munich
pl
bangkok weather
starhub

1
data/keywords/kw_TH.txt Normal file
View File

@@ -0,0 +1 @@
bangkok news thailand news thailand weather bangkok weather thailand economy thai baht exchange rate bangkok traffic bts skytrain mrt bangkok suvarnabhumi airport flights thailand tourism bangkok hotels phuket travel chiang mai travel thai food near me grab thailand lazada thailand shopee thailand true dtac ais thailand bangkok post thairath khaosod thailand election thai government bank of thailand stock exchange thailand ข่าววันนี้ ข่าวด่วน กรุงเทพ อากาศวันนี้ ค่าเงินบาท

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

@@ -0,0 +1,20 @@
ibb
honor 600 pro 512 gb
ibrahim tatlıses baboş
kurban bayramı'na kaç gün kaldı
anneler günü ne zaman
iran son dakika
canlı altın
baraj
huawei watch fit 5 pro
istanbul hava durumu
okullar ne zaman tatil
izmir deprem
wilfried zaha
izmir
tüpraş
akşam
bakanlık
ankara hava
hava durumu konya
iphone

200
data/keywords/kw_TW.txt Normal file
View File

@@ -0,0 +1,200 @@
新應材
google fitbit air
股東
謝金 河
群聯
nba
星巴克買一送一
exo 演唱會
徐懷鈺
光澤診所
天弓三型防空飛彈
國民 年金
kylie jenner
群創
胡元輝
徐熙娣
壽司郎咖波
美國國債
聯合再生
矽格
宋成文
teams
軍 公教
廣達
高國豪老婆
周子 瑜
光寶科
asml
新莊淹水
金凱德
台玻
九合一選舉
頎邦
五月天
諾和諾德
星宇航空
瑞軒
0050 成分 股
亞馬遜 公司
行政專機
漢他病毒怎麼傳染
封鎖
博通
2388
陳光復
華倫·巴菲特
許常德
英特爾
00923
friday
中華民國國防部
林維恩
劉宇寧
2 奈 米 製程
淡江大橋何時通車
天母
陳盈潔
林襄
李芸
夾子園火災
黃路梓茵
五十嵐淳子
日春木瓜牛奶
總統
古林睿煬
槍決
dazn
陳芋汐
福特汽車
洋基
黃 國昌
高速鐵路
lck
og anunoby
白沙 屯 媽祖
playstation
psy
70歲換駕照
台灣
email
林逸欣
張宇
任天堂
記憶體
ive
k spark 高雄
斑斑
粿 粿 判決書
蔡沁瑜
十銓科技
邱軍
股東會紀念品
佳必琪
勞動 節
鍾東錦
棒球
spurs vs trail blazers
8028
鄭嘉睿
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
謝京穎
德州儀器
台新綜合證券
希臘
費城半導體
mrvl
狄鶯
三星罷工
00981a
馬斯克
辛耘
宏碁股價
0056
2330
雷霆 對 太陽
0050股價
006208
景碩
女警陳芊雯
廢死聯盟
西甲
台灣積體電路製造
高頻寬 記憶 體
戴奧辛
3665
宋晟睿
黃 甘霖
劉家翔
王耿豪
王勝偉
009816
thời tiết ngày mai
明天的天氣
總部
美光科技
cpbl
中華職棒
中職
黃甘霖
6147
earth day
陳哲遠
台鐵
斯普拉遁 塗擊隊
麥可傑克森
神將彩券行
米可白
洪敬堯
華邦電子
柔美的細胞小將 3

View File

@@ -1,10 +1,200 @@
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
pga tour
reform policies 2026
iplayer
bb
wandsworth
bbc new
sun
wordle hint
guardian uk
daily echo
yvonne gonzalez rogers musk case
dp world tour
nikkei 225
do i need my polling card to vote
north korea
mothers day 2026
the sun uk
bbc radio 4
airport
jamie vardy
connections today
henry cavill
scottish sun
the boys season 5 finale
bolton news
recoleta fc vs santos fc standings
latest news
pizza
postcode lottery
daredevil born again
ryan reynolds
steam controllers
man utd news
connections nyt
wren kitchens
emmerdale spoilers
time
ukraine russia war
kerala election result
starbucks
star wars day
who won the snooker last night
daily record
sports
eswatini
mcdonald's
election commission of india
funeral director
restaurant
southampton marathon 2026
jet2.com
lewis hamilton ferrari 2026 season
ipswich town football
on
nationwide building society
savings
nursery school
nba scores
katie price
lebron james
anne boleyn
beyond paradise kris marshall
nba schedule
superyacht sinking mike lynch
rockets vs lakers
ricky saints
treasury
inoue vs nakatani
mark allen snooker delay
accuweather
severn trent water
yorkshire water
met office weather
rangers f.c.
anglian water
edinburgh weather
united utilities
council tax
christian horner
lafc vs toluca
lakers vs houston rockets match player stats
snooker scores
snooker
housing market
bankruptcy
gina carano
weather birmingham
bbc nees
ella langley
emma grede
ted lasso season 4 teaser trailer
antidepressants recall
financial crisis
itv news
engagement rings
spurs vs trail blazers
alexey mordashov
good morning
mortgage rates
horoscope
nhl scores
nuggets vs timberwolves
liverpool weather
todays weather
playstation plus
manchester weather
everton f.c.
dvla
snooker results
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
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
stephen bunting
great british menu 2026
ravi eastenders
salford city fc
national grid
mass effect
salford city vs bromley
real salt lake vs inter miami
provinces of the pantheon
mls
russell brand
john phelan
hung cao
pistons vs magic
jerry bruckheimer
st. george's day
asiago
framework laptop 13 pro
boro
interactive investor
mint
believe me itv
amanda bynes
strasbourg vs nice
chase bank
jak jones
chase
rodri
christopher trybus
lsg vs rr
pension
hebden bridge
sandra bullock practical magic
rolls-royce share price drop
invincible season 5
josé mourinho
chris wakelin
jimmy bullard adam thomas
aer lingus flight cancellations
sam west
oxford united
liam delap
wba
реал мадрид алавес
coppa italia
girona vs real betis
marcus rashford
الريال ضد ألافيس
supreme leader of iran
oscar isaac
xrp ledger
pablo
is tane leaving home and away
julie andrews
danny boyle
nina eastenders
john stones
amazon vega os fire tv
porto vs tondela
santos vs fluminense

View File

@@ -1,9 +1,200 @@
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
jennifer meyer
alexander volkov
pablo escobar
zelensky
blue shield
jordan walker
del monte
riley o'brien
kim petras
ufo
michael gandolfini
bruno mars
ronda rousey
love island
mississippi tornado warning
sean manaea
priyanka chopra
chris stapleton
trump's hands
ca governor race polls
caro claire burke
oregon state baseball
iphone 16 pro
yosemite national park
meg stalter
popeyes chicken wraps permanent menu
walt frazier
samsung stock
heather watson
los angeles angels
chris brown
nathan lane
jaafar jackson met gala 2026
rachel zegler
amanda bynes
house of the dragon season 3
sf weather
ariana grande met gala
jackson lacombe
aeromexico
nbc
suvendu adhikari
trisha
seattle weather
putin
melissa joan hart
eenadu
gavin mckenna
mortgage loan rates today
floyd mayweather
wsl
whitecaps - la galaxy
air jordan 11 space jam
julio cesar chavez
budapest
usyk
dmitry bivol
jai opetaia
ebay acquisition
henry winkler
will anderson jr
themba gorimbo
yoel romero
alex hoppe
junior tafa
colby thicknesse
jacob malkoun
nick kurtz
kailer yamamoto
alex jones
cps energy
ssi
e
hail
michael jackson movie biopic
houston weather
katarzyna kawa
usd to yen
michael jackson net worth
utah hockey
mitch marner
hawaii news now
spacex rocket launch
jack eichel
apple iphone 18 pro max
lena dunham
vegas knights
skip bayless
acura
qatar airways
charles barkley
turkish airlines
ayo edebiri
who do the spurs play next
one championship
samsung one ui 8.5 update
fabio jackson
san antonio
shea theodore
dodgers game today
munetaka murakami
dodgers score
joe ingles
owensboro weather
nhl overtime rules
kyle tucker
pete fairbanks
bank
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
william byron
eve plumb
mall of louisiana
real oviedo vs villarreal
real oviedo - villarreal
call of duty: black ops 7
tarik skubal
cubs game today
mike repole
okc thunder
atlanta braves
mlb scores today
braves standings
kevin mckidd
dan vladar
mls standings
dodgers - giants
jon ossoff
ozzy survivor
braves score
washington nationals
alex bregman
peter lambert
darrell sheets
ludwig kaiser
edina shooting
atalanta - lazio
barcelona vs celta vigo
rivian r2
pick 4
aoc
cleveland browns
nintendo switch gamecube games
lsg vs rr
spirit
atlanta fire
deshaun watson
good morning america
pittsburgh
strands answers
scientist
mark cuban pharmacy
inter milan
lens vs toulouse
david james
andy weir
noah kahan tiny desk concert
jennifer garner 54th birthday photos
troy baker
real madrid - alavés

200
data/keywords/kw_VN.txt Normal file
View File

@@ -0,0 +1,200 @@
công an thành phố cần thơ
strasbourg đấu với rayo
crystal palace đấu với shakhtar
quỳnh kool
bích trâm
vinhomes
giá vàng ngày 8 5 2026
hanta virus
dgc
công nhân
ngân hàng thương mại cổ phần đầu tư và phát triển việt nam
park bo gum
tốc độ
âm lịch
lương trần mỹ cẩm tập 1
chú rể
lãi suất ngân hàng
trường thpt chuyên vĩnh phúc
đỗ thị hà
tín dụng
dông
tập đoàn vingroup
cảnh sát
giải vđqg nhật bản
tuyên án
gyokeres
nguyễn thị kim tiến
học
bảo hiểm xã hội
thi sinh thi tốt nghiệp thpt
ngân hàng
đội tuyển bóng đá u 17 quốc gia yemen
giải bóng đá vô địch thế giới
kylie jenner
thời tiết cực đoan
vietnam airlines
xét tuyển đại học
matheus cunha
heidi klum
khóa sim
huấn luyện viên
chu châu
vụ án tây ninh
xác thực
lê khanh
doanh thu phim trùm sò
máy bay
lũ quét
ngộ độc
nvl
iphone 18 pro max
샌디에이고 fc 대 엘에이 fc
clb san diego đấu với lafc
tổng công ty khoáng sản tkv
xe
hà giang
bia
trọng tài
thu nhập cá nhân
phương oanh
thiếu tướng quân đội nhân dân việt nam
lịch nghỉ 2 9
dân việt
rockets vs lakers
tesla
giá vàng the giới
mỹ iran
ninh dương lan ngọc
thủy tiên
xabi alonso
mason mount
dự án
huỳnh hiểu minh
nhiệt độ tphcm
venezuela
học bổng
giáo sư
denver nuggets
dog
efootball
free fire
quang minh và hồng đào
giá gas
lakers vs rockets
đua xe đạp
đô la mỹ
hoài linh
chess
đường cao tốc
giáp
nguyễn đình bắc
avispa đấu với sanfrecce
thừa kế
hoa hậu việt nam
nguyễn xuân bắc
áp thấp nhiệt đới
tàu
nte code
bảo tín minh châu
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
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
rayo đấu với espanyol
levante đấu với sevilla
bong ma hanh phuc
aryna sabalenka
mason nguyễn
marcus rashford
hà nội
salt lake đấu với inter miami
hung cao
neymar
cầu phú mỹ
nhac
wordle
날씨
giá cà phê hôm nay
premier league standings
mls
phạm nhật vượng
cristiano roland
burnley vs man city
bayern munich
atalanta đấu với lazio
barcelona đấu với celta
psg nantes
leverkusen đấu với bayern
elche atlético madrid
bryan mbeumo
al nasr
trực tiếp bóng đá hôm nay
vtv3
vtv3 trực tiếp
tv
vtv
vtv6
360
lê khánh
ô tô
lê phương
trực tiếp bóng đá u17 hôm nay
inter milan
chelsea
girona đấu với betis
real madrid đấu với alavés
brighton vs chelsea
brighton đấu với chelsea
ath. bilbao đấu với osasuna
pep guardiola
zelvia đấu với shabab al-ahli
cầu thủ
lecce vs fiorentina

View File

@@ -1,105 +1,773 @@
{
"version": "3.1.0",
"updated_at": "2026-04-11",
"countries": [
"version": "3.5.2",
"updated_at": "2026-04-19",
"continents": [
{
"id": "US",
"name": "United States (美国)",
"keyword_file": "kw_US.txt",
"states": [
"id": "ASIA",
"name": "亚太战区 (Asia-Pacific)",
"countries": [
{
"id": "JP",
"name": "Japan (日本)",
"keyword_file": "kw_JP.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Tokyo",
"name": "Tokyo (东京)"
}
]
}
]
},
{
"id": "SG",
"name": "Singapore (新加坡)",
"keyword_file": "kw_SG.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Singapore",
"name": "Singapore (新加坡)"
}
]
}
]
},
{
"id": "PH",
"name": "Philippines (菲律宾)",
"keyword_file": "kw_PH.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Manila",
"name": "Manila (马尼拉)"
}
]
}
]
},
{
"id": "TH",
"name": "Thailand (泰国)",
"keyword_file": "kw_TH.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Bangkok",
"name": "Bangkok (曼谷)"
}
]
}
]
},
{
"id": "KH",
"name": "Cambodia (柬埔寨)",
"keyword_file": "kw_KH.txt",
"states": [
{ "id": "Default",
"name": "Default State",
"cities": [
{ "id": "PhnomPenh",
"name": "Phnom Penh (金边)"
}
]
}
]
},
{
"id": "MM",
"name": "Myanmar (缅甸)",
"keyword_file": "kw_MM.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Yangon",
"name": "Yangon (仰光)"
}
]
}
]
},
{
"id": "LA",
"name": "Laos (老挝)",
"keyword_file": "kw_LA.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Vientiane",
"name": "Vientiane (万象)"
}
]
}
]
},
{
"id": "ID",
"name": "Indonesia (印度尼西亚)",
"keyword_file": "kw_ID.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Jakarta",
"name": "Jakarta (雅加达)"
}
]
}
]
},
{
"id": "IN",
"name": "India (印度)",
"keyword_file": "kw_IN.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Delhi",
"name": "Delhi (新德里)"
}
]
}
]
},
{
"id": "MN",
"name": "Mongolia (蒙古)",
"keyword_file": "kw_MN.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Ulaanbaatar",
"name": "Ulaanbaatar (乌兰巴托)"
}
]
}
]
},
{
"id": "NP",
"name": "Nepal (尼泊尔)",
"keyword_file": "kw_NP.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Kathmandu",
"name": "Kathmandu (加德满都)"
}
]
}
]
},
{
"id": "BD",
"name": "Bangladesh (孟加拉)",
"keyword_file": "kw_BD.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Dhaka",
"name": "Dhaka (达卡)"
}
]
}
]
},
{
"id": "AE",
"name": "United Arab Emirates (阿联酋)",
"keyword_file": "kw_AE.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Dubai",
"name": "Dubai (迪拜)"
}
]
}
]
},
{
"id": "SA",
"name": "Saudi Arabia (沙特阿拉伯)",
"keyword_file": "kw_SA.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Riyadh",
"name": "Riyadh (利雅得)"
}
]
}
]
},
{
"id": "KR",
"name": "South Korea (韩国)",
"keyword_file": "kw_KR.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Seoul",
"name": "Seoul (首尔)"
}
]
}
]
},
{
"id": "HK",
"name": "Hong Kong (香港)",
"keyword_file": "kw_HK.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "HongKong",
"name": "Hong Kong (香港)"
}
]
}
]
},
{
"id": "VN",
"name": "Vietnam (越南)",
"keyword_file": "kw_VN.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Hanoi",
"name": "Hanoi (河内)"
}
]
}
]
},
{
"id": "TW",
"name": "Taiwan (台湾)",
"keyword_file": "kw_TW.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Taipei",
"name": "Taipei (台北)"
}
]
}
]
},
{
"id": "MY",
"name": "Malaysia (马来西亚)",
"keyword_file": "kw_MY.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Kuala_Lumpur",
"name": "Kuala Lumpur (吉隆坡)"
}
]
}
]
}
]
},
{
"id": "EUROPE",
"name": "欧洲战区 (Europe)",
"countries": [
{
"id": "UK",
"name": "United Kingdom (英国)",
"keyword_file": "kw_UK.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "London",
"name": "London (伦敦)"
},
{
"id": "Coventry",
"name": "Coventry (考文垂)"
}
]
}
]
},
{
"id": "TR",
"name": "Turkey (土耳其)",
"keyword_file": "kw_TR.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Istanbul",
"name": "Istanbul (伊斯坦布尔)"
}
]
}
]
},
{
"id": "DE",
"name": "Germany (德国)",
"keyword_file": "kw_DE.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Frankfurt",
"name": "Frankfurt (法兰克福)"
}
]
},
{
"id": "SN",
"name": "Saxony (萨克森州)",
"cities": [
{
"id": "Falkenstein",
"name": "Falkenstein (法尔肯施泰因)"
}
]
},
{
"id": "BY",
"name": "Bavaria (巴伐利亚州)",
"cities": [
{
"id": "Nuremberg",
"name": "Nuremberg (纽伦堡)"
}
]
},
{
"id": "BE",
"name": "Berlin (柏林州)",
"cities": [
{
"id": "Berlin",
"name": "Berlin (柏林)"
}
]
}
]
},
{
"id": "FR",
"name": "France (法国)",
"keyword_file": "kw_FR.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Paris",
"name": "Paris (巴黎)"
}
]
}
]
},
{
"id": "NL",
"name": "Netherlands (荷兰)",
"keyword_file": "kw_NL.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Amsterdam",
"name": "Amsterdam (阿姆斯特丹)"
}
]
}
]
},
{
"id": "ES",
"name": "Spain (西班牙)",
"keyword_file": "kw_ES.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Madrid",
"name": "Madrid (马德里)"
}
]
}
]
}
]
},
{
"id": "AMERICAS",
"name": "美洲战区 (Americas)",
"countries": [
{
"id": "US",
"name": "United States (美国)",
"keyword_file": "kw_US.txt",
"states": [
{
"id": "CA",
"name": "California (加州)",
"cities": [
{
"id": "Los_Angeles",
"name": "Los Angeles (洛杉矶)"
},
{
"id": "San_Jose",
"name": "San Jose (圣何塞)"
}
]
},
{
"id": "IL",
"name": "Illinois (伊利诺伊州)",
"cities": [
{
"id": "Warrenville",
"name": "Warrenville (沃伦维尔)"
}
]
},
{
"id": "NC",
"name": "North Carolina (北卡罗来纳州)",
"cities": [
{
"id": "Charlotte",
"name": "Charlotte (夏洛特)"
}
]
},
{
"id": "NV",
"name": "Nevada (内华达州)",
"cities": [
{
"id": "Las_Vegas",
"name": "Las Vegas (拉斯维加斯)"
}
]
},
{
"id": "OR",
"name": "Oregon (俄勒冈州)",
"cities": [
{
"id": "Bend",
"name": "Bend (本德)"
}
]
},
{
"id": "UT",
"name": "Utah (犹他州)",
"cities": [
{
"id": "Salt_Lake_City",
"name": "Salt Lake City (盐湖城)"
}
]
},
{
"id": "WA",
"name": "Washington (华盛顿州)",
"cities": [
{
"id": "Seattle",
"name": "Seattle (西雅图)"
}
]
},
{
"id": "AZ",
"name": "Arizona (亚利桑那州)",
"cities": [
{
"id": "Phoenix",
"name": "Phoenix (凤凰城)"
}
]
},
{
"id": "TX",
"name": "Texas (得克萨斯州)",
"cities": [
{
"id": "Dallas",
"name": "Dallas (达拉斯)"
},
{
"id": "Houston",
"name": "Houston (休斯顿)"
}
]
},
{
"id": "IA",
"name": "Iowa (爱荷华州)",
"cities": [
{
"id": "Council_Bluffs",
"name": "Council Bluffs (康瑟尔布拉夫斯)"
}
]
},
{
"id": "VA",
"name": "Virginia (弗吉尼亚州)",
"cities": [
{
"id": "Ashburn",
"name": "Ashburn (阿什本)"
}
]
},
{
"id": "OH",
"name": "Ohio (俄亥俄州)",
"cities": [
{
"id": "Columbus",
"name": "Columbus (哥伦布)"
}
]
},
{
"id": "NY",
"name": "New York (纽约州)",
"cities": [
{
"id": "New_York",
"name": "New York (纽约)"
}
]
},
{
"id": "FL",
"name": "Florida (佛罗里达州)",
"cities": [
{
"id": "Miami",
"name": "Miami (迈阿密)"
}
]
},
{
"id": "NJ",
"name": "New Jersey (新泽西州)",
"cities": [
{
"id": "Newark",
"name": "Newark (纽瓦克)"
}
]
},
{
"id": "Hawaii",
"name": "Hawaii",
"cities": [
{
"id": "Honolulu",
"name": "Honolulu (檀香山)"
}
]
},
{
"id": "GA",
"name": "Georgia (佐治亚州)",
"cities": [
{
"id": "Atlanta",
"name": "Atlanta (亚特兰大)"
}
]
}
]
},
{
"id": "CA",
"name": "California (加)",
"cities": [
{ "id": "Los_Angeles", "name": "Los Angeles (洛杉矶)" },
{ "id": "San_Jose", "name": "San Jose (圣何塞)" }
"name": "Canada (加拿大)",
"keyword_file": "kw_CA.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Toronto",
"name": "Toronto (多伦多)"
},
{
"id": "Montreal",
"name": "Montreal (蒙特利尔)"
}
]
}
]
}
]
},
{
"id": "JP",
"name": "Japan (日本)",
"keyword_file": "kw_JP.txt",
"states": [
"id": "OCEANIA",
"name": "大洋洲战区 (Oceania)",
"countries": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "Tokyo", "name": "Tokyo (东京)" }
"id": "AU",
"name": "Australia (澳大利亚)",
"keyword_file": "kw_AU.txt",
"states": [
{
"id": "NSW",
"name": "New South Wales (新南威尔士州)",
"cities": [
{
"id": "Sydney",
"name": "Sydney (悉尼)"
}
]
},
{
"id": "VIC",
"name": "Victoria (维多利亚州)",
"cities": [
{
"id": "Melbourne",
"name": "Melbourne (墨尔本)"
}
]
},
{
"id": "QLD",
"name": "Queensland (昆士兰州)",
"cities": [
{
"id": "Brisbane",
"name": "Brisbane (布里斯班)"
}
]
},
{
"id": "WA",
"name": "Western Australia (西澳大利亚州)",
"cities": [
{
"id": "Perth",
"name": "Perth (珀斯)"
}
]
},
{
"id": "SA",
"name": "South Australia (南澳大利亚州)",
"cities": [
{
"id": "Adelaide",
"name": "Adelaide (阿德莱德)"
}
]
}
]
}
]
},
{
"id": "UK",
"name": "United Kingdom (英国)",
"keyword_file": "kw_UK.txt",
"states": [
"id": "AFRICA",
"name": "非洲战区 (Africa)",
"countries": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "London", "name": "London (伦敦)" }
]
}
]
},
{
"id": "DE",
"name": "Germany (德国)",
"keyword_file": "kw_DE.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "Frankfurt", "name": "Frankfurt (法兰克福)" }
]
}
]
},
{
"id": "FR",
"name": "France (法国)",
"keyword_file": "kw_FR.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "Paris", "name": "Paris (巴黎)" }
]
}
]
},
{
"id": "SG",
"name": "Singapore (新加坡)",
"keyword_file": "kw_SG.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "Singapore", "name": "Singapore (新加坡)" }
]
}
]
},
{
"id": "HK",
"name": "Hong Kong (香港)",
"keyword_file": "kw_HK.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{ "id": "HongKong", "name": "Hong Kong (香港)" }
"id": "NG",
"name": "Nigeria (尼日利亚)",
"keyword_file": "kw_NG.txt",
"states": [
{
"id": "Default",
"name": "Default State",
"cities": [
{
"id": "Lagos",
"name": "Lagos (拉各斯)"
}
]
}
]
}
]
}
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "UAE (Dubai)", "google_module": { "base_lat": 25.2048, "base_lon": 55.2708, "lang_params": "hl=en-AE&gl=AE", "valid_url_suffix": "ae" }, "trust_module": { "white_urls": [ "https://www.khaleejtimes.com/", "https://gulfnews.com/", "https://www.thenationalnews.com/", "https://www.arabianbusiness.com/", "https://www.emirates247.com/", "https://u.ae/", "https://www.mofa.gov.ae/", "https://www.centralbank.ae/", "https://www.etisalat.ae/", "https://www.du.ae/", "https://www.noon.com/uae-en/", "https://www.amazon.ae/", "https://www.careem.com/", "https://www.talabat.com/uae/" ], "static_urls": [ "https://u.ae/", "https://www.centralbank.ae/", "https://gulfnews.com/", "https://www.khaleejtimes.com/", "https://www.thenationalnews.com/" ] } }

View File

@@ -0,0 +1,50 @@
{
"region_name": "Australia - Sydney",
"google_module": {
"base_lat": -33.8697,
"base_lon": 151.2085,
"lang_params": "hl=en-AU&gl=AU",
"valid_url_suffix": "com.au"
},
"trust_module": {
"white_urls": [
"https://www.abc.net.au/news/2026-05-08/police-release-cctv-in-temora-fatal-shooting-investigation/106658298",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-05-08/teens-jailed-over-largest-cocaine-bust/106658618",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-05-08/archibald-prize-winner-2026-richard-lewer-iluwanti-ken/106616630",
"https://www.ato.gov.au/",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-05-08/antisemitism-social-cohesion-royal-commission-mardi-gras/106656756",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-05-08/afp-charge-men-possession-of-violent-extremist-material-isis/106659244",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-05-08/ex-knox-teacher-sentenced-over-child-grooming-charges/106658214",
"https://www.abc.net.au/news/2026-05-08/aiva-anagnostiadis-gt4-italy-series-promodrive-team/106657860",
"https://www.abc.net.au/news/2026-05-08/farrer-byelection-voters-embrace-change/106644364",
"https://www.abc.net.au/news/2026-05-08/anika-wells-repays-travel-costs-afl-grand-final/106658202",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-05-08/nt-government-child-protection-review-kumanjayi-little-baby/106658462",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-05-08/wa-budget-how-to-claim-cost-of-living-relief/106657878",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-05-08/e-mobility-parliamentary-committtee-report-proposed-law-changes/106654856",
"https://www.abc.net.au/news/2026-05-08/china-former-defence-ministers-sentenced-after-purge/106657326",
"https://www.abc.net.au/news/2026-05-08/man-jailed-over-axe-crime-spree-sarina/106656834",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-05-08/us-iran-attacks-strait-of-hormuz-tensions-ceasefire-threat/106657022"
],
"static_urls": [
"https://my.gov.au/",
"https://www.ato.gov.au/",
"https://www.bom.gov.au/",
"https://www.commbank.com.au/",
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Australia - Brisbane",
"google_module": {
"base_lat": -27.4697,
"base_lon": 153.0252,
"lang_params": "hl=en-AU&gl=AU",
"valid_url_suffix": "com.au"
},
"trust_module": {
"white_urls": [
"https://www.ato.gov.au/",
"https://www.abc.net.au/news/2026-05-08/teens-jailed-over-largest-cocaine-bust/106658618",
"https://www.abc.net.au/news/2026-05-08/man-jailed-over-axe-crime-spree-sarina/106656834",
"https://www.abc.net.au/news/2026-05-08/police-release-cctv-in-temora-fatal-shooting-investigation/106658298",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-05-08/nt-government-child-protection-review-kumanjayi-little-baby/106658462",
"https://www.abc.net.au/news/2026-05-08/us-iran-attacks-strait-of-hormuz-tensions-ceasefire-threat/106657022",
"https://www.abc.net.au/news/2026-05-08/e-mobility-parliamentary-committtee-report-proposed-law-changes/106654856",
"https://www.woolworths.com.au/",
"https://www.amazon.com.au/",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-05-08/archibald-prize-winner-2026-richard-lewer-iluwanti-ken/106616630",
"https://www.abc.net.au/news/2026-05-08/antisemitism-social-cohesion-royal-commission-mardi-gras/106656756",
"https://www.abc.net.au/news/2026-05-08/china-former-defence-ministers-sentenced-after-purge/106657326",
"https://www.abc.net.au/news/2026-05-08/wa-budget-how-to-claim-cost-of-living-relief/106657878",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-05-08/anika-wells-repays-travel-costs-afl-grand-final/106658202",
"https://www.abc.net.au/news/2026-05-08/ex-knox-teacher-sentenced-over-child-grooming-charges/106658214",
"https://www.coles.com.au/",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-05-08/aiva-anagnostiadis-gt4-italy-series-promodrive-team/106657860",
"https://www.abc.net.au/news/2026-05-08/afp-charge-men-possession-of-violent-extremist-material-isis/106659244",
"https://www.abc.net.au/news/2026-05-08/farrer-byelection-voters-embrace-change/106644364",
"https://www.bunnings.com.au/",
"https://www.seek.com.au/"
],
"static_urls": [
"https://my.gov.au/",
"https://www.ato.gov.au/",
"https://www.bom.gov.au/",
"https://www.commbank.com.au/",
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Australia - Adelaide",
"google_module": {
"base_lat": -34.9227,
"base_lon": 138.6016,
"lang_params": "hl=en-AU&gl=AU",
"valid_url_suffix": "com.au"
},
"trust_module": {
"white_urls": [
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-05-08/afp-charge-men-possession-of-violent-extremist-material-isis/106659244",
"https://www.bom.gov.au/",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-05-08/police-release-cctv-in-temora-fatal-shooting-investigation/106658298",
"https://www.abc.net.au/news/2026-05-08/us-iran-attacks-strait-of-hormuz-tensions-ceasefire-threat/106657022",
"https://www.abc.net.au/news/2026-05-08/man-jailed-over-axe-crime-spree-sarina/106656834",
"https://www.abc.net.au/news/2026-05-08/ex-knox-teacher-sentenced-over-child-grooming-charges/106658214",
"https://www.abc.net.au/news/2026-05-08/e-mobility-parliamentary-committtee-report-proposed-law-changes/106654856",
"https://www.coles.com.au/",
"https://www.abc.net.au/news/2026-05-08/china-former-defence-ministers-sentenced-after-purge/106657326",
"https://www.ato.gov.au/",
"https://www.commbank.com.au/",
"https://www.woolworths.com.au/",
"https://www.abc.net.au/news/2026-05-08/antisemitism-social-cohesion-royal-commission-mardi-gras/106656756",
"https://www.abc.net.au/news/2026-05-08/wa-budget-how-to-claim-cost-of-living-relief/106657878",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-05-08/anika-wells-repays-travel-costs-afl-grand-final/106658202",
"https://www.abc.net.au/news/2026-05-08/nt-government-child-protection-review-kumanjayi-little-baby/106658462",
"https://www.abc.net.au/news/2026-05-08/archibald-prize-winner-2026-richard-lewer-iluwanti-ken/106616630",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-05-08/aiva-anagnostiadis-gt4-italy-series-promodrive-team/106657860",
"https://www.abc.net.au/news/2026-05-08/farrer-byelection-voters-embrace-change/106644364",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-05-08/teens-jailed-over-largest-cocaine-bust/106658618"
],
"static_urls": [
"https://my.gov.au/",
"https://www.ato.gov.au/",
"https://www.bom.gov.au/",
"https://www.commbank.com.au/",
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Australia - Melbourne",
"google_module": {
"base_lat": -37.8106,
"base_lon": 144.9624,
"lang_params": "hl=en-AU&gl=AU",
"valid_url_suffix": "com.au"
},
"trust_module": {
"white_urls": [
"https://www.abc.net.au/news/2026-05-08/teens-jailed-over-largest-cocaine-bust/106658618",
"https://www.abc.net.au/news/2026-05-08/man-jailed-over-axe-crime-spree-sarina/106656834",
"https://www.amazon.com.au/",
"https://www.abc.net.au/news/2026-05-08/nt-government-child-protection-review-kumanjayi-little-baby/106658462",
"https://www.abc.net.au/news/2026-05-08/antisemitism-social-cohesion-royal-commission-mardi-gras/106656756",
"https://www.abc.net.au/news/2026-05-08/afp-charge-men-possession-of-violent-extremist-material-isis/106659244",
"https://www.abc.net.au/news/2026-05-08/china-former-defence-ministers-sentenced-after-purge/106657326",
"https://www.abc.net.au/news/2026-05-08/ex-knox-teacher-sentenced-over-child-grooming-charges/106658214",
"https://www.abc.net.au/news/2026-05-08/us-iran-attacks-strait-of-hormuz-tensions-ceasefire-threat/106657022",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-05-08/farrer-byelection-voters-embrace-change/106644364",
"https://www.abc.net.au/news/2026-05-08/wa-budget-how-to-claim-cost-of-living-relief/106657878",
"https://www.abc.net.au/news/2026-05-08/anika-wells-repays-travel-costs-afl-grand-final/106658202",
"https://www.seek.com.au/",
"https://www.abc.net.au/news/2026-05-08/e-mobility-parliamentary-committtee-report-proposed-law-changes/106654856",
"https://www.abc.net.au/news/2026-05-08/police-release-cctv-in-temora-fatal-shooting-investigation/106658298",
"https://www.bom.gov.au/",
"https://www.woolworths.com.au/",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-05-08/aiva-anagnostiadis-gt4-italy-series-promodrive-team/106657860",
"https://www.commbank.com.au/",
"https://www.abc.net.au/news/2026-05-08/archibald-prize-winner-2026-richard-lewer-iluwanti-ken/106616630",
"https://www.realestate.com.au/",
"https://www.ato.gov.au/",
"https://www.coles.com.au/"
],
"static_urls": [
"https://my.gov.au/",
"https://www.ato.gov.au/",
"https://www.bom.gov.au/",
"https://www.commbank.com.au/",
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Australia - Perth",
"google_module": {
"base_lat": -31.9545,
"base_lon": 115.8582,
"lang_params": "hl=en-AU&gl=AU",
"valid_url_suffix": "com.au"
},
"trust_module": {
"white_urls": [
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.abc.net.au/news/2026-05-08/anika-wells-repays-travel-costs-afl-grand-final/106658202",
"https://www.abc.net.au/news/2026-05-08/teens-jailed-over-largest-cocaine-bust/106658618",
"https://www.abc.net.au/news/2026-05-08/china-former-defence-ministers-sentenced-after-purge/106657326",
"https://www.abc.net.au/news/2026-05-08/us-iran-attacks-strait-of-hormuz-tensions-ceasefire-threat/106657022",
"https://www.amazon.com.au/",
"https://www.coles.com.au/",
"https://www.commbank.com.au/",
"https://my.gov.au/",
"https://www.abc.net.au/news/2026-05-08/wa-budget-how-to-claim-cost-of-living-relief/106657878",
"https://www.abc.net.au/news/2026-05-08/archibald-prize-winner-2026-richard-lewer-iluwanti-ken/106616630",
"https://www.abc.net.au/news/2026-05-08/e-mobility-parliamentary-committtee-report-proposed-law-changes/106654856",
"https://www.ato.gov.au/",
"https://www.abc.net.au/news/2026-05-08/man-jailed-over-axe-crime-spree-sarina/106656834",
"https://www.abc.net.au/news/2026-05-08/aiva-anagnostiadis-gt4-italy-series-promodrive-team/106657860",
"https://www.bom.gov.au/",
"https://www.abc.net.au/news/2026-05-08/farrer-byelection-voters-embrace-change/106644364",
"https://www.abc.net.au/news/2026-05-08/afp-charge-men-possession-of-violent-extremist-material-isis/106659244",
"https://www.abc.net.au/news/2026-05-08/antisemitism-social-cohesion-royal-commission-mardi-gras/106656756",
"https://www.bunnings.com.au/",
"https://www.abc.net.au/news/2026-05-08/nt-government-child-protection-review-kumanjayi-little-baby/106658462",
"https://www.abc.net.au/news/2026-05-08/ex-knox-teacher-sentenced-over-child-grooming-charges/106658214",
"https://www.abc.net.au/news/2026-05-08/police-release-cctv-in-temora-fatal-shooting-investigation/106658298",
"https://www.woolworths.com.au/"
],
"static_urls": [
"https://my.gov.au/",
"https://www.ato.gov.au/",
"https://www.bom.gov.au/",
"https://www.commbank.com.au/",
"https://www.seek.com.au/",
"https://www.realestate.com.au/",
"https://www.woolworths.com.au/",
"https://www.coles.com.au/",
"https://www.amazon.com.au/",
"https://www.bunnings.com.au/"
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Bangladesh (Dhaka)", "google_module": { "base_lat": 23.8103, "base_lon": 90.4125, "lang_params": "hl=en-BD&gl=BD", "valid_url_suffix": "com.bd" }, "trust_module": { "white_urls": [ "https://www.thedailystar.net/", "https://www.bdnews24.com/", "https://www.prothomalo.com/", "https://www.dhakatribune.com/", "https://www.banglanews24.com/", "https://www.bssnews.net/", "https://bangladesh.gov.bd/", "https://www.bb.org.bd/", "https://mof.gov.bd/", "https://btrc.gov.bd/", "https://www.grameenphone.com/", "https://www.banglalink.net/", "https://www.robi.com.bd/", "https://www.daraz.com.bd/" ], "static_urls": [ "https://bangladesh.gov.bd/", "https://www.bb.org.bd/", "https://www.thedailystar.net/", "https://www.prothomalo.com/", "https://www.bdnews24.com/" ] } }

View File

@@ -0,0 +1,46 @@
{
"region_name": "Canada - Montreal",
"google_module": {
"base_lat": 45.5017,
"base_lon": -73.5673,
"lang_params": "hl=en&gl=CA",
"valid_url_suffix": "ca"
},
"trust_module": {
"white_urls": [
"https://www.cbc.ca/news/politics/environmental-law-changes-major-resource-projects-9.7192022?cmp=rss",
"https://www.cbc.ca/news/rubio-pope-leo-trump-9.7191341?cmp=rss",
"https://www.cbc.ca/radio/asithappens/elmer-glue-kitten-9.7191582?cmp=rss",
"https://www.cbc.ca/news/politics/poilievre-keep-fighting-9.7191406?cmp=rss",
"https://www.cbc.ca/news/canada/toronto/hantavirus-cruise-ontario-passengers-isolating-9.7191211?cmp=rss",
"https://www.cbc.ca/news/world/us-sanctions-cuba-sherritt-9.7191593?cmp=rss",
"https://www.cbc.ca/news/canada/calgary/separatist-activist-quits-chamber-of-commerce-amid-centurion-project-probes-9.7191899?cmp=rss",
"https://www.cbc.ca/news/world/trump-global-tariffs-trade-court-9.7191744?cmp=rss",
"https://www.canada.ca/en.html",
"https://www.cbc.ca/news/canada/sudbury/livestory/boil-water-advistory-sudbury-9.7190991?cmp=rss",
"https://www.rbcroyalbank.com/",
"https://www.cbc.ca/news/world/us-intercept-iran-attacks-strait-of-hormuz-9.7191876?cmp=rss",
"https://www.utoronto.ca/",
"https://www.cbc.ca/news/canada/ottawa/brockville-police-arrest-17-year-old-after-finding-3-people-dead-in-a-home-9.7192167?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/livestory/dean-penney-trial-9.7190805?cmp=rss",
"https://www.canadapost-postescanada.ca/",
"https://www.cbc.ca/news/canada/edmonton/centurion-project-alberta-voters-list-leak-9.7191390?cmp=rss",
"https://www.theweathernetwork.com/ca",
"https://www.td.com/",
"https://www.amazon.ca/",
"https://www.cra-arc.gc.ca/",
"https://www.cbc.ca/news/canada/edmonton/former-alberta-premier-jason-kenney-personal-data-9.7192054?cmp=rss",
"https://www.cbc.ca/news/canada/north/franklin-expedition-four-sailors-identified-peglar-9.7189919?cmp=rss"
],
"static_urls": [
"https://www.canada.ca/en.html",
"https://www.cra-arc.gc.ca/",
"https://www.canadapost-postescanada.ca/",
"https://www.utoronto.ca/",
"https://www.td.com/",
"https://www.rbcroyalbank.com/",
"https://www.amazon.ca/",
"https://www.theweathernetwork.com/ca"
]
}
}

View File

@@ -0,0 +1,46 @@
{
"region_name": "Canada - Toronto",
"google_module": {
"base_lat": 43.6532,
"base_lon": -79.3832,
"lang_params": "hl=en&gl=CA",
"valid_url_suffix": "ca"
},
"trust_module": {
"white_urls": [
"https://www.cbc.ca/news/world/us-intercept-iran-attacks-strait-of-hormuz-9.7191876?cmp=rss",
"https://www.cbc.ca/news/canada/newfoundland-labrador/livestory/dean-penney-trial-9.7190805?cmp=rss",
"https://www.cra-arc.gc.ca/",
"https://www.cbc.ca/news/rubio-pope-leo-trump-9.7191341?cmp=rss",
"https://www.cbc.ca/news/canada/north/franklin-expedition-four-sailors-identified-peglar-9.7189919?cmp=rss",
"https://www.cbc.ca/radio/asithappens/elmer-glue-kitten-9.7191582?cmp=rss",
"https://www.rbcroyalbank.com/",
"https://www.utoronto.ca/",
"https://www.cbc.ca/news/politics/environmental-law-changes-major-resource-projects-9.7192022?cmp=rss",
"https://www.cbc.ca/news/canada/sudbury/livestory/boil-water-advistory-sudbury-9.7190991?cmp=rss",
"https://www.td.com/",
"https://www.cbc.ca/news/canada/toronto/hantavirus-cruise-ontario-passengers-isolating-9.7191211?cmp=rss",
"https://www.amazon.ca/",
"https://www.theweathernetwork.com/ca",
"https://www.canadapost-postescanada.ca/",
"https://www.cbc.ca/news/canada/ottawa/brockville-police-arrest-17-year-old-after-finding-3-people-dead-in-a-home-9.7192167?cmp=rss",
"https://www.cbc.ca/news/world/us-sanctions-cuba-sherritt-9.7191593?cmp=rss",
"https://www.canada.ca/en.html",
"https://www.cbc.ca/news/world/trump-global-tariffs-trade-court-9.7191744?cmp=rss",
"https://www.cbc.ca/news/politics/poilievre-keep-fighting-9.7191406?cmp=rss",
"https://www.cbc.ca/news/canada/edmonton/centurion-project-alberta-voters-list-leak-9.7191390?cmp=rss",
"https://www.cbc.ca/news/canada/edmonton/former-alberta-premier-jason-kenney-personal-data-9.7192054?cmp=rss",
"https://www.cbc.ca/news/canada/calgary/separatist-activist-quits-chamber-of-commerce-amid-centurion-project-probes-9.7191899?cmp=rss"
],
"static_urls": [
"https://www.canada.ca/en.html",
"https://www.cra-arc.gc.ca/",
"https://www.canadapost-postescanada.ca/",
"https://www.utoronto.ca/",
"https://www.td.com/",
"https://www.rbcroyalbank.com/",
"https://www.amazon.ca/",
"https://www.theweathernetwork.com/ca"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Germany - Berlin",
"google_module": {
"base_lat": 52.52,
"base_lon": 13.405,
"lang_params": "hl=de-DE&gl=DE",
"valid_url_suffix": "de"
},
"trust_module": {
"white_urls": [
"https://www.amazon.de/",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-104.html",
"https://www.edeka.de/",
"https://www.tagesschau.de/wirtschaft/verbraucher/google-bewertungen-100.html",
"https://www.tagesschau.de/ausland/asien/usa-iran-strasse-von-hormus-102.html",
"https://www.tagesschau.de/ausland/europa/drohnen-lettland-100.html",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-102.html",
"https://www.obi.de/",
"https://www.tagesschau.de/ausland/asien/china-urteil-verteidigungsminister-100.html",
"https://www.tagesschau.de/inland/regional/berlin/margot-friedlaender-platz-100.html",
"https://www.dwd.de/",
"https://www.tagesschau.de/ausland/amerika/trump-usa-zoelle-eu-100.html",
"https://www.tagesschau.de/inland/diaeten-erhoehung-bundestagsabgeordnete-100.html",
"https://www.tagesschau.de/inland/gesellschaft/aerztemangel-178.html",
"https://www.tagesschau.de/inland/innenpolitik/ein-jahr-schwarz-rot-basis-100.html",
"https://www.tagesschau.de/ausland/amerika/us-gericht-trump-zoelle-100.html",
"https://www.stepstone.de/",
"https://www.immobilienscout24.de/",
"https://www.bundesregierung.de/",
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/wirtschaft/finanzen/iran-krieg-wind-solar-boerse-100.html",
"https://www.tagesschau.de/wissen/gesundheit/organspende-258.html",
"https://www.rewe.de/",
"https://www.tagesschau.de/inland/innenpolitik/bundeswehr-wehrdienst-frageboegen-100.html",
"https://www.sparkasse.de/"
],
"static_urls": [
"https://www.bundesregierung.de/",
"https://www.arbeitsagentur.de/",
"https://www.dwd.de/",
"https://www.sparkasse.de/",
"https://www.stepstone.de/",
"https://www.immobilienscout24.de/",
"https://www.rewe.de/",
"https://www.edeka.de/",
"https://www.amazon.de/",
"https://www.obi.de/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Germany - Bavaria (Nuremberg)",
"google_module": {
"base_lat": 49.4521,
"base_lon": 11.0767,
"lang_params": "hl=de-DE&gl=DE",
"valid_url_suffix": "de"
},
"trust_module": {
"white_urls": [
"https://www.tagesschau.de/wirtschaft/verbraucher/google-bewertungen-100.html",
"https://www.obi.de/",
"https://www.tagesschau.de/inland/innenpolitik/bundeswehr-wehrdienst-frageboegen-100.html",
"https://www.edeka.de/",
"https://www.tagesschau.de/ausland/europa/drohnen-lettland-100.html",
"https://www.tagesschau.de/ausland/asien/china-urteil-verteidigungsminister-100.html",
"https://www.sparkasse.de/",
"https://www.tagesschau.de/wirtschaft/finanzen/iran-krieg-wind-solar-boerse-100.html",
"https://www.amazon.de/",
"https://www.rewe.de/",
"https://www.dwd.de/",
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/ausland/asien/usa-iran-strasse-von-hormus-102.html",
"https://www.stepstone.de/",
"https://www.tagesschau.de/inland/innenpolitik/ein-jahr-schwarz-rot-basis-100.html",
"https://www.tagesschau.de/ausland/amerika/us-gericht-trump-zoelle-100.html",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-102.html",
"https://www.bundesregierung.de/",
"https://www.tagesschau.de/inland/regional/berlin/margot-friedlaender-platz-100.html",
"https://www.tagesschau.de/inland/diaeten-erhoehung-bundestagsabgeordnete-100.html",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-104.html",
"https://www.immobilienscout24.de/",
"https://www.tagesschau.de/wissen/gesundheit/organspende-258.html",
"https://www.tagesschau.de/ausland/amerika/trump-usa-zoelle-eu-100.html",
"https://www.tagesschau.de/inland/gesellschaft/aerztemangel-178.html"
],
"static_urls": [
"https://www.bundesregierung.de/",
"https://www.arbeitsagentur.de/",
"https://www.dwd.de/",
"https://www.sparkasse.de/",
"https://www.stepstone.de/",
"https://www.immobilienscout24.de/",
"https://www.rewe.de/",
"https://www.edeka.de/",
"https://www.amazon.de/",
"https://www.obi.de/"
]
}
}

View File

@@ -8,13 +8,39 @@
},
"trust_module": {
"white_urls": [
"https://www.tagesschau.de/inland/innenpolitik/bundeswehr-wehrdienst-frageboegen-100.html",
"https://www.tagesschau.de/ausland/asien/china-urteil-verteidigungsminister-100.html",
"https://www.tagesschau.de/inland/regional/berlin/margot-friedlaender-platz-100.html",
"https://www.tagesschau.de/wissen/gesundheit/organspende-258.html",
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-104.html",
"https://www.amazon.de/",
"https://www.tum.de/",
"https://www.spiegel.de/",
"https://www.tagesschau.de/",
"https://de.wikipedia.org/wiki/Spezial:Zuf%C3%A4llige_Seite",
"https://www.tagesschau.de/wirtschaft/verbraucher/google-bewertungen-100.html",
"https://www.ebay.de/",
"https://www.bild.de/",
"https://www.kicker.de/"
"https://www.tagesschau.de/ausland/amerika/us-gericht-trump-zoelle-100.html",
"https://www.tagesschau.de/ausland/asien/usa-iran-strasse-von-hormus-102.html",
"https://www.bahn.de/",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-102.html",
"https://www.bundesregierung.de/",
"https://www.tagesschau.de/inland/diaeten-erhoehung-bundestagsabgeordnete-100.html",
"https://www.tagesschau.de/wirtschaft/finanzen/iran-krieg-wind-solar-boerse-100.html",
"https://www.tagesschau.de/inland/innenpolitik/ein-jahr-schwarz-rot-basis-100.html",
"https://www.tagesschau.de/ausland/europa/drohnen-lettland-100.html",
"https://www.sparkasse.de/",
"https://www.tagesschau.de/inland/gesellschaft/aerztemangel-178.html",
"https://www.tagesschau.de/ausland/amerika/trump-usa-zoelle-eu-100.html"
],
"static_urls": [
"https://www.bundesregierung.de/",
"https://www.arbeitsagentur.de/",
"https://www.tum.de/",
"https://www.sparkasse.de/",
"https://www.bahn.de/",
"https://www.amazon.de/",
"https://www.ebay.de/",
"https://www.spiegel.de/"
]
}
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "Germany - Saxony (Falkenstein)",
"google_module": {
"base_lat": 50.4779,
"base_lon": 12.3713,
"lang_params": "hl=de-DE&gl=DE",
"valid_url_suffix": "de"
},
"trust_module": {
"white_urls": [
"https://www.arbeitsagentur.de/",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-104.html",
"https://www.tagesschau.de/ausland/amerika/us-gericht-trump-zoelle-100.html",
"https://www.rewe.de/",
"https://www.tagesschau.de/inland/innenpolitik/bundeswehr-wehrdienst-frageboegen-100.html",
"https://www.tagesschau.de/ausland/europa/drohnen-lettland-100.html",
"https://www.tagesschau.de/inland/gesellschaft/aerztemangel-178.html",
"https://www.tagesschau.de/wissen/gesundheit/organspende-258.html",
"https://www.bundesregierung.de/",
"https://www.tagesschau.de/inland/diaeten-erhoehung-bundestagsabgeordnete-100.html",
"https://www.tagesschau.de/inland/innenpolitik/ein-jahr-schwarz-rot-basis-100.html",
"https://www.tagesschau.de/inland/regional/berlin/margot-friedlaender-platz-100.html",
"https://www.amazon.de/",
"https://www.edeka.de/",
"https://www.sparkasse.de/",
"https://www.stepstone.de/",
"https://www.obi.de/",
"https://www.tagesschau.de/ausland/amerika/trump-usa-zoelle-eu-100.html",
"https://www.tagesschau.de/ausland/asien/china-urteil-verteidigungsminister-100.html",
"https://www.tagesschau.de/wirtschaft/finanzen/iran-krieg-wind-solar-boerse-100.html",
"https://www.tagesschau.de/ausland/europa/hantavirus-kreuzfahrtschiff-102.html",
"https://www.tagesschau.de/wirtschaft/verbraucher/google-bewertungen-100.html",
"https://www.dwd.de/",
"https://www.immobilienscout24.de/",
"https://www.tagesschau.de/ausland/asien/usa-iran-strasse-von-hormus-102.html"
],
"static_urls": [
"https://www.bundesregierung.de/",
"https://www.arbeitsagentur.de/",
"https://www.dwd.de/",
"https://www.sparkasse.de/",
"https://www.stepstone.de/",
"https://www.immobilienscout24.de/",
"https://www.rewe.de/",
"https://www.edeka.de/",
"https://www.amazon.de/",
"https://www.obi.de/"
]
}
}

View File

@@ -0,0 +1,44 @@
{
"region_name": "Spain - Madrid",
"google_module": {
"base_lat": 40.4168,
"base_lon": -3.7038,
"lang_params": "hl=es&gl=ES",
"valid_url_suffix": "es"
},
"trust_module": {
"white_urls": [
"https://www.santander.es/",
"https://elpais.com/gente/2026-05-07/melissa-barrera-resurge-tras-ser-apartada-del-cine-por-apoyar-a-palestina-necesitaba-un-respiro-de-toda-la-mierda-que-es-hollywood.html",
"https://elpais.com/cultura/cine/2026-05-08/recreacion-de-un-asesinato-nada-de-nada-en-este-grotesco-plagio-de-un-clasico.html",
"https://elpais.com/television/series/2026-05-07/esta-es-la-fecha-del-final-de-the-bear-cuando-empieza-y-termina-la-quinta-y-ultima-temporada-de-la-serie.html",
"https://elpais.com/economia/2026-05-07/el-boe-publica-la-oferta-de-empleo-publico-estas-son-las-37000-nuevas-plazas.html",
"https://elpais.com/gastronomia/2026-05-08/los-hermanos-artidiello-guardianes-de-los-guisos-asturianos-en-el-hostal-de-caravia-hay-clientes-que-vienen-desde-hace-50-anos.html",
"https://elpais.com/babelia/2026-05-06/alexa-siri-irene-sara-la-importancia-del-nombre-propio.html",
"https://elpais.com/videos/2026-05-08/el-futuro-judicial-de-abalos-kolgo-garcia-y-aldama.html",
"https://administracion.gob.es/",
"https://www.zara.com/es/",
"https://www.agenciatributaria.es/",
"https://elpais.com/tecnologia/2026-05-03/luchas-de-poder-avaricia-guerra-y-tecnofascismo-la-ia-se-quita-la-careta.html",
"https://elpais.com/gastronomia/2026-05-08/los-fresones-con-vino-dulce-son-la-buena-noticia-que-el-mundo-necesita-hoy.html",
"https://www.renfe.com/",
"https://elpais.com/mamas-papas/familia/2026-05-08/como-prevenir-y-afrontar-la-exposicion-sexual-de-tu-hijo-adolescente-en-las-redes-sociales.html",
"https://elpais.com/ideas/2026-05-03/un-festival-sobre-corrupcion-en-tres-escenarios-judiciales.html",
"https://elpais.com/ciencia/2026-05-08/gustavo-palacios-experto-en-hantavirus-este-patogeno-es-mas-virulento-y-puede-haber-contagios-en-cadenas.html",
"https://cincodias.elpais.com/opinion/2026-05-08/el-periodismo-de-fiesta-el-periodismo-de-luto.html",
"https://elpais.com/babelia/2026-05-07/la-dictadura-la-precariedad-y-la-melancolia-en-la-camara-de-leonora-vicuna.html",
"https://www.elcorteingles.es/",
"https://elpais.com/internacional/2026-05-07/eurodiputados-instan-a-la-ue-a-presionar-a-israel-para-que-permita-a-los-periodistas-acceder-libremente-a-gaza.html",
"https://www.amazon.es/"
],
"static_urls": [
"https://administracion.gob.es/",
"https://www.agenciatributaria.es/",
"https://www.santander.es/",
"https://www.renfe.com/",
"https://www.amazon.es/",
"https://www.zara.com/es/",
"https://www.elcorteingles.es/"
]
}
}

View File

@@ -8,13 +8,37 @@
},
"trust_module": {
"white_urls": [
"https://www.lemonde.fr/",
"https://www.lefigaro.fr/",
"https://www.sncf.com/",
"https://www.france24.com/fr/europe/20260507-la-tr%C3%AAve-unilat%C3%A9rale-de-la-russie-commence-moscou-annonce-la-destruction-de-drones",
"https://www.france24.com/fr/moyen-orient/20260507-ces-images-ne-prouvent-pas-que-l-iran-a-d%C3%A9voil%C3%A9-des-drones-dauphin-kamikazes",
"https://www.france24.com/fr/vid%C3%A9o/20260507-soudan%E2%80%91%C3%A9thiopie-khartoum-accuse-addis%E2%80%91abeba-apr%C3%A8s-des-tirs-de-drones-la-crise-s-aggrave",
"https://www.france24.com/fr/%C3%A9missions/le-d%C3%A9bat/20260507-guerre-en-iran-l-%C3%A9chec-de-donald-trump",
"https://www.france24.com/fr/vid%C3%A9o/20260507-centrafrique-l-ong-esp%C3%A9rance-aide-les-enfants-soldats-%C3%A0-surmonter-la-violence-du-pass%C3%A9",
"https://www.amazon.fr/",
"https://www.service-public.fr/",
"https://fr.wikipedia.org/wiki/Sp%C3%A9cial:Page_au_hasard",
"https://www.credit-agricole.fr/",
"https://www.france24.com/fr/%C3%A9missions/questions-directes/20260507-sommet-africa-forward-afrique-anglophone-le-pari-fran%C3%A7ais",
"https://www.impots.gouv.fr/",
"https://www.france24.com/fr/am%C3%A9riques/20260507-trump-lance-un-ultimatum-%C3%A0-l-ue-pour-appliquer-l-accord-commercial-avec-les-%C3%A9tats-unis",
"https://www.france24.com/fr/afrique/20260507-mali-deux-attaques-revendiqu%C3%A9es-par-les-jihadistes-du-jnim-font-plus-de-30-morts-dans-le-centre",
"https://www.france24.com/fr/%C3%A9co-tech/20260507-elon-musk-dans-les-radars-d-un-juge-d-instruction-fran%C3%A7ais-pour-les-d%C3%A9rives-possibles-de-x",
"https://www.france24.com/fr/%C3%A9missions/journal-de-l-afrique/20260507-au-moins-30-personnes-tu%C3%A9es-par-le-groupe-jihadiste-jnim-mercredi-dans-le-centre-du-mali",
"https://www.france24.com/fr/%C3%A9missions/info-ou-intox/20260507-sud-liban-un-soldat-isra%C3%A9lien-fait-fumer-une-statue-de-la-vierge-marie",
"https://www.sorbonne-universite.fr/",
"https://www.france24.com/fr/vid%C3%A9o/20260507-azouz-begag-rend-hommage-au-chanteur-franco-alg%C3%A9rien-rachid-taha",
"https://www.france24.com/fr/vid%C3%A9o/20260507-burkina-faso-le-journaliste-atiana-serge-oulon-tortur%C3%A9-dans-une-prison-secr%C3%A8te-selon-rsf",
"https://www.france24.com/fr/sports/20260507-ligue-conf%C3%A9rence-strasbourg-%C3%A9limin%C3%A9-en-demi-finale-par-le-rayo-vallecano",
"https://www.cdiscount.com/",
"https://www.fnac.com/"
"https://www.france24.com/fr/afrique/20260507-comment-industrie-pharmaceutique-indienne-alimente-crise-opio%C3%AFdes-afrique-ouest-sierra-leone-cote-d-ivoire-senegal-ghana-nigeria",
"https://www.service-public.fr/"
],
"static_urls": [
"https://www.service-public.fr/",
"https://www.impots.gouv.fr/",
"https://www.sorbonne-universite.fr/",
"https://www.credit-agricole.fr/",
"https://www.sncf.com/",
"https://www.amazon.fr/",
"https://www.cdiscount.com/"
]
}
}
}

View File

@@ -8,13 +8,37 @@
},
"trust_module": {
"white_urls": [
"https://yahoo-news.com.hk/BBCChineseNews/41597/?yptr=yahoo",
"https://www.hktvmall.com/",
"https://hk.news.yahoo.com/%E5%8C%97%E9%9F%93%E5%AE%A3%E7%A8%B1%E4%B8%8D%E5%8F%97%E7%A6%81%E6%AD%A2%E6%A0%B8%E5%AD%90%E6%93%B4%E6%95%A3%E6%A2%9D%E7%B4%84%E7%B4%84%E6%9D%9F-%E6%93%81%E6%A0%B8%E5%9C%B0%E4%BD%8D%E4%B8%8D%E8%AE%8A-015001464.html",
"https://www.gov.hk/",
"https://hk.news.yahoo.com/%E5%A4%9A%E6%AC%A1%E8%B7%A8%E5%A2%83%E9%81%8B%E9%80%81%E5%85%B12-8%E5%84%84%E7%8F%BE%E9%87%91%E4%BE%86%E6%B8%AF-%E5%85%A9%E5%A9%A6%E6%B6%89%E6%B4%97%E9%BB%91%E9%8C%A2%E7%BD%AA%E6%88%90%E5%88%A4%E5%9B%9A-200000029.html",
"https://hk.news.yahoo.com/%E6%B8%AF%E9%90%B5ai%E6%9C%8D%E5%8B%99%E5%A4%A7%E4%BD%BF-tracy-%E5%8D%87%E7%B4%9A-%E5%A2%9E%E8%A7%A3%E6%B1%BA%E5%87%BA%E5%85%A5%E9%96%98%E5%95%8F%E9%A1%8C%E5%8F%8A%E9%9B%BB%E5%AD%90%E8%A3%9C%E7%A5%A8%E5%8A%9F%E8%83%BD-200000283.html",
"https://hk.news.yahoo.com/%E4%B8%AD%E6%9D%B1%E6%88%B0%E7%81%AB%E8%88%87%E8%B2%AA%E8%85%90%E9%86%9C%E8%81%9E%E9%9B%99%E6%89%93%E6%93%8A-%E8%8F%B2%E5%BE%8B%E8%B3%93%E7%B6%93%E6%BF%9F%E6%88%90%E9%95%B7%E5%89%B55%E5%B9%B4%E4%BD%8E%E9%BB%9E-050502359.html",
"https://hk.news.yahoo.com/%E8%B5%A4%E6%9F%B1%E5%9C%8B%E9%9A%9B%E5%AD%B8%E6%A0%A14%E6%AD%B2%E7%AB%A5%E7%96%91%E9%81%AD%E9%9D%9E%E7%A6%AE-%E6%A0%A1%E6%96%B9-%E7%84%A1%E8%AD%89%E6%93%9A%E6%A0%A1%E5%85%A7%E7%99%BC%E7%94%9F-200000514.html",
"https://yahoo-news.com.hk/BBCChineseNews/41595/?yptr=yahoo",
"https://www.hko.gov.hk/",
"https://www.hsbc.com.hk/",
"https://hk.news.yahoo.com/%E8%8B%B1%E5%9C%8B%E5%9C%B0%E6%96%B9%E9%81%B8%E8%88%89%E7%99%BB%E5%A0%B4-%E9%81%B8%E5%89%8D%E6%B0%91%E8%AA%BF-%E5%9F%B7%E6%94%BF%E9%BB%A8%E5%B7%A5%E9%BB%A8%E5%A4%A7%E8%88%89%E6%8C%AB%E6%95%97-133501173.html",
"https://www.police.gov.hk/",
"https://hk.news.yahoo.com/%E5%B7%9D%E6%99%AE%E5%86%8D%E5%90%91%E4%BC%8A%E6%9C%97%E6%94%BE%E8%A9%B1-%E6%9C%AA%E7%B0%BD%E5%8D%94%E8%AD%B0%E5%B0%B1%E5%8A%A0%E9%87%8D%E8%BB%8D%E4%BA%8B%E8%A1%8C%E5%8B%95-000501399.html",
"https://yahoo-news.com.hk/BBCChineseNews/41596/?yptr=yahoo",
"https://www.mtr.com.hk/",
"https://hk.news.yahoo.com/%E9%9F%93%E8%B2%A8%E8%BC%AA%E8%8D%B7%E8%8E%AB%E8%8C%B2%E6%B5%B7%E5%B3%BD%E8%B5%B7%E7%81%AB-%E4%BC%8A%E6%9C%97%E5%90%A6%E8%AA%8D%E6%B6%89%E5%85%A5-060503126.html",
"https://hk.news.yahoo.com/8%E5%B9%B4%E5%89%8D%E5%96%AA%E5%AD%90-%E5%8E%BB%E5%B9%B4%E9%9B%A2%E5%A9%9A-%E5%B0%8D%E7%94%9F%E6%B4%BB%E7%B5%95%E6%9C%9B-%E4%B8%83%E6%97%AC%E6%BC%A2%E7%96%91%E6%AE%BA%E5%A6%BB%E5%86%8D%E4%B8%8A%E5%90%8A%E4%BA%A1-200000965.html",
"https://www.hku.hk/",
"https://hk.news.yahoo.com/%E8%AA%87%E5%A4%A7%E8%B3%BC%E8%BB%8A%E9%A6%96%E6%AC%A1%E7%99%BB%E8%A8%98%E7%A8%85%E8%A9%90%E9%A8%99%E5%85%AC%E5%8F%B8-%E4%B8%8A%E5%B8%82%E9%9B%86%E5%9C%98%E5%89%8D%E4%B8%BB%E5%B8%AD%E5%9B%9A2%E5%B9%B4-200000420.html",
"https://hk.news.yahoo.com/%E9%A6%96%E5%AD%A3%E5%A0%B1%E6%8D%B7-%E5%A4%A7%E8%A1%8C%E9%BD%8A%E8%BD%89%E6%A8%82%E8%A7%80-%E6%B8%AF%E5%85%A8%E5%B9%B4gdp%E7%9C%8B%E5%8D%874-6-200000412.html",
"https://hk.news.yahoo.com/%E8%87%AA%E8%A1%9B%E9%9A%8A%E5%9C%A8%E7%BE%8E%E8%8F%B2%E8%BB%8D%E6%BC%94%E5%B0%84%E5%BD%88-%E5%BC%95%E7%99%BC%E4%B8%AD%E5%9C%8B%E4%B8%8D%E6%BB%BF-063502563.html"
],
"static_urls": [
"https://www.gov.hk/",
"https://www.hko.gov.hk/",
"https://www.scmp.com/",
"https://www.hk01.com/",
"https://zh.wikipedia.org/wiki/Special:Random",
"https://www.hktvmall.com/",
"https://www.mtr.com.hk/"
"https://www.police.gov.hk/",
"https://www.hku.hk/",
"https://www.hsbc.com.hk/",
"https://www.mtr.com.hk/",
"https://www.hktvmall.com/"
]
}
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Indonesia (Jakarta)", "google_module": { "base_lat": -6.2088, "base_lon": 106.8456, "lang_params": "hl=id-ID&gl=ID", "valid_url_suffix": "co.id" }, "trust_module": { "white_urls": [ "https://www.kompas.com/", "https://www.detik.com/", "https://www.tempo.co/", "https://www.cnnindonesia.com/", "https://www.antaranews.com/", "https://www.setneg.go.id/", "https://www.bi.go.id/", "https://www.kominfo.go.id/", "https://www.ojk.go.id/", "https://www.telkomsel.com/", "https://www.xl.co.id/", "https://www.indosatooredoo.com/", "https://www.tokopedia.com/", "https://shopee.co.id/", "https://www.lazada.co.id/" ], "static_urls": [ "https://www.setneg.go.id/", "https://www.bi.go.id/", "https://www.kominfo.go.id/", "https://www.antaranews.com/", "https://www.kompas.com/" ] } }

View File

@@ -0,0 +1 @@
{ "region_name": "India (Delhi)", "google_module": { "base_lat": 28.6139, "base_lon": 77.2090, "lang_params": "hl=en-IN&gl=IN", "valid_url_suffix": "co.in" }, "trust_module": { "white_urls": [ "https://timesofindia.indiatimes.com/", "https://www.hindustantimes.com/", "https://www.thehindu.com/", "https://indianexpress.com/", "https://www.ndtv.com/", "https://www.indiatoday.in/", "https://www.pib.gov.in/", "https://www.india.gov.in/", "https://www.rbi.org.in/", "https://www.meity.gov.in/", "https://www.airtel.in/", "https://www.jio.com/", "https://www.vodafoneidea.com/", "https://www.flipkart.com/", "https://www.amazon.in/", "https://www.irctc.co.in/" ], "static_urls": [ "https://www.india.gov.in/", "https://www.rbi.org.in/", "https://www.pib.gov.in/", "https://timesofindia.indiatimes.com/", "https://www.thehindu.com/" ] } }

View File

@@ -4,17 +4,36 @@
"base_lat": 35.6812,
"base_lon": 139.7671,
"lang_params": "hl=ja&gl=JP",
"valid_url_suffix": "com"
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://ja.wikipedia.org/wiki/Special:Random",
"https://www.yahoo.co.jp/",
"https://news.yahoo.co.jp/pickup/6579268?source=rss",
"https://news.yahoo.co.jp/pickup/6579265?source=rss",
"https://www.smbc.co.jp/",
"https://www.amazon.co.jp/",
"https://news.yahoo.co.jp/pickup/6579238?source=rss",
"https://www.rakuten.co.jp/",
"https://www.nhk.or.jp/",
"kakaku.com/",
"https://www.goo.ne.jp/",
"https://www.amazon.co.jp/"
"https://www.japan.go.jp/",
"https://www.mhlw.go.jp/",
"https://news.yahoo.co.jp/pickup/6579267?source=rss",
"https://news.yahoo.co.jp/pickup/6579261?source=rss",
"https://news.yahoo.co.jp/pickup/6579249?source=rss",
"https://news.yahoo.co.jp/pickup/6579263?source=rss",
"https://www.jreast.co.jp/",
"https://www.u-tokyo.ac.jp/",
"https://news.yahoo.co.jp/pickup/6579252?source=rss",
"https://www.yahoo.co.jp/"
],
"static_urls": [
"https://www.japan.go.jp/",
"https://www.mhlw.go.jp/",
"https://www.u-tokyo.ac.jp/",
"https://www.smbc.co.jp/",
"https://www.jreast.co.jp/",
"https://www.yahoo.co.jp/",
"https://www.amazon.co.jp/",
"https://www.rakuten.co.jp/"
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Cambodia (Phnom Penh)", "google_module": { "base_lat": 11.5564, "base_lon": 104.9282, "lang_params": "hl=en-KH&gl=KH", "valid_url_suffix": "com.kh" }, "trust_module": { "white_urls": [ "https://www.khmertimeskh.com/", "https://www.phnompenhpost.com/", "https://www.freshnewsasia.com/", "https://www.cambodiadaily.com/", "https://www.akp.gov.kh/", "https://www.gov.kh/", "https://www.nbc.gov.kh/", "https://www.mptc.gov.kh/", "https://www.lazada.com.kh/", "https://shopee.com.kh/", "https://www.smart.com.kh/", "https://www.metfone.com.kh/", "https://www.cellcard.com.kh/" ], "static_urls": [ "https://www.gov.kh/", "https://www.akp.gov.kh/", "https://www.nbc.gov.kh/", "https://www.khmertimeskh.com/", "https://www.phnompenhpost.com/" ] } }

View File

@@ -0,0 +1,36 @@
{
"region_name": "South Korea - Seoul",
"google_module": {
"base_lat": 37.5665,
"base_lon": 126.978,
"lang_params": "hl=ko&gl=KR",
"valid_url_suffix": "co.kr"
},
"trust_module": {
"white_urls": [
"https://www.kbstar.com/",
"https://www.kakao.com/",
"https://www.korea.kr/",
"https://www.naver.com/",
"https://www.coupang.com/",
"https://www.snu.ac.kr/",
"https://www.yonhapnewstv.co.kr/news/MYH20260508120004Ybq",
"https://www.yonhapnewstv.co.kr/news/AKR20260508140850oHT",
"https://www.hometax.go.kr/",
"https://www.yonhapnewstv.co.kr/news/MYH20260508133948kJw",
"https://www.yonhapnewstv.co.kr/news/AKR2026050814114471C",
"https://www.yonhapnewstv.co.kr/news/MYH20260508140418SmI",
"https://www.daum.net/"
],
"static_urls": [
"https://www.korea.kr/",
"https://www.hometax.go.kr/",
"https://www.snu.ac.kr/",
"https://www.kbstar.com/",
"https://www.naver.com/",
"https://www.daum.net/",
"https://www.coupang.com/",
"https://www.kakao.com/"
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Laos (Vientiane)", "google_module": { "base_lat": 17.9757, "base_lon": 102.6331, "lang_params": "hl=en-LA&gl=LA", "valid_url_suffix": "la" }, "trust_module": { "white_urls": [ "https://kpl.gov.la/", "https://www.vientianetimes.org.la/", "https://www.pasaxon.org.la/", "https://www.mof.gov.la/", "https://www.bol.gov.la/", "https://www.mpt.gov.la/", "https://www.laotel.com/", "https://www.unitel.com.la/", "https://www.tplus.la/", "https://www.foodpanda.la/" ], "static_urls": [ "https://kpl.gov.la/", "https://www.vientianetimes.org.la/", "https://www.bol.gov.la/", "https://www.mof.gov.la/", "https://www.laotel.com/" ] } }

View File

@@ -0,0 +1 @@
{ "region_name": "Myanmar (Yangon)", "google_module": { "base_lat": 16.8409, "base_lon": 96.1735, "lang_params": "hl=en-MM&gl=MM", "valid_url_suffix": "com.mm" }, "trust_module": { "white_urls": [ "https://www.mmtimes.com/", "https://www.irrawaddy.com/", "https://www.myanmar-now.org/", "https://elevenmyanmar.com/", "https://www.moi.gov.mm/", "https://www.motc.gov.mm/", "https://www.cbmm.gov.mm/", "https://www.mpt.com.mm/", "https://www.ooredoo.com.mm/", "https://www.telenor.com.mm/", "https://www.shop.com.mm/", "https://www.foodpanda.com.mm/" ], "static_urls": [ "https://www.moi.gov.mm/", "https://www.cbmm.gov.mm/", "https://www.mmtimes.com/", "https://www.irrawaddy.com/" ] } }

View File

@@ -0,0 +1 @@
{ "region_name": "Mongolia (Ulaanbaatar)", "google_module": { "base_lat": 47.8864, "base_lon": 106.9057, "lang_params": "hl=mn-MN&gl=MN", "valid_url_suffix": "mn" }, "trust_module": { "white_urls": [ "https://montsame.mn/", "https://news.mn/", "https://ikon.mn/", "https://gogo.mn/", "https://www.mnb.mn/", "https://www.gov.mn/", "https://www.mongolbank.mn/", "https://www.mta.mn/", "https://www.unitel.mn/", "https://www.skytel.mn/", "https://www.mobinet.mn/" ], "static_urls": [ "https://www.gov.mn/", "https://www.mongolbank.mn/", "https://montsame.mn/", "https://news.mn/" ] } }

View File

@@ -0,0 +1,50 @@
{
"region_name": "Malaysia - Kuala Lumpur",
"google_module": {
"base_lat": 3.139,
"base_lon": 101.6869,
"lang_params": "hl=en-MY&gl=MY",
"valid_url_suffix": "com.my"
},
"trust_module": {
"white_urls": [
"https://www.maybank2u.com.my/",
"https://news.google.com/rss/articles/CBMizgFBVV95cUxQdHd5SHBwLU5CaFNNVDFzWGlOdkhLWm5IcERaMzVFNkxsTHBpWU4wc1g5cHN3Z0NIalphX3hwYXktaWtzMjJFS3hBc3JfZDRITFNpcWlwWVloR0Vfc3g0b3lEX0J5ZDhibWFaRmtUWVRYQmxrVHF0NUNsTXI2bmNoQXphZ3I4M1l0dktub3JTVnA1ZGpzM0wycXJqdEkxZ3NKQ0Y4b1Zwc0RKX2NId19zOFVRdGViV2FTYVBtY2ZCNmExZVNtdkJCNWI0UC1sdw?oc=5",
"https://news.google.com/rss/articles/CBMimgFBVV95cUxQMkRvZFJpT2VDQWJLTktXTlpOLUVRNnoyVC1zYVpxYlR4N0VabnJJVDBiazN5M2owLURieDNrRW1UczVxQy0yYVNYRmdzUEdWWXJGV2JrMnZVYTM4N0hJOHE2VjBrQzUtNGpVWFJzNWszTW52aTdCQmsxcEhSeWREMWdsUEFMd2VaMHcwZktIREdGb0dxTW13Z1B30gGfAUFVX3lxTE9uQzdIWm5KM3RjTnFWZmk2LUhFRFduMFB2M05IeE5IcGpFMFRlVXFCckJSd2puUVI4RllZc0pKZnZETHl5cnpHcnFENTNPbGpWcTdmU3R2bWlRVV9BamFPZlFMYUg4UTY0MzRlZV9HLVVTNFFKcjhIYnlZT2lUdDdpZVJtLU1DUTlOVzdqRUdONHhjQldZLUd1YnpEOEQzdw?oc=5",
"https://news.google.com/rss/articles/CBMitAFBVV95cUxQOFpqNFFqSzFITXFMNDJDcDBob3RjLW1EamtHX1U2REE3Q0NXYXpxdGZTNDBKYVM1YWhnS2gwRXB3dEpNeExyTzBjZndtaXlORWxvRnJhSzh2dzZGQXgtclNXbTEwR2VyU21rbzE2Zno4ejJYUzFUempnT0hpVzY2RmQ4TkRwM2VvOUJRSFd1OXVlb2RNQ2F0YXZ5aTNxUVN2RkpMLWtFMGpHZ1BhVEp2bHNxRmY?oc=5",
"https://www.hasil.gov.my/",
"https://www.pos.com.my/",
"https://news.google.com/rss/articles/CBMipwFBVV95cUxNcGtYWE4xZHdmTUduUTEtamFPSWE4NXF1RG5aQndEQ0E0U3pnbmpmdVRVRmdFN3JsbFVvYVU3aFcwU0dwYWxHUHhPbjZUdkxlLVUzSDZobi10bWNaY2pLeUUwSjVVcWlpVXNGT2puLXR0SlhERDh6QWpURHpkN25PdW5SbkFuSGZUc19MdUlIM0psRDl3RlU1VFJ3Y19BeWJnWTBKNl9UQQ?oc=5",
"https://news.google.com/rss/articles/CBMiugFBVV95cUxPUG03VExSSXBfSFFiX1BzYjZTWmc3amZuMFhYUFBOUHo0NDdBVVRHU05PVTlsMlFFa3B6NVFZQmNGRjFnNWdneFp3VEVVX0J6UTdaUFFvT1kxMGZFS1N2R2VIeFZUdWhpYjZ1NkVqTExacUV4Q0w1YlFqWGpUMjZPYW9YN0xodFR4UENtTi1lMklna0VYeElCeGE3RGlfelJYVVFma0dudFFaeGJpdTBFZkpFQkpVc1FUY2c?oc=5",
"https://news.google.com/rss/articles/CBMi6AFBVV95cUxOT1p5WVZUck5zS0NsTG11V3IyRkdtVktSbzhONmhuZUprMGN4Yy02SDdieHFERlRmTDhVbk9jVmtQZjdYcnd0ODZNS2dBakZLSFk5eTlaWE43TFlObXgtalhUeTM5UXVoMGVXUFNzSEwxUWxRXzNLMWlRVHhvRi04c3lhOG94VEFCLXUtbEN2bTRDR0RpSmQ1bWxqSFltS2dvM3NJaTRneEVwR0I1NGF1TXh1M25KQ1RXWE1sMFNONV91dk5Pd2tVaU5ZbnZIN05qMjVQVXpMWTB4Xzhrakc0Yi1JXzJoTG9F0gHuAUFVX3lxTFAwTUxyZ3FFS0ZwT0M5SnZEQTd5bURnSEt1ZE13ZW13UDZDS0t3V1NhLW0xd1NDcUlDWmZzOE9hQzBYUHJELXh2bU5DcUtfdS0za2ZYRlNVdzQ1UDItaXh6VGlITmRjVk1Ldk5PME1jTTdkVW9CMGhBdnVwcndCU2JqemRqY3QtY0c2T2twb2JNVW5uaTREdThGLUQxN2txVW1fUUZMUHhwcTNHNXMzV2FsNkh2T0Y5dUY2MmxuMjZMcDhrcnJxYnpfUjVQaWpvUFdjYlZNY205QnIwTzdBN2dqano2TGdzUW1iZlhyd0E?oc=5",
"https://news.google.com/rss/articles/CBMizgFBVV95cUxOYjdxZWM1eFZyRDE1MGtDNVZQWi1tYW43VzdDZEw4d1VKZjctZ2JZT1BTaHQySU0yZldtSW96bEpCNVZJWURPREZKdFkxUERYUlE4bThFZG9yU3YyRm9XcjNDdndPWC1mRE4tNDBCN3dxcl9wTTBsNmFTSmlNUzBTb1RMellrczNSSkl6bDZFS3lncF80MVlIb1pNbDFOTEhtakJkdHJsd2l1RWNTalVZa2Vpc0c3TlhqNnNfZGgwTE5iVnRpa3E5d3N2OGp0UQ?oc=5",
"https://www.kwsp.gov.my/",
"https://news.google.com/rss/articles/CBMitgFBVV95cUxQdnBacDNnMVk1MjFqT1BmREdvYVpSdDQtSWQ4emxuZ1hpZ3UxLVlhTzl0MjRoWEJjdnR2M1lwbEZXUjUyZmpJUUVLZW9wN3hmaURaN2pZeUVObTdzeGU2d0IwSkZmeTlQQVFPbFZ1MHBNUkJQbHFINzk2eWJpV29CNVlUOFdHRF8tejg4UU1yZkVLYmJpSnV4em91WHBNMnYyelRzbFIwTUtseTVnZVp4OWZJNVd4QQ?oc=5",
"https://um.edu.my/",
"https://news.google.com/rss/articles/CBMirAFBVV95cUxQQjQ5ZnB3d2Nwa1pzSWVKNmlwbVdwaW9XVG5QVzZCcS1IUFhGeG1VUEctcTByV3RxWXcxZ0pmb3l0aGpjdlJtVjZHSkZ3ZXpoS0VGUHByY2FDNlV0ZFRvbm9fcEt4QW1CTEtLNldnQXBkakp1V21GaFNjWk9tbkNHdzJ6QlBkQzRCNnhpVWdkQXBPMWNva19LVUg0UU1SaXBIUUVxYVFWYjdsMC1B?oc=5",
"https://news.google.com/rss/articles/CBMizwFBVV95cUxNeTRid01BSEpNRUxGcVBMTEd0bjlEOHdZX2FEMjc4c1FxX0poRTZEVG9tbW5yejlEdFFibDg0Vi1QSXoyamdWTzk0N1V4dTBfM0QyeHAybzFFbzlaeWw0V2pXT0JzS29oSWM5Zlp0QTZET3NBSkp6aUtpdVVVb2cyNTgxYldRMGZCc1kzUnZJWHNkN0F3OHJRMm5EX201VWc3Y1BOd3dEOC1rdUYzWHpISkp1aElXRVFCRUozYVBYa0NSU3VBZ3FnZndVVWtkLTQ?oc=5",
"https://news.google.com/rss/articles/CBMiywFBVV95cUxQRE1NRXFnckdTRGdtMmZ2RWtJMjJnenRaUk04WTQ3VFROMlNFSjFLajR5aGhVMWlORlUwRjZYTV80TmFkdEVUalAybHVIYWgxbnlRTG9fTXJxV19hLTdHTS1WWWFxanB4RGJOYUdzSjR0dGZLT1RieTZUbk1NWjF3YTJzM3VnNGl4Mnp3YWxHSmdQWjRUR0J6dVBybTAzcUpUaktSS3MyWUg5cjhOSDBzdjJrdFhlblc2eWdUTVlCS0syOWFUeGdmbV9EZw?oc=5",
"https://www.cimbclicks.com.my/",
"https://www.lazada.com.my/",
"https://www.malaysia.gov.my/",
"https://www.thestar.com.my/",
"https://news.google.com/rss/articles/CBMiYkFVX3lxTE1lYTR4V1lLYjhNSURELWphckVUZG9iSmRKUGttQ29JLWY0QWw5aVNIMTFvVXY2ck1DT24tY1NSaERBOS1QcXFjWml4N2pYd2wtd3E1MGdHU3VUb3E4M2ZOMGRB?oc=5",
"https://news.google.com/rss/articles/CBMivAFBVV95cUxQeTlMTzV2dFczc0FaNy0yemhYaks5a3YtbE5QelFHUmwtYnFORHlvdW1IdEp2ZDdEMkY1QVp3dks2bUN5QVhOQ2NoRHlkT1RaQnp2dzJGZi1pMlRNX0NCcTNWbDBCU1NjNXdRRnBiaVZIbFZFblhoWlprSkhELWNKaHBCcWRvZ3RxZmlBNGZEeUtYV0MteHR4NnpLWjRDaVltdDhKdU9PNHRPdmVaTmRYaFVncF9ZMWJfOG5IRA?oc=5",
"https://news.google.com/rss/articles/CBMitwFBVV95cUxNRVpSblFDZTF0UUlwcW5NTkVrYTEwS29pX191ZzJTMVlaVmRCWXRmNG5XaVRTMXMxSnZMSEx5bTlYcjZVX2JwYklSN2VTWGFiT1JoV1hVZW1xb2dsdTh2cklvY3FvOHFMekJ1cVgwS19QUWFhZXRqRmx4eW1RaWRXVVBBVU8tcFAtR0IxS19EcVVRYVpPdUtqZXZRc2N4cllGMW50UWVvLUYtcmNJTlBhZ0dKOHZSYWc?oc=5",
"https://shopee.com.my/",
"https://news.google.com/rss/articles/CBMirgFBVV95cUxQUnRDeW1NWW94LUZDMUc1Z2QzZzFQMmRBdFUwdG5FUjNUemZQaGt0a3ByenhrWExEUGpvQmpoNzRwd1I0bmRtcWlYUkRFZV9xVEVEZlZlZXYwSnVBMFVBYi1tdTE2cVFybkV6NDZIVXEyRklIUlNMeXlRMWZwcUVYYmZ4X3lOQ3N2MVZYNkh1NHFNVnNlVHZzTC1ZdHdpbnpJM1pQSzQ1bkEzQ0JEVkE?oc=5"
],
"static_urls": [
"https://www.malaysia.gov.my/",
"https://www.hasil.gov.my/",
"https://www.kwsp.gov.my/",
"https://um.edu.my/",
"https://www.maybank2u.com.my/",
"https://www.cimbclicks.com.my/",
"https://www.thestar.com.my/",
"https://shopee.com.my/",
"https://www.lazada.com.my/",
"https://www.pos.com.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://www.firstbanknigeria.com/",
"https://www.gtbank.com/",
"https://punchng.com/japa-nma-president-demands-better-welfare-for-doctors/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.vanguardngr.com/2026/05/2027-jonathan-weighs-presidential-comeback/",
"https://www.vanguardngr.com/2026/05/plateau-killings-wont-continue-mutfwang/",
"https://punchng.com/swaga-leaders-root-for-tinubu-oyebanjis-re-election/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.airtel.com.ng/",
"https://punchng.com/rivers-man-in-police-net-for-defiling-neighbours-teenage-daughter/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.vanguardngr.com/2026/05/farmers-accuse-banks-of-diverting-agric-funds-to-real-estate/",
"https://punchng.com/experts-advocate-collaboration-upskilling-for-career-growth/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.nairaland.com/",
"https://punchng.com/sunbeth-to-launch-70000-mt-cocoa-80000-mt-cashew-processing-plants-in-march-2027/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/borno-attack-claims-two-soldiers-zamfara-ied-blast-kills-six/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.konga.com/",
"https://www.mtn.ng/",
"https://punchng.com/olopade-hails-first-ladys-dedication-to-womens-sports/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.vanguardngr.com/2026/05/ukraines-destructive-footprint-and-the-folly-of-an-african-partnership/",
"https://guardian.ng/",
"https://punchng.com/police-kill-robbery-suspect-rescue-abducted-oyo-farmer/?utm_source=rss.punchng.com&utm_medium=web",
"https://punchng.com/us-to-revoke-passports-of-parents-owing-child-support/?utm_source=rss.punchng.com&utm_medium=web",
"https://www.vanguardngr.com/2026/05/nigeria-now-working-shettima-insists/",
"https://www.jumia.com.ng/",
"https://www.vanguardngr.com/",
"https://www.punchng.com/",
"https://punchng.com/amusan-leads-nigerias-african-athletics-championships-team/?utm_source=rss.punchng.com&utm_medium=web"
],
"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

@@ -0,0 +1,44 @@
{
"region_name": "Netherlands - Amsterdam",
"google_module": {
"base_lat": 52.3676,
"base_lon": 4.9041,
"lang_params": "hl=nl&gl=NL",
"valid_url_suffix": "nl"
},
"trust_module": {
"white_urls": [
"https://nos.nl/l/2613501",
"https://nos.nl/l/2613506",
"https://www.buienradar.nl/",
"https://nos.nl/l/2613519",
"https://nos.nl/l/2613523",
"https://nos.nl/l/2613474",
"https://www.belastingdienst.nl/",
"https://www.ns.nl/",
"https://www.bol.com/",
"https://www.marktplaats.nl/",
"https://nos.nl/l/2613478",
"https://nos.nl/l/2613517",
"https://www.rijksoverheid.nl/",
"https://nos.nl/l/2613524",
"https://nos.nl/l/2613527",
"https://nos.nl/l/2613495",
"https://nos.nl/l/2613522",
"https://www.ing.nl/",
"https://nos.nl/l/2613511",
"https://nos.nl/l/2613529",
"https://nos.nl/l/2613477",
"https://nos.nl/l/2613475"
],
"static_urls": [
"https://www.rijksoverheid.nl/",
"https://www.belastingdienst.nl/",
"https://www.ing.nl/",
"https://www.ns.nl/",
"https://www.bol.com/",
"https://www.marktplaats.nl/",
"https://www.buienradar.nl/"
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Nepal (Kathmandu)", "google_module": { "base_lat": 27.7172, "base_lon": 85.3240, "lang_params": "hl=en-NP&gl=NP", "valid_url_suffix": "com.np" }, "trust_module": { "white_urls": [ "https://kathmandupost.com/", "https://myrepublica.nagariknetwork.com/", "https://thehimalayantimes.com/", "https://www.onlinekhabar.com/", "https://ekantipur.com/", "https://www.ratopati.com/", "https://nepal.gov.np/", "https://mof.gov.np/", "https://www.nrb.org.np/", "https://nta.gov.np/", "https://www.ntc.net.np/", "https://www.ncell.com.np/", "https://www.daraz.com.np/" ], "static_urls": [ "https://nepal.gov.np/", "https://www.nrb.org.np/", "https://kathmandupost.com/", "https://thehimalayantimes.com/", "https://www.onlinekhabar.com/" ] } }

View File

@@ -0,0 +1 @@
{ "region_name": "Philippines (Manila)", "google_module": { "base_lat": 14.5995, "base_lon": 120.9842, "lang_params": "hl=en-PH&gl=PH", "valid_url_suffix": "com.ph" }, "trust_module": { "white_urls": [ "https://www.gmanetwork.com/news/", "https://www.abs-cbn.com/news", "https://www.philstar.com/", "https://newsinfo.inquirer.net/", "https://www.manilatimes.net/", "https://www.rappler.com/" ], "static_urls": [ "https://www.gov.ph/", "https://www.pna.gov.ph/", "https://www.bsp.gov.ph/" ] } }

View File

@@ -0,0 +1 @@
{ "region_name": "Saudi Arabia (Riyadh)", "google_module": { "base_lat": 24.7136, "base_lon": 46.6753, "lang_params": "hl=ar-SA&gl=SA", "valid_url_suffix": "com.sa" }, "trust_module": { "white_urls": [ "https://www.arabnews.com/", "https://www.saudigazette.com.sa/", "https://www.spa.gov.sa/", "https://www.sabq.org/", "https://www.alriyadh.com/", "https://www.my.gov.sa/", "https://www.sama.gov.sa/", "https://www.citc.gov.sa/", "https://www.stc.com.sa/", "https://www.mobily.com.sa/", "https://www.zain.com.sa/", "https://www.noon.com/saudi-en/", "https://www.amazon.sa/", "https://www.jarir.com/", "https://www.hungerstation.com/" ], "static_urls": [ "https://www.my.gov.sa/", "https://www.sama.gov.sa/", "https://www.spa.gov.sa/", "https://www.arabnews.com/", "https://www.saudigazette.com.sa/" ] } }

View File

@@ -8,13 +8,39 @@
},
"trust_module": {
"white_urls": [
"https://www.straitstimes.com/",
"https://www.channelnewsasia.com/",
"https://www.iras.gov.sg/",
"https://www.channelnewsasia.com/singapore/orchard-road-rejuvenation-tourism-stb-6107786",
"https://www.channelnewsasia.com/business/anthropic-weighs-fundraising-near-1-trillion-valuation-ft-reports-6108836",
"https://www.channelnewsasia.com/business/toyota-sees-20-drop-in-annual-profit-iran-war-weighs-6108941",
"https://www.channelnewsasia.com/business/sony-forecasts-lower-gaming-business-sales-amid-memory-price-surge-6108706",
"https://www.gov.sg/",
"https://shopee.sg/",
"https://en.wikipedia.org/wiki/Special:Random",
"https://www.fairprice.com.sg/",
"https://www.dbs.com.sg/"
"https://www.nus.edu.sg/",
"https://www.channelnewsasia.com/singapore/sfa-grace-fu-vegetable-seafood-production-rise-6108556",
"https://www.cpf.gov.sg/",
"https://www.singpass.gov.sg/",
"https://www.channelnewsasia.com/asia/indonesia-mount-dukono-eruption-hikers-trapped-6108851",
"https://www.channelnewsasia.com/brand-studio/food-lovers-guide-hong-kong-6103501",
"https://www.channelnewsasia.com/singapore/ex-sakae-holdings-guilty-misappropriation-bugis-cube-6108766",
"https://www.channelnewsasia.com/singapore/hantavirus-singapore-low-risk-experts-6107476",
"https://www.channelnewsasia.com/business/aws-working-restore-cooling-north-virginia-data-centre-coinbase-impacted-6108826",
"https://www.channelnewsasia.com/sport/copa-libertadores-game-in-colombia-abandoned-due-crowd-trouble-6108936",
"https://www.shopee.sg/",
"https://www.dbs.com.sg/",
"https://www.channelnewsasia.com/business/japan-intervened-in-forex-market-again-during-may-holidays-source-says-6108691",
"https://www.channelnewsasia.com/east-asia/bear-attack-fatal-japan-first-year-iwate-prefecture-6108681",
"https://www.channelnewsasia.com/commentary/hantavirus-cruise-ship-death-risk-pandemic-investigation-6108771",
"https://www.channelnewsasia.com/women/help-heart-attack-symptoms-women-singapore-6108571",
"https://www.fairprice.com.sg/"
],
"static_urls": [
"https://www.gov.sg/",
"https://www.cpf.gov.sg/",
"https://www.iras.gov.sg/",
"https://www.singpass.gov.sg/",
"https://www.nus.edu.sg/",
"https://www.dbs.com.sg/",
"https://www.shopee.sg/",
"https://www.fairprice.com.sg/"
]
}
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "Thailand (Bangkok)", "google_module": { "base_lat": 13.7563, "base_lon": 100.5018, "lang_params": "hl=th-TH&gl=TH", "valid_url_suffix": "co.th" }, "trust_module": { "white_urls": [ "https://www.bangkokpost.com/", "https://www.nationthailand.com/", "https://www.thairath.co.th/", "https://www.khaosod.co.th/", "https://www.matichon.co.th/", "https://www.thaigov.go.th/", "https://www.bot.or.th/", "https://www.set.or.th/", "https://www.lazada.co.th/", "https://shopee.co.th/", "https://www.true.th/", "https://www.dtac.co.th/", "https://www.ais.th/" ], "static_urls": [ "https://www.thaigov.go.th/", "https://www.bot.or.th/", "https://www.set.or.th/", "https://www.bangkokpost.com/", "https://www.thairath.co.th/" ] } }

View File

@@ -0,0 +1,46 @@
{
"region_name": "Turkey (Istanbul)",
"google_module": {
"base_lat": 41.0082,
"base_lon": 28.9784,
"lang_params": "hl=tr-TR&gl=TR",
"valid_url_suffix": "com.tr"
},
"trust_module": {
"white_urls": [
"https://www.hurriyet.com.tr/kelebek/fakir-hausgerate-ile-lezzetli-tarifler/sogan-dolmasi-43163357",
"https://www.ziraatbank.com.tr/",
"https://www.hurriyet.com.tr/resmi-ilanlar/demirci-asliye-hukuk-mahkemesi-43168526",
"https://www.sahibinden.com/",
"https://www.hurriyet.com.tr/gundem/deasa-propaganda-gozaltilari-43168711",
"https://www.hurriyet.com.tr/kelebek/televizyon/taciz-davasi-unlu-ciftin-ruya-evliligini-sarsti-o-soylenip-duruyor-kocasinin-hic-sesi-cikmiyor-43167352",
"https://www.hurriyet.com.tr/lezizz/islak-kek-tarifi-videolu-42985021",
"https://www.hurriyet.com.tr/resmi-ilanlar/bakirkoy-16-agir-ceza-mahkemesi-43168492",
"https://www.hurriyet.com.tr/lezizz/tavuk-sote-tarifi-videolu-42940328",
"https://www.hurriyet.com.tr/sporarena/arda-turanin-shakhtari-konferans-ligine-veda-etti-final-crystal-palace-rayo-vallecano-43168679",
"https://www.hurriyet.com.tr/gundem/bakan-guler-acikladi-yildirimin-saha-testleri-yakinda-43168644",
"https://www.turkiye.gov.tr/",
"https://www.hurriyet.com.tr/resmi-ilanlar/t-c-golcuk-1-sulh-hukuk-mah-satis-memurlugu-43168418",
"https://www.milliyet.com.tr/",
"https://www.hurriyet.com.tr/",
"https://www.garantibbva.com.tr/",
"https://www.hurriyet.com.tr/resmi-ilanlar/istanbul-12-aile-mahkemesi-43168447",
"https://www.trendyol.com/",
"https://www.hurriyet.com.tr/dunya/live-israile-sizma-girisimi-iran-ordusu-dusmani-sasirtacak-planlara-sahibiz-beyrut-vuruldu-43167937",
"https://www.hurriyet.com.tr/kelebek/stil/100-milyon-dolarlik-konser-43168740",
"https://www.hurriyet.com.tr/gundem/baba-o-cani-hala-yakalanmadi-mi-43168660",
"https://www.hurriyet.com.tr/dunya/yaz-gelmeden-rekor-geldi-43167865",
"https://www.hepsiburada.com/"
],
"static_urls": [
"https://www.turkiye.gov.tr/",
"https://www.ziraatbank.com.tr/",
"https://www.sahibinden.com/",
"https://www.trendyol.com/",
"https://www.hepsiburada.com/",
"https://www.garantibbva.com.tr/",
"https://www.hurriyet.com.tr/",
"https://www.milliyet.com.tr/"
]
}
}

View File

@@ -0,0 +1,48 @@
{
"region_name": "Taiwan - Taipei",
"google_module": {
"base_lat": 25.033,
"base_lon": 121.5654,
"lang_params": "hl=zh-TW&gl=TW",
"valid_url_suffix": "com.tw"
},
"trust_module": {
"white_urls": [
"https://news.google.com/rss/articles/CBMiWkFVX3lxTE53M0JIWkNEVXZFSGRGRy0tUzRMOXdyOC1EX2NqVmV6aDBMYU95aGZ3d2lUYnoycnctejlfSzRkVFBvVFJ2Q3RGWXNKd1dVb2dBWTBEZm9YX0x6UdIBX0FVX3lxTE5iZ3lRa1FKenQxUFFKdks2eHNvZzNIODJJUGlRZ0h4VDBUcTZKdGtyN0VaSURFREJieHN5SGVfY2xiVERwQ3JfdFQyal9EMzNsWDhPMFJhYXdkNldYQjNr?oc=5",
"https://www.ntu.edu.tw/",
"https://news.google.com/rss/articles/CBMiTkFVX3lxTE1pZHFUdUQyUGlqMG5McG5CV015R19xS1VJTGVPX1NZRDJ0NlNXZ3V3U1pyVy1ZSWJxREJkZHVheE1mZlJmRGRZc1dXUHk4dw?oc=5",
"https://www.gov.tw/",
"https://www.cathaybk.com.tw/",
"https://www.momoshop.com.tw/",
"https://www.pchome.com.tw/",
"https://news.google.com/rss/articles/CBMiWkFVX3lxTFBKUWF6NWdnQjRSd0xXYkRaUUlhNVNhZ3ZlTjZubmJDcUJLdERmYk1FbW1pSXJEcmNtUVl2QXRuQ0p2TmNJY0cwNzNWOVZHanU5U1I5cGdNRW53UdIBX0FVX3lxTE4zWXZNS1ZaUldZMG5FSENrMVVPaVE2QVZobDFUdFJJWTlsdGxOcmNwYmNHS1k5T0FhMG9SbDM2dTdoZlFKeFFFZ2pONkVtS2NKeXdCbnNRTkZramNMSm44?oc=5",
"https://www.dcard.tw/",
"https://news.google.com/rss/articles/CBMiUkFVX3lxTE1LUlRyYmwzcjU5X0JCZ21JZnlnal8yUmdxUHk0V0xwY0VDRGRNWXhhMTd1WHFnZ0VnR1hPVVdjUlhITjNSeVZMci1LQ1ZfcWVZMFHSAW5BVV95cUxNSXpMU1p1akxHVzB2dV9wcTlIYVIxUWdDSFlCclAyeExfSk05QXJQSVk3UEM0Y2pZbTl1UzE3MjBISF9PVkNOMFVPakY4UXlSQklGT0N5dHM3Z2toaFpOVlNBMXUxYUl4VDl5UFVpUQ?oc=5",
"https://news.google.com/rss/articles/CBMilwFBVV95cUxNbEl2RXdNOUJSZkJ1Ml84blF4ZGtoNVFBRXBQZmNtbGdydFBIaFJuSWtvcGNGcXkzUHFjVWdyZ0xBYXhQTGwzUFIwSE12VnUzeURCVGZlMVVNUXFuSnBfZWVsbjItSEQ1S0w4LTdjbjBKQ2NsQWtvYnBkejE4VkVNMGowX05sOGhlRDlMZWV6RVA2NE8zNkE4?oc=5",
"https://news.google.com/rss/articles/CBMi7gJBVV95cUxONkE4eWdTN092NmtRYlFSZ3lwLVlCOS1zTFYxYnlxVTZTdnJIVGZsNmtxXzdwVXIxUnVEaEt1NWoySmJhVjNFeEhZb0RDZDdrT1loTThOVk16ZG1BVi1jZTQ2cGJNbkJLbldwdEVZOGQ0TFYxbnlxbEk2SGNzTXdCbHJCVi0tQUlrTkk1VnQ1bl96V09lWDNLWTZfUDR1b0FZMWh2VGwtOTU1Nkg3YnRIZzFkbzg2MktJb2RkaXJnRnFoMGpiYlFRaHd0NDE4NFlpZ1NlNi1HQVdwSUM1V2ZfVzAzVGlVUm1FRy1OQmQzb2x5eV9lYWVTWThCQ095Z0EyTFM2UUYxb29VWnJUTTV5T1RnOXVEWVlRendpekd2TXZoUlRnMy1PRE9RVE1Lc2tTdGxkODJjZm83WVoxTHFTQTBxalh4Q2twZG9BZFJQckJBTkQ5dnlJZE50ZUI2dC1nbVNzaGhXTS1rdWZXcEE?oc=5",
"https://www.post.gov.tw/",
"https://tw.yahoo.com/",
"https://news.google.com/rss/articles/CBMiZEFVX3lxTE53RHJZRmZlOXdMOHRVbnRXTnRvTkNTRGd4VWpabVVJZl9YWGpwR0lYQ0Y5ZmhvREJkTjk4ekszQ2dYak40TEVZZ2M0VktKcVY2YWtPNjRhT0xKSm9WVlhDU3BHcXDSAWpBVV95cUxQTlNKYm9seXhraHl3Y0tQTVppaE8wODF1Y0taTTNic3lGUjUwN3dMOXN1TnI5LWRvaXZRSG1ZSXJoNHo1emd1MmFKdzM0anJGVERkX0llclV5OXI3UTYtQjBQTXRfWmVwb1p3?oc=5",
"https://news.google.com/rss/articles/CBMiZEFVX3lxTE5fWXE5WjVmdTJycGFQbW54NE1kS3QxS3FPWHM0SW5FZXFwRHdqb29laXIwdU51U1F6RjBNbUpEc01hMFZPZjNMVzV6bVg5MDZkU0tJcFJVeEgxMm5kVkNqaUxJYWTSAWpBVV95cUxPOG5zd1VTeVhyMGZySEhwdGRHSVdfSUlGWnhIY0JKb0tFeVNzMFg0U2gwcVZpT1IwUGJxNUg4bmd1bjlNTjNNYkppRkhVd0xXamRVem9wU20wbU9INFYxSlpzR0JqNThCOW13?oc=5",
"https://news.google.com/rss/articles/CBMiUEFVX3lxTE9vNEltejR0bHI1RVV3UnNhRDNOSTJhZDNHN3VubzdzclFDR1phVGxWMXpyVU1vWWEzM3pOdFdGZG1BRDI5TV9BclduczBodm1o?oc=5",
"https://www.thsrc.com.tw/",
"https://news.google.com/rss/articles/CBMiZkFVX3lxTE1pN2luTXc0MEFHRWV6T2hhT1p3Yi1sSktURVkyMXdKYnN4a2liUXE2NnlBbWRHWUlNcHIybEhZaE1sU1VIcmliRXAweUdONHY2RElHUHdETmdOQ2hmNThvNUpBcFh4QdIBa0FVX3lxTFAwbWoyd3F5YU16NF9wM2xlNE1pOU0zODROZkx6SHl3SVRXamtuR1M1WDd1QV9QeTlfcmZjOG1MMzlxbXJoZHBJdTg1WF9nM0hXS3JCR0xGZFM5MFhoRFZKVkxCd09QREp4enh3?oc=5",
"https://news.google.com/rss/articles/CBMiswJBVV95cUxQU05iM0VGODI2RkFLbGY4SnNIT0ZQRnA4Z1pVbFFBQWVrQ00zcC1SNzZPLTh6ZUJ2LVRMdjNqaVVDWWlzd2R0UHJHQUJEN3FucE5mRHo1d1NYRkRHcVNQSnFZb1RDdEtrWm1YMnJUUnVSMV9OUHp1U0R6WnhYbmUtaXc2RVdWb2VSeFp6NzhmYkJIR1l2NUdDX3kxbDJCUTluM1NCNUpUMGJ1Q3cwM2V6YUtqamMzTlpBNUhjMzgwUWw1bVA2MU9FMXJ1dXVsVFMtRVlHYklsQmsyVHZMT2tJaV9pNUpQeFY4LVotSkczWFZnZGFmSTlLVER5OThaNmtxREtIcVNfVXNmeVFJdkptanRISnR1dTRndV9sdlVjZVhUbnkwOUY1TFNYSmNDRXNkX05r?oc=5",
"https://news.google.com/rss/articles/CBMiigFBVV95cUxQUjVuSUttNGoyVjZMZUszdDdXLVFHVkEzbHpOSnFucnFFR1RMck9ZR09wSHBpVy1tY2FZUmxqSVUtd05xaXhiZENKcWczZm5yY0xlbjJmYlZIeHdBRXFUQkFjMHU4TjNMaGdBMWdhMmkyOWxZWnNFMGFhX0xCVHN3NEd5YmNmT0hkclE?oc=5",
"https://news.google.com/rss/articles/CBMiW0FVX3lxTE9ibXBOQVBnZERJS2Y5Mjl3RUpJSUdsUnYtUDN4bV9hd1NYUGY2RE01TWgwbzN4d2ZmOXVnYUxuUzdvcmNEUmJZYms1cjdaTHZPM2g5UHFlaFhZSnc?oc=5",
"https://news.google.com/rss/articles/CBMiUEFVX3lxTE5HdTZlRHFIaXN5aFowNlBwRVB6NjhYbVlLRUFoQ0FocnluNUV5SG91dlRQdlFpTGJFRS1PbXh5RzFmZmdhZVM0a1E3REtfQmw00gFWQVVfeXFMTnMtXzFYSGVvV1ROVlh4RFRPOUljSFV2V2lhRkxSRkNoVGNsM3hWczdxNnRBYlkxTV9lMXRNaWROYUZyNHdvQmYzbFNwVlBMd2U1aHlBSHc?oc=5",
"https://news.google.com/rss/articles/CBMiW0FVX3lxTE5HLVBpSzNaZ0Q1bHZQYmdRYTJXeWlfdl8wX3FJcmxjdGlJNkF0RG16YXYweTBOYlBFdVl3aWtqTk1wanEwNXQ2d25XN3hLNjlYaHNsMWhnYXJmN2s?oc=5"
],
"static_urls": [
"https://www.gov.tw/",
"https://www.post.gov.tw/",
"https://www.ntu.edu.tw/",
"https://www.cathaybk.com.tw/",
"https://www.thsrc.com.tw/",
"https://tw.yahoo.com/",
"https://www.momoshop.com.tw/",
"https://www.pchome.com.tw/",
"https://www.dcard.tw/"
]
}
}

View File

@@ -0,0 +1,46 @@
{
"region_name": "United Kingdom - Coventry",
"google_module": {
"base_lat": 52.4068,
"base_lon": -1.5197,
"lang_params": "hl=en&gl=GB",
"valid_url_suffix": "co.uk"
},
"trust_module": {
"white_urls": [
"https://www.bbc.com/sport/football/articles/c5yr4vle9w2o?at_medium=RSS&at_campaign=rss",
"https://www.postoffice.co.uk/",
"https://www.nhs.uk/",
"https://www.bbc.com/news/articles/c62nq678nyzo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c707edw539ro?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c98r199e195o?at_medium=RSS&at_campaign=rss",
"https://www.amazon.co.uk/",
"https://www.bbc.com/news/articles/cdrpx8pl36vo?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/c1j74x9pe0eo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/ce8pyyz5e0ro?at_medium=RSS&at_campaign=rss",
"https://www.barclays.co.uk/",
"https://www.ox.ac.uk/",
"https://www.bbc.com/news/articles/c4g0d1wp6g8o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c1e2pdw1808o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c626zyywxjno?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cwy2gj2jlr8o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/c98r4218l73o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cn4pyrnmplgo?at_medium=RSS&at_campaign=rss",
"https://www.ebay.co.uk/",
"https://www.gov.uk/",
"https://www.bbc.com/news/articles/cp3pww9g0p5o?at_medium=RSS&at_campaign=rss",
"https://www.nationalrail.co.uk/"
],
"static_urls": [
"https://www.gov.uk/",
"https://www.nhs.uk/",
"https://www.ox.ac.uk/",
"https://www.barclays.co.uk/",
"https://www.postoffice.co.uk/",
"https://www.nationalrail.co.uk/",
"https://www.amazon.co.uk/",
"https://www.ebay.co.uk/"
]
}
}

View File

@@ -8,13 +8,39 @@
},
"trust_module": {
"white_urls": [
"https://www.bbc.co.uk/",
"https://www.nationalrail.co.uk/",
"https://www.bbc.com/news/articles/c62nq678nyzo?at_medium=RSS&at_campaign=rss",
"https://www.barclays.co.uk/",
"https://www.gov.uk/",
"https://www.amazon.co.uk/",
"https://www.theguardian.com/uk",
"https://www.ebay.co.uk/",
"https://www.bbc.com/news/articles/c707edw539ro?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c1e2pdw1808o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/ce8pyyz5e0ro?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/c5yr4vle9w2o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c1j74x9pe0eo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/c98r199e195o?at_medium=RSS&at_campaign=rss",
"https://www.nhs.uk/",
"https://en.wikipedia.org/wiki/Special:Random",
"https://www.ox.ac.uk/",
"https://www.bbc.com/news/articles/c4g0d1wp6g8o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cp3pww9g0p5o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cn4pyrnmplgo?at_medium=RSS&at_campaign=rss",
"https://www.amazon.co.uk/",
"https://www.postoffice.co.uk/",
"https://www.bbc.com/news/articles/c626zyywxjno?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/sport/football/articles/c98r4218l73o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cdrpx8pl36vo?at_medium=RSS&at_campaign=rss",
"https://www.bbc.com/news/articles/cwy2gj2jlr8o?at_medium=RSS&at_campaign=rss",
"https://www.bbc.co.uk/news/10628994?at_medium=RSS&at_campaign=rss"
],
"static_urls": [
"https://www.gov.uk/",
"https://www.nhs.uk/",
"https://www.ox.ac.uk/",
"https://www.barclays.co.uk/",
"https://www.postoffice.co.uk/",
"https://www.nationalrail.co.uk/",
"https://www.amazon.co.uk/",
"https://www.ebay.co.uk/"
]
}
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Arizona (Phoenix)",
"google_module": {
"base_lat": 33.4484,
"base_lon": -112.074,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.homedepot.com/",
"https://www.zillow.com/",
"https://www.usa.gov/",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.indeed.com/",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.weather.gov/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.irs.gov/",
"https://www.target.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -8,13 +8,43 @@
},
"trust_module": {
"white_urls": [
"https://en.wikipedia.org/wiki/Special:Random",
"https://www.yahoo.com/",
"https://www.target.com/",
"https://www.npr.org/",
"https://www.weather.com/",
"https://www.walmart.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.chase.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.amazon.com/",
"https://www.cdc.gov/"
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.usps.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.harvard.edu/",
"https://www.target.com/",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.usa.gov/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cdc.gov/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -8,14 +8,43 @@
},
"trust_module": {
"white_urls": [
"https://en.wikipedia.org/wiki/Special:Random",
"https://www.yahoo.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.target.com/",
"https://www.npr.org/",
"https://www.weather.com/",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.harvard.edu/",
"https://www.usps.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.amazon.com/",
"https://www.chase.com/",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cdc.gov/",
"https://www.mercurynews.com/"
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.walmart.com/",
"https://www.bankofamerica.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Florida (Miami)",
"google_module": {
"base_lat": 25.7617,
"base_lon": -80.1918,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.target.com/",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.homedepot.com/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.weather.gov/",
"https://www.amazon.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.chase.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.indeed.com/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.irs.gov/"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Georgia (Atlanta)",
"google_module": {
"base_lat": 33.749,
"base_lon": -84.388,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.target.com/",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.irs.gov/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.walmart.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.zillow.com/",
"https://www.amazon.com/",
"https://www.weather.gov/",
"https://www.homedepot.com/"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1 @@
{ "region_name": "USA (Hawaii - Honolulu)", "google_module": { "base_lat": 21.3069, "base_lon": -157.8583, "lang_params": "hl=en-US&gl=US", "valid_url_suffix": "com" }, "trust_module": { "white_urls": [ "https://www.staradvertiser.com/", "https://www.hawaiinewsnow.com/", "https://www.khon2.com/", "https://www.kitv.com/", "https://www.civilbeat.org/", "https://www.hawaii.gov/", "https://health.hawaii.gov/", "https://www.hawaiitourismauthority.org/", "https://www.hawaiianairlines.com/", "https://www.costco.com/", "https://www.walmart.com/", "https://www.amazon.com/" ], "static_urls": [ "https://www.hawaii.gov/", "https://health.hawaii.gov/", "https://www.staradvertiser.com/", "https://www.hawaiinewsnow.com/" ] } }

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Iowa (Council Bluffs)",
"google_module": {
"base_lat": 41.2619,
"base_lon": -95.8608,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.weather.gov/",
"https://www.zillow.com/",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.indeed.com/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.walmart.com/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.homedepot.com/",
"https://www.target.com/",
"https://www.usa.gov/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Warrenville",
"google_module": {
"base_lat": 41.8164,
"base_lon": -88.1748,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.walmart.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.chase.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.usa.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.usps.com/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Charlotte",
"google_module": {
"base_lat": 35.2271,
"base_lon": -80.8431,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cdc.gov/",
"https://www.walmart.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.usa.gov/",
"https://www.harvard.edu/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.bankofamerica.com/",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.irs.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - New Jersey (Newark)",
"google_module": {
"base_lat": 40.7357,
"base_lon": -74.1724,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.indeed.com/",
"https://www.homedepot.com/",
"https://www.usa.gov/",
"https://www.zillow.com/",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.walmart.com/",
"https://www.irs.gov/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.target.com/",
"https://www.chase.com/",
"https://www.weather.gov/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Las Vegas",
"google_module": {
"base_lat": 36.1699,
"base_lon": -115.1398,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.amazon.com/",
"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.usps.com/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.walmart.com/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.target.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"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/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.irs.gov/",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.harvard.edu/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - New York",
"google_module": {
"base_lat": 40.7128,
"base_lon": -74.006,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.indeed.com/",
"https://www.walmart.com/",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.target.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.irs.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.zillow.com/",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.homedepot.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.usa.gov/"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Ohio (Columbus)",
"google_module": {
"base_lat": 39.9612,
"base_lon": -83.0007,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.usa.gov/",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.target.com/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.irs.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.weather.gov/",
"https://www.amazon.com/",
"https://www.indeed.com/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.homedepot.com/",
"https://www.chase.com/",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.zillow.com/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Bend",
"google_module": {
"base_lat": 44.0582,
"base_lon": -121.3153,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.target.com/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.chase.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/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.amazon.com/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.usps.com/",
"https://www.harvard.edu/",
"https://www.bankofamerica.com/"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

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.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.nytimes.com/",
"https://www.texas.gov/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.dallasnews.com/",
"https://www.foxnews.com/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.chase.com/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.target.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/"
],
"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/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.houstontx.gov/",
"https://www.houstonchronicle.com/",
"https://www.mdanderson.org/",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.nasa.gov/",
"https://www.rice.edu/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer"
],
"static_urls": [
"https://www.houstontx.gov/",
"https://www.houstonchronicle.com/",
"https://www.rice.edu/",
"https://www.mdanderson.org/",
"https://www.nasa.gov/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Salt Lake City",
"google_module": {
"base_lat": 40.7608,
"base_lon": -111.891,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.harvard.edu/",
"https://www.cdc.gov/",
"https://www.usa.gov/",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.chase.com/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html",
"https://www.usps.com/",
"https://www.irs.gov/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.bankofamerica.com/",
"https://www.walmart.com/",
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Virginia (Ashburn)",
"google_module": {
"base_lat": 39.0438,
"base_lon": -77.4874,
"lang_params": "hl=en-US&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"https://www.cnn.com/2023/04/18/media/netflix-dvd-red-envelopes/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.walmart.com/",
"https://www.indeed.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.homedepot.com/",
"https://www.chase.com/",
"https://www.amazon.com/",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.weather.gov/",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.zillow.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/h_8d51e3ae2714edaa0dace837305d03b8",
"https://www.target.com/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.weather.gov/",
"https://www.chase.com/",
"https://www.indeed.com/",
"https://www.zillow.com/",
"https://www.walmart.com/",
"https://www.target.com/",
"https://www.amazon.com/",
"https://www.homedepot.com/"
]
}
}

View File

@@ -0,0 +1,50 @@
{
"region_name": "United States - Seattle",
"google_module": {
"base_lat": 47.6062,
"base_lon": -122.3321,
"lang_params": "hl=en&gl=US",
"valid_url_suffix": "com"
},
"trust_module": {
"white_urls": [
"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/media/netflix-dvd-red-envelopes/index.html",
"https://www.bankofamerica.com/",
"https://www.cnn.com/2023/04/18/politics/white-house-toddler/index.html",
"https://www.chase.com/",
"https://www.npr.org/2026/05/07/nx-s1-5803121/trump-fema-reform-wildfire-flood-hurricane",
"https://www.cnn.com/2023/04/17/opinions/us-tax-system-wealthy-disney-pearl/index.html",
"https://www.harvard.edu/",
"https://www.cnn.com/cnn-underscored/reviews/best-bidets?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/2023/04/17/opinions/sudan-revolution-to-civil-war-lynch/index.html",
"https://www.cnn.com/2023/04/18/media/fox-dominion-settlement/index.html",
"https://www.walmart.com/",
"https://www.irs.gov/",
"https://www.cnn.com/travel/article/high-speed-rail-us/index.html",
"https://www.cnn.com/cnn-underscored/home/how-to-compost-at-home?iid=CNNUnderscoredHPcontainer",
"https://www.cnn.com/style/article/ai-photo-win-sony-scli-intl/index.html",
"https://www.cnn.com/cnn-underscored/deals/dyson-supersonic-sale-2023-04-17?iid=CNNUnderscoredHPcontainer?iid=CNNUnderscoredHPcontainer",
"https://www.target.com/",
"https://www.cnn.com/2023/04/18/entertainment/michelle-yeoh-star-trek-section-31/index.html",
"https://www.usa.gov/",
"https://www.cnn.com/business/live-news/fox-news-dominion-trial-04-18-23/index.html",
"https://www.amazon.com/",
"https://www.usps.com/",
"https://www.cnn.com/2023/04/18/us/undocumented-immigrants-taxes-cec/index.html"
],
"static_urls": [
"https://www.usa.gov/",
"https://www.irs.gov/",
"https://www.cdc.gov/",
"https://www.harvard.edu/",
"https://www.chase.com/",
"https://www.bankofamerica.com/",
"https://www.amazon.com/",
"https://www.target.com/",
"https://www.walmart.com/",
"https://www.usps.com/"
]
}
}

View File

@@ -0,0 +1,44 @@
{
"region_name": "Vietnam - Hanoi",
"google_module": {
"base_lat": 21.0285,
"base_lon": 105.8542,
"lang_params": "hl=vi&gl=VN",
"valid_url_suffix": "vn"
},
"trust_module": {
"white_urls": [
"https://vnexpress.net/tiem-botox-thanh-quan-dieu-tri-roi-loan-giong-5071319.html",
"https://www.vietcombank.com.vn/",
"https://vnexpress.net/hang-nghin-nguoi-xep-hang-du-vietnam-gameverse-2026-5071444.html",
"https://vnexpress.net/dau-hieu-nao-o-mat-co-the-canh-bao-dot-quy-5071404.html",
"https://vnexpress.net/hoa-khoi-cau-long-nguyen-thuy-linh-giao-luu-runner-vm-can-tho-2026-5071205.html",
"https://vnexpress.net/argentina-chay-dua-truy-vet-nguon-lay-hantavirus-sau-o-dich-tren-tau-du-lich-5071347.html",
"https://vnexpress.net/ganh-nang-cua-hoang-tu-nhat-ban-giua-vong-vay-truyen-thong-5071395.html",
"https://vnexpress.net/sai-lam-thuong-gap-khi-an-nhan-5071437.html",
"https://vnexpress.net/",
"https://vnexpress.net/viet-nam-dang-cai-cup-the-thao-dien-tu-dong-nam-a-tu-2026-5071454.html",
"https://vnexpress.net/lam-gi-giam-ho-so-mui-cho-tre-mua-nang-nong-5071352.html",
"https://vnexpress.net/audi-viet-nam-giam-gia-300-trieu-dong-xe-ton-kho-tu-2024-5071030.html",
"https://vnexpress.net/nu-hoang-muoi-hong-chet-hang-loat-sau-khi-bi-thu-giu-5071346.html",
"https://vnexpress.net/cuoc-dau-hoa-luc-o-hormuz-khien-trien-vong-hoa-binh-my-iran-them-xa-voi-5070395.html",
"https://dichvucong.gov.vn/",
"https://tiki.vn/",
"https://chinhphu.vn/",
"https://vnu.edu.vn/",
"https://vnexpress.net/vo-toi-bong-nhien-bi-gui-email-no-thue-hon-18-trieu-dong-5071427.html",
"https://shopee.vn/",
"https://vnexpress.net/nhat-ban-co-the-da-chi-hon-60-ty-usd-cuu-dong-yen-5071431.html",
"https://vnexpress.net/bo-y-te-se-quan-ly-thuc-pham-tu-trang-trai-toi-ban-an-5070463.html"
],
"static_urls": [
"https://chinhphu.vn/",
"https://dichvucong.gov.vn/",
"https://vnu.edu.vn/",
"https://www.vietcombank.com.vn/",
"https://shopee.vn/",
"https://tiki.vn/",
"https://vnexpress.net/"
]
}
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More