mirror of
https://github.com/hotyue/IP-Sentinel.git
synced 2026-05-11 06:49:40 +08:00
Compare commits
399 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
793332a9ef | ||
|
|
0f50ca38ee | ||
|
|
8424b0c9bc | ||
|
|
0e240b66ee | ||
|
|
f464617366 | ||
|
|
17b525eae8 | ||
|
|
c9c6cc5cae | ||
|
|
70c328bbc5 | ||
|
|
86c9a5b15b | ||
|
|
9deaea5490 | ||
|
|
ca0055f769 | ||
|
|
4b388fc343 | ||
|
|
75d7e2b0f9 | ||
|
|
e81467f31f | ||
|
|
d497ed44ef | ||
|
|
f4aa566f01 | ||
|
|
d087687d38 | ||
|
|
05b91a736d | ||
|
|
1809168562 | ||
|
|
e52315798a | ||
|
|
a1b1168aa6 | ||
|
|
ccabed6bea | ||
|
|
7342559844 | ||
|
|
b85529e2c1 | ||
|
|
96ba81c611 | ||
|
|
bc87d9d9af | ||
|
|
6f91d30e82 | ||
|
|
392517514c | ||
|
|
b05789a367 | ||
|
|
7a1f974930 | ||
|
|
ef283dcbf3 | ||
|
|
ac0c4abd8b | ||
|
|
5a1194f8de | ||
|
|
a49976d54c | ||
|
|
aed5a5bf0f | ||
|
|
5793f13b9c | ||
|
|
fb58f25175 | ||
|
|
9c434fdbdc | ||
|
|
3c8cd0499e | ||
|
|
f26bb49692 | ||
|
|
8b0abf8d05 | ||
|
|
518b62444e | ||
|
|
ffc593f9bc | ||
|
|
84b5fc9f93 | ||
|
|
14761ee128 | ||
|
|
4d29b719ef | ||
|
|
a3d4de00bc | ||
|
|
aa3fb2e298 | ||
|
|
3fb71e2a60 | ||
|
|
41520782d1 | ||
|
|
24286ebb75 | ||
|
|
3f73825972 | ||
|
|
56b655af2d | ||
|
|
70d940584e | ||
|
|
0cdb4f8d3f | ||
|
|
67be930060 | ||
|
|
be82242ed1 | ||
|
|
67d6e35d9f | ||
|
|
f34e697016 | ||
|
|
56cfbb5485 | ||
|
|
d40b7928d0 | ||
|
|
ac2f8b0a1c | ||
|
|
caf7589b89 | ||
|
|
ebada9f455 | ||
|
|
d2dc1a20c3 | ||
|
|
d115f01d4a | ||
|
|
b1dc0ab79d | ||
|
|
c147843d39 | ||
|
|
ae67817eb4 | ||
|
|
27e48defb2 | ||
|
|
cc216e288e | ||
|
|
9f32bc990d | ||
|
|
3a981f24e3 | ||
|
|
a626283b54 | ||
|
|
12eaf89f48 | ||
|
|
5e1331bad0 | ||
|
|
e44418d381 | ||
|
|
c86f1e509b | ||
|
|
f7f2421843 | ||
|
|
014486e558 | ||
|
|
ce4a40d860 | ||
|
|
36847aeaa2 | ||
|
|
43adf55a4b | ||
|
|
838dc01ebc | ||
|
|
641055ab74 | ||
|
|
5c19b6a6e1 | ||
|
|
af2570f15d | ||
|
|
df77f397aa | ||
|
|
d6dee813c5 | ||
|
|
d20f576908 | ||
|
|
17dd927719 | ||
|
|
bff49cd2b9 | ||
|
|
49090f1b97 | ||
|
|
15324d0840 | ||
|
|
8b632fe4f9 | ||
|
|
11ff23bf94 | ||
|
|
332765a72e | ||
|
|
38869e8681 | ||
|
|
85cd1dc594 | ||
|
|
55f7ee0c8c | ||
|
|
d24be4da0b | ||
|
|
ae36155545 | ||
|
|
dc5560f8fd | ||
|
|
18985cb57d | ||
|
|
830d62ead8 | ||
|
|
5c8d9d6096 | ||
|
|
22d26079e4 | ||
|
|
c564ea0ab8 | ||
|
|
ec7bf0f2b9 | ||
|
|
be241ab6bd | ||
|
|
4b2985b4ef | ||
|
|
d4afb57f9f | ||
|
|
230a59bbb3 | ||
|
|
f4a5cf8306 | ||
|
|
b606fe02ff | ||
|
|
3375356143 | ||
|
|
d9255ecbca | ||
|
|
6ad6f6b4b3 | ||
|
|
a8caea3b6d | ||
|
|
1a49e18200 | ||
|
|
c223d7a476 | ||
|
|
eaa51358a8 | ||
|
|
00827b3b15 | ||
|
|
ccddaf4386 | ||
|
|
0f0ba46989 | ||
|
|
f83db38a6b | ||
|
|
ba5582ab4c | ||
|
|
fb4e1d9b31 | ||
|
|
2dea6e382b | ||
|
|
fa8eada97b | ||
|
|
c102f66234 | ||
|
|
68a50fdb4a | ||
|
|
aac83acb8f | ||
|
|
4be4d5e9ef | ||
|
|
1f925b307f | ||
|
|
49afe032d6 | ||
|
|
f0f054c8cd | ||
|
|
699e9ca31a | ||
|
|
76cace4ff6 | ||
|
|
9f3218ab7f | ||
|
|
8a61f518f5 | ||
|
|
e9d5023263 | ||
|
|
05b1e21bba | ||
|
|
4a496fdab3 | ||
|
|
8ae3a6534d | ||
|
|
3269376c94 | ||
|
|
7a92de4d62 | ||
|
|
5fbc1e3fb3 | ||
|
|
d73c3154f9 | ||
|
|
b3fbed4a94 | ||
|
|
71fe3bde51 | ||
|
|
c739f58cc5 | ||
|
|
2c50c72fcb | ||
|
|
8d16c549fc | ||
|
|
d74d6d8775 | ||
|
|
853e6c09e1 | ||
|
|
1f21ac9a7e | ||
|
|
28fd94eff5 | ||
|
|
7460935acc | ||
|
|
109ae6f319 | ||
|
|
6b3acf5787 | ||
|
|
b1ecbd4f9a | ||
|
|
4d091e4dd9 | ||
|
|
ae6559c850 | ||
|
|
5cfaebceab | ||
|
|
88f55cbab9 | ||
|
|
1204336612 | ||
|
|
49a65a5f11 | ||
|
|
7e5b836a49 | ||
|
|
18f80400ef | ||
|
|
eca4b41da4 | ||
|
|
a24a533165 | ||
|
|
d2b575fe85 | ||
|
|
cb0aa2049e | ||
|
|
981b9e4859 | ||
|
|
eeee1b6811 | ||
|
|
e6852d0c9d | ||
|
|
23ea08f981 | ||
|
|
580a3d7fd5 | ||
|
|
6eabb60c28 | ||
|
|
7fd432ffee | ||
|
|
351143e59d | ||
|
|
725e8ae8c9 | ||
|
|
1e9de46fc5 | ||
|
|
543ab5c8bd | ||
|
|
972cd02874 | ||
|
|
9c37cb9df3 | ||
|
|
2a8a6b6fa7 | ||
|
|
e4b4c747eb | ||
|
|
eabd33e6b2 | ||
|
|
233af7181f | ||
|
|
62fb19f0c5 | ||
|
|
54178ddcf1 | ||
|
|
92a65d8308 | ||
|
|
eaaa7dabf0 | ||
|
|
e797c8203f | ||
|
|
9ecf50c153 | ||
|
|
c02b7eecc9 | ||
|
|
6af8b6b25d | ||
|
|
7081aa77cc | ||
|
|
5e48edb030 | ||
|
|
5f0f677f59 | ||
|
|
7f0c3e3e29 | ||
|
|
c03f6ca9ba | ||
|
|
66f3ba7d06 | ||
|
|
511ba90378 | ||
|
|
01806d20dd | ||
|
|
049278c458 | ||
|
|
0aaa2d44a0 | ||
|
|
3f139a593e | ||
|
|
bee6fef69c | ||
|
|
f283a8a4c6 | ||
|
|
0d2433d850 | ||
|
|
a6b01bd8d5 | ||
|
|
8f2279b7e2 | ||
|
|
d37d26708d | ||
|
|
6234d7c49a | ||
|
|
f9a7bba32a | ||
|
|
068734da16 | ||
|
|
09a4108bcc | ||
|
|
a7f08ec7a7 | ||
|
|
f075fcce36 | ||
|
|
0bb96169e5 | ||
|
|
34320b2385 | ||
|
|
aeed9f0e57 | ||
|
|
c04a4c41e4 | ||
|
|
3b28ead0e4 | ||
|
|
d0ea5d09b1 | ||
|
|
a119973ec0 | ||
|
|
b8b91ac17e | ||
|
|
34f2c7e123 | ||
|
|
172f1e0209 | ||
|
|
1d5ed5d0cb | ||
|
|
1e150f26f1 | ||
|
|
03e735a44b | ||
|
|
011c1faad4 | ||
|
|
2325a8abdf | ||
|
|
201df489db | ||
|
|
2d680c5fc7 | ||
|
|
e77b7c0319 | ||
|
|
2283da7421 | ||
|
|
4a28f7f395 | ||
|
|
9a38fb62d0 | ||
|
|
fefd5dc60c | ||
|
|
89aa1ead33 | ||
|
|
a5f2fb53ed | ||
|
|
bd26f1011d | ||
|
|
cfaf156e03 | ||
|
|
75cf50ce0c | ||
|
|
e2b6bbc347 | ||
|
|
cd5160d1ea | ||
|
|
040827aa27 | ||
|
|
d00317a645 | ||
|
|
60317b4444 | ||
|
|
a0bb0f30f2 | ||
|
|
cc6f7bf958 | ||
|
|
583e0b00d8 | ||
|
|
c27f2fced9 | ||
|
|
8baa141339 | ||
|
|
2eceb43ac3 | ||
|
|
8ce9eb256b | ||
|
|
bf2cfb7da0 | ||
|
|
5dfaa19cca | ||
|
|
3404666b8e | ||
|
|
b64ab95658 | ||
|
|
f19d165ece | ||
|
|
602919dc18 | ||
|
|
722db9f6d1 | ||
|
|
970867f3c7 | ||
|
|
e22d8d3cd0 | ||
|
|
cfe6dd59c8 | ||
|
|
b46e257545 | ||
|
|
3e9a82a657 | ||
|
|
4cf687f436 | ||
|
|
e88cf4ac5b | ||
|
|
898349d22e | ||
|
|
9ea188cb6d | ||
|
|
03d4c6160a | ||
|
|
cf4433cdd6 | ||
|
|
ae80f25c67 | ||
|
|
5b2c294c61 | ||
|
|
a1595ab0c5 | ||
|
|
0be1e92ac5 | ||
|
|
cf3e5dca2f | ||
|
|
902f612d31 | ||
|
|
45475f14b7 | ||
|
|
30f396aefe | ||
|
|
7cf7117615 | ||
|
|
062305d126 | ||
|
|
f451aea643 | ||
|
|
64342b2846 | ||
|
|
d96b6e769a | ||
|
|
539de62eee | ||
|
|
d514106e65 | ||
|
|
7f9c8a4dea | ||
|
|
31014e571d | ||
|
|
f5aa68a8dc | ||
|
|
63bbbd549e | ||
|
|
5e40ed426b | ||
|
|
aebf3a9e90 | ||
|
|
8a3d7c305b | ||
|
|
2d580eaea2 | ||
|
|
d7ab695372 | ||
|
|
0c250dfd17 | ||
|
|
52b12c7057 | ||
|
|
2166753569 | ||
|
|
46e418dfd0 | ||
|
|
673e0ce3e6 | ||
|
|
6203249782 | ||
|
|
05e708ed21 | ||
|
|
c4faa102cf | ||
|
|
4a1b32278c | ||
|
|
584ead387e | ||
|
|
efdc62ba68 | ||
|
|
67618587e4 | ||
|
|
a2c045a841 | ||
|
|
9b35c87cb4 | ||
|
|
e6c6e66e4b | ||
|
|
f1d36a2148 | ||
|
|
41906d0570 | ||
|
|
dc7d1c0f40 | ||
|
|
9768bed637 | ||
|
|
fa202a0405 | ||
|
|
b8bcd09134 | ||
|
|
ef8dc033cc | ||
|
|
03a54bcca0 | ||
|
|
f4f93d8955 | ||
|
|
07cac792f0 | ||
|
|
50edad9e25 | ||
|
|
69edf12620 | ||
|
|
0b448e2b7e | ||
|
|
d7b95136dd | ||
|
|
80d74111c4 | ||
|
|
223d7c4b56 | ||
|
|
de3b4ca6d3 | ||
|
|
423a765e5f | ||
|
|
ca74c31b96 | ||
|
|
9366240d62 | ||
|
|
1fa2cd10b1 | ||
|
|
3210c8cfcc | ||
|
|
d7e1e8fc8f | ||
|
|
a81f0564f1 | ||
|
|
3b20630e9e | ||
|
|
7321b76bb5 | ||
|
|
8016b0531c | ||
|
|
c7c93ea22e | ||
|
|
9aef79831c | ||
|
|
43f2e98459 | ||
|
|
5627c0115a | ||
|
|
f252b26088 | ||
|
|
12e6619ab9 | ||
|
|
a0bad1acf0 | ||
|
|
01d65972fd | ||
|
|
b1334fc06a | ||
|
|
918c73b5dc | ||
|
|
28f04a4eb9 | ||
|
|
26328e66c4 | ||
|
|
1d85837e79 | ||
|
|
ba8e2f1625 | ||
|
|
6b809138e5 | ||
|
|
6f4e871c7c | ||
|
|
fe2c9de80b | ||
|
|
6c0a589395 | ||
|
|
42a128fd6b | ||
|
|
a891f2017a | ||
|
|
66fdfb1908 | ||
|
|
aa2874fdcd | ||
|
|
120dd264c2 | ||
|
|
455f98fafd | ||
|
|
2c1041ebed | ||
|
|
0af3ff5cd8 | ||
|
|
6faa7b2c2a | ||
|
|
873b6996ca | ||
|
|
84832395bd | ||
|
|
96a7400be8 | ||
|
|
ba565978c6 | ||
|
|
b53032cc92 | ||
|
|
e96eacd6f8 | ||
|
|
4cac51673a | ||
|
|
be75e5b65c | ||
|
|
c7ece6620c | ||
|
|
7e9da4b82a | ||
|
|
c657c92b27 | ||
|
|
d43163703e | ||
|
|
1150450718 | ||
|
|
df6483afa8 | ||
|
|
29de2eadf8 | ||
|
|
318689f163 | ||
|
|
6b9563b858 | ||
|
|
2c7491449c | ||
|
|
f698bc4b92 | ||
|
|
c18a10dbd5 | ||
|
|
69e7803c40 | ||
|
|
b2a5afe562 | ||
|
|
45fda5f498 | ||
|
|
1459d5efec | ||
|
|
b7375e5e7d | ||
|
|
4a7f88a0da | ||
|
|
a0ec759dd7 |
52
.github/workflows/daily_keywords.yml
vendored
Normal file
52
.github/workflows/daily_keywords.yml
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
name: Daily Data Factory
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# 每天 UTC 03:00 执行,为各节点全天随机拉取准备好弹药
|
||||
- cron: '0 3 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
update-data:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Execute Trends Engine (搜索词库)
|
||||
run: python scripts/fetch_trends.py
|
||||
|
||||
- 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
|
||||
echo "No changes, skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 策略:将两路数据的更新合并为一个原子提交
|
||||
git commit -m "chore(data): 🤖 自动机兵:同步全战区热点词库与活体新闻流 [$(date +'%Y-%m-%d')]"
|
||||
git push origin main
|
||||
4
.github/workflows/ua_factory.yml
vendored
4
.github/workflows/ua_factory.yml
vendored
@@ -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:
|
||||
|
||||
131
README.md
131
README.md
@@ -5,22 +5,29 @@
|
||||

|
||||
|
||||
> **一个极度轻量、零感知、支持中枢遥控的 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 跨洲际跃升**。守护版图现已横跨亚、欧、美三大洲(**美、日、英、德、法、新、港**)。为每个国家注入极其硬核的“原生本地化”搜索词库与本土高权重站点(如政府、权威媒体、高铁网),真正实现“拟真融入”。
|
||||
* ☁️ **云端中枢 (Public Master)**:引入官方公共机器人 [@OmniBeacon_bot](https://t.me/OmniBeacon_bot),新手无需部署 Master 司令部,部署 Agent 时一键回车即可调用官方加密网关,30 秒极速入伍!
|
||||
* 🧠 **分布式中枢 (Master-Agent)**:对于硬核极客,支持私有化部署。一台 Master 主控集成 SQLite 数据库,统管无数台 Agent 边缘节点,确保数据绝对私有。
|
||||
* 🔒 **叹息之墙 (Zero-Trust HMAC)**:**v3.1 核心重构**。全面废弃明文 Token,底层通讯引入 `时间戳 + HMAC-SHA256` 军用级动态签名。指令有效期仅 60 秒(阅后即焚),彻底免疫中间人抓包、重放攻击与端口爆破。
|
||||
* 🛡️ **工业级并发与自净引擎**:底层 Webhook 采用多线程模型彻底免疫慢速耗尽攻击;独创“智能清道夫”逻辑,覆盖安装/升级时自动绞杀僵尸进程与冗余定时任务,绝对纯净,告别玄学冲突。
|
||||
* 🎮 **TG 战术面板 (Command Center)**:无需记忆繁琐命令,全 Inline Keyboard 交互。支持一键下发伪装指令、一键索要精准战报、**毫秒级抓取边缘节点实时运行日志**。
|
||||
* 👻 **高仿真人类行为 (Human-Like)**:摒弃死板的 Ping/Curl,引入单次会话指纹锁定、10 米级 GPS 坐标微抖动、以及 60~150 秒的真实阅读停顿拉伸,完美避开 AI 封控。
|
||||
* 👁️🗨️ **玻璃房透明遥测 (Glasshouse Telemetry)**:**v3.1.2 全新上线**。引入基于 Cloudflare Workers 的全透明计数中枢,首页动态徽章实时展示全球真实装机与调用量。**绝对零隐私收集**,仅作原子累加,底层网关源码全开源,接受全网极客审计。
|
||||
* ⚡ **丝滑战术交互 (Seamless UI)**:司令部交互面板像素级打磨。新节点发送暗号入伍成功后,司令部将**无缝零延迟自动呼出**最新的活跃节点阵列面板,彻底免除重复输入命令的繁琐,掌控感拉满。
|
||||
- 📊 **深海声呐全维探针 (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 嵌套,系统均能瞬间避开网络黑洞,彻底杜绝探针假死与流量溢出。
|
||||
|
||||
**—— 💎 骨干基建特征 ——**
|
||||
- 🏭 **全自动云端军工厂 (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)
|
||||
|
||||
@@ -28,49 +35,70 @@
|
||||
|
||||
```text
|
||||
📦 IP-Sentinel
|
||||
┣ 📂 master/ # 🧠 司令部:SQLite 存储、TG 监听与 Webhook 调度中心
|
||||
┣ 📂 core/ # 🛡️ 边缘哨兵:Webhook 被动监听、高拟真养护引擎
|
||||
┣ 📂 .github/workflows/ # 🏭 自动化兵工厂:每月定时触发指纹生成的 CI/CD 流水线
|
||||
┣ 📂 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 # 🔥 热数据:全局真实设备指纹池
|
||||
┃ ┗ 📜 user_agents.txt # 🔥 热数据:由兵工厂每月锻造的绝对坐标专属设备库
|
||||
┣ 📜 version.txt # 🚩 双端版本信标:Agent/Master 独立解耦的 KV 环境配置
|
||||
┗ 📂 telemetry/ # 👁️🗨️ 玻璃房计划:Cloudflare Workers 透明计数器网关源码
|
||||
```
|
||||
|
||||
## 🚀 极速部署 (Quick Start)
|
||||
> 🛡️ **跨平台装甲支持**:Debian / Ubuntu / CentOS / RHEL / Alpine Linux / Arch Linux
|
||||
系统现提供两种接入模式,请根据您的战术需求选择:
|
||||
|
||||
v3.1.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 Guide)
|
||||
|
||||
🗑️ 一键无痕卸载
|
||||
### 📡 方式一:OTA 远程静默升级 (私有中枢专属)
|
||||
如果您是私有中枢领主,当司令部首页 (`/start`) 或每日战报提示发现新版本时:
|
||||
|
||||
1. **升级 Master 司令部自身**:在司令部顶级菜单,点击最上方的 `[ 🆙 升级司令部至 vX.X.X ]`。中枢将释放幽灵进程静默重构,数秒后向您发送捷报。
|
||||
2. **升级全舰队 Agent**:在司令部顶级菜单,点击 `[ ☢️ 全舰队 OTA 热重载 ]`。
|
||||
3. **升级单节点 Agent**:进入 `🌍 全球战区雷达` -> 选择目标节点 -> 在统一终端面板点击 `[ 🆙 OTA 静默升级 ]`。
|
||||
*(⚠️ 节点收到指令后会在后台挂起静默拉取,全程无需登录 SSH,完成后将主动发回心跳确认!)*
|
||||
|
||||
### 💻 方式二:SSH 终端平滑直装 (适用于官方网关或老旧节点)
|
||||
如果您的节点不支持 OTA,或者您的节点版本过于陈旧 (如 v3.3.1):
|
||||
|
||||
- 登录该节点的 SSH 终端,再次运行上面的 core/install.sh 官方安装指令。
|
||||
|
||||
- 安装引擎自带状态机嗅探逻辑,它会自动读取老旧数据,您只需一路回车,3 秒即可在本地完成配置继承、数据同步与新内核的无损覆盖热重载!
|
||||
|
||||
## 🗑️ 一键无痕卸载
|
||||
如果你需要清理某个边缘节点,只需重新运行 `core/install.sh` 并选择 **[2]**,或直接在节点终端执行:
|
||||
|
||||
```Bash
|
||||
@@ -78,7 +106,7 @@ bash /opt/ip_sentinel/core/uninstall.sh
|
||||
|
||||
```
|
||||
|
||||
### 🧓 传家宝老旧系统专用通道 (Debian 9)
|
||||
## 🧓 传家宝老旧系统专用通道 (Debian 9)
|
||||
|
||||
如果你的小鸡系统版本过低(如 Debian 9),由于官方 APT 源已关闭且 Python 版本过旧,无法使用主线版本,请使用 **Legacy 兼容分支** 部署。
|
||||
*(注意:该分支仅作基础维护,不享受新功能迭代,请尽可能升级你的系统)*
|
||||
@@ -87,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 封禁或其他相关风险。
|
||||
|
||||
## 保持联系
|
||||
|
||||
[](https://blog.iot-architect.com)
|
||||
|
||||
如果你觉得这个项目对你有帮助,欢迎关注我的个人博客,我会定期分享技术教程。
|
||||
|
||||
|
||||
## Stargazers over time
|
||||
[](https://starchart.cc/hotyue/IP-Sentinel)
|
||||
@@ -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
|
||||
|
||||
# 校验 3:HMAC 数据完整性与身份合法性校验
|
||||
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"
|
||||
1237
core/install.sh
1237
core/install.sh
File diff suppressed because it is too large
Load Diff
@@ -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)
|
||||
@@ -85,6 +101,32 @@ log "$MODULE_NAME" "INFO " "当前出网 IP: $CURRENT_IP"
|
||||
log "$MODULE_NAME" "INFO " "设备指纹锁定: ${SESSION_UA:0:45}..."
|
||||
log "$MODULE_NAME" "INFO " "虚拟驻留坐标: $SESSION_BASE_LAT, $SESSION_BASE_LON"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# [V3.2.1 热修复] 网络锚定与协议自适应构建
|
||||
# 强制 curl 绑定网卡,并自动匹配 IPv4/v6 协议,杜绝 curl 冲突报错
|
||||
# -----------------------------------------------------------
|
||||
CURL_BIND_OPT=""
|
||||
DYNAMIC_IP_PREF="-${IP_PREF:-4}" # 默认提取用户配置
|
||||
|
||||
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\.]+$ ]]; then
|
||||
# [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
|
||||
|
||||
# --- [行为循环模拟] ---
|
||||
for ((i=1; i<=TOTAL_ACTIONS; i++)); do
|
||||
# 模拟真实移动设备拿在手里时的 GPS 信号微抖动 (范围约 10 米)
|
||||
@@ -98,63 +140,156 @@ for ((i=1; i<=TOTAL_ACTIONS; i++)); do
|
||||
# 随机选择一种上网行为
|
||||
ACTION_TYPE=$((1 + RANDOM % 4))
|
||||
|
||||
# [V3.2.1 热修复] 注入 $CURL_BIND_OPT 与 $DYNAMIC_IP_PREF 协议自适应
|
||||
case $ACTION_TYPE in
|
||||
1) # 搜索行为
|
||||
CODE=$(curl -${IP_PREF:-4} -m 15 -s -L -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
CODE=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 15 -s -L -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
"https://www.google.com/search?q=${ENCODED_KEY}&${LANG_PARAMS}")
|
||||
;;
|
||||
2) # 浏览本土新闻
|
||||
CODE=$(curl -${IP_PREF:-4} -m 15 -s -L -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
CODE=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 15 -s -L -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
"https://news.google.com/home?${LANG_PARAMS}")
|
||||
;;
|
||||
3) # 地图坐标查询
|
||||
CODE=$(curl -${IP_PREF:-4} -m 15 -s -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
CODE=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 15 -s -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
"https://www.google.com/maps/search/$${ENCODED_KEY}/@${ACTION_LAT},${ACTION_LON},17z?${LANG_PARAMS}")
|
||||
;;
|
||||
4) # 触发移动端系统底层位置检测像素
|
||||
CODE=$(curl -${IP_PREF:-4} -m 10 -s -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
CODE=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -m 10 -s -o /dev/null -w "%{http_code}" -A "$SESSION_UA" \
|
||||
"https://connectivitycheck.gstatic.com/generate_204")
|
||||
;;
|
||||
esac
|
||||
|
||||
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.1.4 绝对精准提取版)] ---
|
||||
FINAL_URL=$(curl -${IP_PREF:-4} -m 15 -s -L -o /dev/null -w "%{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. 严格一致性校验:任何一端出现非预期偏移,立即判定为漂移,彻底消除虚假“成功”。
|
||||
|
||||
# 核心战术:利用 awk 精准提取最终 URL 的域名部分,再剔除 "www.google." 前缀,得到纯粹的后缀
|
||||
# 例如: https://www.google.com.hk/?... -> 提取为 "com.hk"
|
||||
ACTUAL_DOMAIN=$(echo "$FINAL_URL" | awk -F/ '{print $3}')
|
||||
ACTUAL_SUFFIX=${ACTUAL_DOMAIN#www.google.}
|
||||
log "$MODULE_NAME" "INFO " "启动三核交叉验证 (URL跳转 + YT Premium + YT Music) 穿透获取 GeoIP..."
|
||||
|
||||
# 1. 优先验证:绝对匹配目标后缀 (彻底杜绝 com 包含于 com.hk 的陷阱)
|
||||
if [ "$ACTUAL_SUFFIX" == "$VALID_URL_SUFFIX" ]; then
|
||||
STATUS="✅ 目标区域达成 ($ACTUAL_SUFFIX)"
|
||||
# 核心 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=""
|
||||
|
||||
# 2. 核心拦截:精准捕捉送中特征 (com.hk)
|
||||
elif [ "$ACTUAL_SUFFIX" == "com.hk" ]; then
|
||||
if [ "$REGION_CODE" == "HK" ]; then
|
||||
STATUS="✅ 目标区域达成 (HK 专属 com.hk)"
|
||||
else
|
||||
STATUS="❌ 严重漂移!判定为送中区 (实际跳往 $ACTUAL_SUFFIX)"
|
||||
fi
|
||||
|
||||
# 3. 宽容处理:遵守 Google 无跳转新规 (严格限定必须是纯粹的 com,绝不能是 com.xx)
|
||||
elif [ "$ACTUAL_SUFFIX" == "com" ]; then
|
||||
STATUS="🌐 保持通用主站 (留在 .com,受 Google 无跳转新规影响)"
|
||||
|
||||
# 4. 跨区漂移:所有预判之外的后缀,全部视为异常
|
||||
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
|
||||
STATUS="⚠️ 跨区跳板漂移 (当前实际归属: $ACTUAL_SUFFIX)"
|
||||
# 从域名中提取区域后缀 (如 .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
|
||||
|
||||
# 核心 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
|
||||
|
||||
# 核心 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="✅ 目标区域达成 (Jump: ${JUMP_GL:-无} | Prem: ${YT_PR_GL:-无} | Music: ${YT_MU_GL:-无})"
|
||||
fi
|
||||
else
|
||||
# YouTube 流媒体核心未能解锁目标区域,宣判漂移
|
||||
STATUS="⚠️ 区域发生漂移!目标 $TARGET_CC,实际 (Jump: ${JUMP_GL:-无} | Prem: ${YT_PR_GL:-无} | Music: ${YT_MU_GL:-无})"
|
||||
fi
|
||||
fi
|
||||
|
||||
log "$MODULE_NAME" "SCORE" "自检结论: $STATUS"
|
||||
|
||||
266
core/mod_quality.sh
Executable file
266
core/mod_quality.sh
Executable 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
|
||||
@@ -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 ))
|
||||
@@ -87,6 +92,32 @@ log_msg "START" "========== 启动区域 IP 信用净化会话 =========="
|
||||
log_msg "INFO " "已载入 [${REGION}] 区域白名单,配置库条目: ${#TRUST_URLS[@]} 个"
|
||||
log_msg "INFO " "已锁定本地伪装指纹: $(echo $CURRENT_UA | cut -d' ' -f1-2)..."
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# [V3.2.1 热修复] 网络锚定与协议自适应构建
|
||||
# 强制 curl 绑定网卡,并自动匹配 IPv4/v6 协议,杜绝 curl 冲突报错
|
||||
# -----------------------------------------------------------
|
||||
CURL_BIND_OPT=""
|
||||
DYNAMIC_IP_PREF="-${IP_PREF:-4}" # 默认提取用户配置
|
||||
|
||||
if [[ -n "$BIND_IP" && "$BIND_IP" =~ ^[0-9a-fA-F:\.]+$ ]]; then
|
||||
# [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
|
||||
|
||||
STEP_COUNT=$((RANDOM % 4 + 3))
|
||||
SUCCESS_INJECT=0
|
||||
|
||||
@@ -95,7 +126,8 @@ for ((i=1; i<=STEP_COUNT; i++)); do
|
||||
TARGET_URL=${TRUST_URLS[$RANDOM % ${#TRUST_URLS[@]}]}
|
||||
|
||||
# [v3.0.1修复] 注入高权重流量时,强制从绑定的 IPv4 或 IPv6 隧道出网
|
||||
HTTP_CODE=$(curl -${IP_PREF:-4} -A "$CURRENT_UA" \
|
||||
# [V3.2.1 热修复] 注入 $CURL_BIND_OPT 与 $DYNAMIC_IP_PREF 协议自适应
|
||||
HTTP_CODE=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -A "$CURRENT_UA" \
|
||||
-H "Accept: text/html,application/xhtml+xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \
|
||||
-H "Accept-Language: en-US,en;q=0.9" \
|
||||
-H "Sec-Fetch-Dest: document" \
|
||||
@@ -104,7 +136,8 @@ for ((i=1; i<=STEP_COUNT; i++)); do
|
||||
--compressed \
|
||||
-s -o /dev/null -w "%{http_code}" -m 15 "$TARGET_URL")
|
||||
|
||||
if [[ "$HTTP_CODE" =~ ^(200|301|302)$ ]]; then
|
||||
# 扩大 HTTP 状态码容错区间:包含所有 20x (如亚马逊的 202) 和 30x 重定向
|
||||
if [[ "$HTTP_CODE" =~ ^(20[0-9]|30[1-8])$ ]]; then
|
||||
log_msg "EXEC " "动作[$i/$STEP_COUNT]完成 | 状态: $HTTP_CODE | 注入: $TARGET_URL"
|
||||
((SUCCESS_INJECT++))
|
||||
else
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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,19 +18,80 @@ if [ -z "$TG_TOKEN" ] || [ -z "$CHAT_ID" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# 2. 节点元数据抓取 (v3.0.1修复: 严格使用配置中的协议探测出口与多节点容灾)
|
||||
NODE_NAME=$(hostname | cut -c 1-15)
|
||||
# ================== [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"
|
||||
# ==============================================================================
|
||||
|
||||
# 多节点容灾探测
|
||||
CURRENT_IP=$( (curl -${IP_PREF:-4} -s -m 5 api.ip.sb/ip || curl -${IP_PREF:-4} -s -m 5 ifconfig.me) 2>/dev/null | tr -d '[:space:]' )
|
||||
# 强制兜底:如果所有外部 API 都挂了,直接使用本地强行锁定的 BIND_IP
|
||||
[ -z "$CURRENT_IP" ] && CURRENT_IP="$BIND_IP"
|
||||
# 2. 节点元数据抓取 (v3.2.2 协议自适应与多级容灾版)
|
||||
# [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
|
||||
# [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:]' )
|
||||
# [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}]"
|
||||
|
||||
# 智能判断 IP 属性
|
||||
ISP_INFO=$(curl -${IP_PREF:-4} -s -m 5 api.ip.sb/geoip | jq -r '.organization' 2>/dev/null)
|
||||
# --- [防线 2: 多级 ISP 容灾探针链路] ---
|
||||
ISP_INFO=""
|
||||
|
||||
# 探针 A: 纯文本 API (免 jq,极速稳定)
|
||||
ISP_INFO=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -s -m 5 ipinfo.io/org 2>/dev/null)
|
||||
|
||||
# 探针 B: 备用纯文本 API
|
||||
if [ -z "$ISP_INFO" ] || [[ "$ISP_INFO" == *"error"* ]]; then
|
||||
ISP_INFO=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -s -m 5 ip-api.com/line/?fields=isp 2>/dev/null)
|
||||
fi
|
||||
|
||||
# 探针 C: 原版的 JSON API (需要 jq 兜底)
|
||||
if [ -z "$ISP_INFO" ] || [[ "$ISP_INFO" == *"error"* ]]; then
|
||||
if command -v jq &> /dev/null; then
|
||||
ISP_INFO=$(curl $CURL_BIND_OPT $DYNAMIC_IP_PREF -s -m 5 api.ip.sb/geoip | jq -r '.organization' 2>/dev/null)
|
||||
fi
|
||||
fi
|
||||
|
||||
# --- [防线 3: 数据清洗 (遵循底层共识原则)] ---
|
||||
# 剔除 ipinfo 返回的开头 AS 号 (例如 "AS137535 JT TELECOM" -> "JT TELECOM")
|
||||
ISP_INFO=$(echo "$ISP_INFO" | sed -E 's/^AS[0-9]+ //')
|
||||
|
||||
# 最终兜底判断
|
||||
[ -z "$ISP_INFO" ] || [ "$ISP_INFO" == "null" ] && ISP_INFO="未知 ISP"
|
||||
|
||||
if [[ "$ISP_INFO" == *"Cloudflare"* ]]; then
|
||||
@@ -47,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
|
||||
@@ -75,7 +137,7 @@ else
|
||||
# 开始组装战报头部
|
||||
MSG="📊 **IP-Sentinel 每日简报 (${FLAG} ${REGION_NAME})**
|
||||
----------------------------
|
||||
📍 **节点名称**: \`${NODE_NAME}\`
|
||||
📍 **节点名称**: \`${NODE_ALIAS}\`
|
||||
📡 **出口 IP**: \`${CURRENT_IP}\`
|
||||
🛡️ **IP 属性**: ${IP_TYPE}"
|
||||
|
||||
@@ -118,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"
|
||||
|
||||
@@ -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 随机端口,请您按需手动关闭。"
|
||||
|
||||
134
core/updater.sh
134
core/updater.sh
@@ -1,16 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ==========================================================
|
||||
# 脚本名称: updater.sh (IP-Sentinel V3.1.4 养料注入与维护中枢)
|
||||
# 核心功能: 静默更新热数据(指纹/词库/LBS规则)、清理瘦身日志
|
||||
# 脚本名称: updater.sh (IP-Sentinel 养料注入与分频调度中枢 - 动态锚点版)
|
||||
# 核心功能: 静默更新热数据/LBS、指纹库错峰调度、强制出站死锁、版本无缝继承
|
||||
# ==========================================================
|
||||
|
||||
INSTALL_DIR="/opt/ip_sentinel"
|
||||
CONFIG_FILE="${INSTALL_DIR}/config.conf"
|
||||
# 你的 GitHub 仓库 Raw 数据直链前缀 (统一标准)
|
||||
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://git.94211762.xyz/hotyue/IP-Sentinel/raw/branch/main"
|
||||
# 临时改为开发地址用于测试
|
||||
# REPO_RAW_URL="https://raw.githubusercontent.com/hotyue/IP-Sentinel/v3.6.2-rc"
|
||||
|
||||
# 1. 加载本地冷数据配置
|
||||
if [ ! -f "$CONFIG_FILE" ]; then
|
||||
@@ -18,57 +20,139 @@ 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 热数据更新 =========="
|
||||
|
||||
# 3. 容灾机制拉取 UA 指纹池 (强制遵循锚点协议)
|
||||
TMP_UA="/tmp/ip_sentinel_ua.txt"
|
||||
curl -${IP_PREF:-4} -sL "${REPO_RAW_URL}/data/user_agents.txt" -o "$TMP_UA"
|
||||
if [ -s "$TMP_UA" ]; then
|
||||
mv "$TMP_UA" "${INSTALL_DIR}/data/user_agents.txt"
|
||||
log "Updater" "INFO " "✅ 设备指纹池 (User-Agents) 更新成功"
|
||||
else
|
||||
log "Updater" "WARN " "❌ UA 池拉取失败,保留本地旧数据防崩溃"
|
||||
rm -f "$TMP_UA"
|
||||
# ==========================================================
|
||||
# 🛡️ 终极护城河:构建强锚定出站的 curl 请求引擎
|
||||
# ==========================================================
|
||||
# 基础参数:跟随 install.sh 锁定的协议偏好 (4 或 6)
|
||||
CURL_CMD="curl -${IP_PREF:-4} -sL"
|
||||
|
||||
# 【防坑核心】如果用户配置了死锁锚点,必须强制绑定网卡,杜绝流量溢出!
|
||||
if [ -n "$BIND_IP" ]; then
|
||||
# curl 的 --interface 参数不支持带方括号的 IPv6 地址,必须强行脱壳
|
||||
RAW_BIND_IP=$(echo "$BIND_IP" | tr -d '[]')
|
||||
# [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
|
||||
|
||||
# 4. 容灾机制拉取当地最新搜索词库
|
||||
# ==========================================================
|
||||
# 3. 容灾机制拉取 UA 指纹池 (V3.3.0 引入 30 天错峰防惊群逻辑)
|
||||
# ==========================================================
|
||||
NOW=$(date +%s)
|
||||
LAST_UPDATE=0
|
||||
|
||||
# 读取上一次更新的时间戳
|
||||
if [ -f "$UA_TIME_FILE" ]; then
|
||||
# tr -d 清除可能存在的换行或回车符,防止算术崩溃
|
||||
LAST_UPDATE=$(cat "$UA_TIME_FILE" | tr -d '\r\n')
|
||||
fi
|
||||
|
||||
# 校验数据合法性,防崩溃
|
||||
if ! [[ "$LAST_UPDATE" =~ ^[0-9]+$ ]]; then
|
||||
LAST_UPDATE=0
|
||||
fi
|
||||
|
||||
DIFF=$((NOW - LAST_UPDATE))
|
||||
|
||||
# 距离上次拉取超过 30 天 (2592000 秒),才执行下载
|
||||
if [ "$DIFF" -ge 2592000 ] || [ "$LAST_UPDATE" -eq 0 ]; then
|
||||
TMP_UA="/tmp/ip_sentinel_ua.txt"
|
||||
# 使用重装升级后的 CURL_CMD
|
||||
$CURL_CMD "${REPO_RAW_URL}/data/user_agents.txt" -o "$TMP_UA"
|
||||
|
||||
if [ -s "$TMP_UA" ]; then
|
||||
mv "$TMP_UA" "${INSTALL_DIR}/data/user_agents.txt"
|
||||
echo "$NOW" > "$UA_TIME_FILE"
|
||||
log "Updater" "INFO " "✅ 设备指纹池 (User-Agents) 30天错峰滚动更新成功"
|
||||
else
|
||||
log "Updater" "WARN " "❌ UA 池拉取失败,保留本地旧数据防崩溃"
|
||||
rm -f "$TMP_UA"
|
||||
fi
|
||||
else
|
||||
DAYS_LEFT=$(((2592000 - DIFF) / 86400))
|
||||
log "Updater" "INFO " "⏳ 设备指纹池处于 30 天静默期 (剩余约 ${DAYS_LEFT} 天),跳过拉取"
|
||||
fi
|
||||
|
||||
# ==========================================================
|
||||
# 4. 容灾机制拉取当地最新搜索词库 (每日高频拉取,保证活体新鲜度)
|
||||
# ==========================================================
|
||||
TMP_KW="/tmp/ip_sentinel_kw.txt"
|
||||
curl -${IP_PREF:-4} -sL "${REPO_RAW_URL}/data/keywords/kw_${REGION_CODE}.txt" -o "$TMP_KW"
|
||||
$CURL_CMD "${REPO_RAW_URL}/data/keywords/kw_${REGION_CODE}.txt" -o "$TMP_KW"
|
||||
|
||||
if [ -s "$TMP_KW" ]; then
|
||||
mv "$TMP_KW" "${INSTALL_DIR}/data/keywords/kw_${REGION_CODE}.txt"
|
||||
log "Updater" "INFO " "✅ 区域搜索词库 (kw_${REGION_CODE}) 更新成功"
|
||||
log "Updater" "INFO " "✅ 区域搜索词库 (kw_${REGION_CODE}) 每日同步成功"
|
||||
else
|
||||
log "Updater" "WARN " "❌ 搜索词库拉取失败,保留本地旧数据防崩溃"
|
||||
rm -f "$TMP_KW"
|
||||
fi
|
||||
|
||||
# 5. 【V3.1.4 核心升级】自适应拉取本地 LBS 专属 JSON 规则库
|
||||
# 利用 find 穿透寻找本地唯一的 json
|
||||
# ==========================================================
|
||||
# 5. 自适应拉取本地 LBS 专属 JSON 规则库 (每日同步)
|
||||
# ==========================================================
|
||||
REGION_JSON_FILE=$(find "${INSTALL_DIR}/data/regions" -name "*.json" 2>/dev/null | head -n 1)
|
||||
|
||||
if [ -n "$REGION_JSON_FILE" ] && [ -f "$REGION_JSON_FILE" ]; then
|
||||
# 提取本地文件的相对路径 (例如: data/regions/US/CA/San_Jose.json)
|
||||
REL_PATH=${REGION_JSON_FILE#*${INSTALL_DIR}/}
|
||||
TMP_JSON="/tmp/ip_sentinel_region.json"
|
||||
|
||||
# 按照相同的相对路径去云端拉取更新
|
||||
curl -${IP_PREF:-4} -sL "${REPO_RAW_URL}/${REL_PATH}" -o "$TMP_JSON"
|
||||
$CURL_CMD "${REPO_RAW_URL}/${REL_PATH}" -o "$TMP_JSON"
|
||||
|
||||
if [ -s "$TMP_JSON" ]; then
|
||||
mv "$TMP_JSON" "$REGION_JSON_FILE"
|
||||
log "Updater" "INFO " "✅ 核心战区规则库 ($REL_PATH) 更新成功"
|
||||
log "Updater" "INFO " "✅ 核心战区规则库 ($REL_PATH) 每日同步成功"
|
||||
else
|
||||
log "Updater" "WARN " "❌ 战区规则库拉取失败,保留本地旧数据"
|
||||
rm -f "$TMP_JSON"
|
||||
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 行)
|
||||
# ==========================================================
|
||||
if [ -f "$LOG_FILE" ]; then
|
||||
tail -n 2000 "$LOG_FILE" > "${LOG_FILE}.tmp"
|
||||
mv "${LOG_FILE}.tmp" "$LOG_FILE"
|
||||
|
||||
1
data/keywords/kw_AE.txt
Normal file
1
data/keywords/kw_AE.txt
Normal 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
200
data/keywords/kw_AU.txt
Normal 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
1
data/keywords/kw_BD.txt
Normal 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
200
data/keywords/kw_CA.txt
Normal 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
|
||||
@@ -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 o’sullivan
|
||||
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
200
data/keywords/kw_ES.txt
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
1
data/keywords/kw_ID.txt
Normal 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
1
data/keywords/kw_IN.txt
Normal 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 आज की खबर दिल्ली मौसम रुपया विनिमय दर
|
||||
@@ -1,7 +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
1
data/keywords/kw_KH.txt
Normal 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
200
data/keywords/kw_KR.txt
Normal 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
1
data/keywords/kw_LA.txt
Normal 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
1
data/keywords/kw_MM.txt
Normal 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
1
data/keywords/kw_MN.txt
Normal 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
178
data/keywords/kw_MY.txt
Normal 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
110
data/keywords/kw_NG.txt
Normal 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
200
data/keywords/kw_NL.txt
Normal 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
1
data/keywords/kw_NP.txt
Normal 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
1
data/keywords/kw_PH.txt
Normal 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
1
data/keywords/kw_SA.txt
Normal 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 أخبار السعودية الرياض الطقس سعر الريال السعودي
|
||||
@@ -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
1
data/keywords/kw_TH.txt
Normal 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
20
data/keywords/kw_TR.txt
Normal 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
200
data/keywords/kw_TW.txt
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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
200
data/keywords/kw_VN.txt
Normal 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
|
||||
836
data/map.json
836
data/map.json
@@ -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 (拉各斯)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
1
data/regions/AE/Default/Dubai.json
Normal file
1
data/regions/AE/Default/Dubai.json
Normal 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/" ] } }
|
||||
50
data/regions/AU/NSW/Sydney.json
Normal file
50
data/regions/AU/NSW/Sydney.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/AU/QLD/Brisbane.json
Normal file
50
data/regions/AU/QLD/Brisbane.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/AU/SA/Adelaide.json
Normal file
50
data/regions/AU/SA/Adelaide.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/AU/VIC/Melbourne.json
Normal file
50
data/regions/AU/VIC/Melbourne.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/AU/WA/Perth.json
Normal file
50
data/regions/AU/WA/Perth.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
1
data/regions/BD/Default/Dhaka.json
Normal file
1
data/regions/BD/Default/Dhaka.json
Normal 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/" ] } }
|
||||
46
data/regions/CA/Default/Montreal.json
Normal file
46
data/regions/CA/Default/Montreal.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
46
data/regions/CA/Default/Toronto.json
Normal file
46
data/regions/CA/Default/Toronto.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/DE/BE/Berlin.json
Normal file
50
data/regions/DE/BE/Berlin.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/DE/BY/Nuremberg.json
Normal file
50
data/regions/DE/BY/Nuremberg.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
50
data/regions/DE/SN/Falkenstein.json
Normal file
50
data/regions/DE/SN/Falkenstein.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
44
data/regions/ES/Default/Madrid.json
Normal file
44
data/regions/ES/Default/Madrid.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1
data/regions/ID/Default/Jakarta.json
Normal file
1
data/regions/ID/Default/Jakarta.json
Normal 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/" ] } }
|
||||
1
data/regions/IN/Default/Delhi.json
Normal file
1
data/regions/IN/Default/Delhi.json
Normal 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/" ] } }
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
1
data/regions/KH/Default/PhnomPenh.json
Normal file
1
data/regions/KH/Default/PhnomPenh.json
Normal 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/" ] } }
|
||||
36
data/regions/KR/Default/Seoul.json
Normal file
36
data/regions/KR/Default/Seoul.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
1
data/regions/LA/Default/Vientiane.json
Normal file
1
data/regions/LA/Default/Vientiane.json
Normal 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/" ] } }
|
||||
1
data/regions/MM/Default/Yangon.json
Normal file
1
data/regions/MM/Default/Yangon.json
Normal 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/" ] } }
|
||||
1
data/regions/MN/Default/Ulaanbaatar.json
Normal file
1
data/regions/MN/Default/Ulaanbaatar.json
Normal 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/" ] } }
|
||||
50
data/regions/MY/Default/Kuala_Lumpur.json
Normal file
50
data/regions/MY/Default/Kuala_Lumpur.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/NG/Default/Lagos.json
Normal file
50
data/regions/NG/Default/Lagos.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
44
data/regions/NL/Default/Amsterdam.json
Normal file
44
data/regions/NL/Default/Amsterdam.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
1
data/regions/NP/Default/Kathmandu.json
Normal file
1
data/regions/NP/Default/Kathmandu.json
Normal 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/" ] } }
|
||||
1
data/regions/PH/Default/Manila.json
Normal file
1
data/regions/PH/Default/Manila.json
Normal 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/" ] } }
|
||||
1
data/regions/SA/Default/Riyadh.json
Normal file
1
data/regions/SA/Default/Riyadh.json
Normal 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/" ] } }
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
1
data/regions/TH/Default/Bangkok.json
Normal file
1
data/regions/TH/Default/Bangkok.json
Normal 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/" ] } }
|
||||
46
data/regions/TR/Default/Istanbul.json
Normal file
46
data/regions/TR/Default/Istanbul.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
48
data/regions/TW/Default/Taipei.json
Normal file
48
data/regions/TW/Default/Taipei.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
46
data/regions/UK/Default/Coventry.json
Normal file
46
data/regions/UK/Default/Coventry.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
50
data/regions/US/AZ/Phoenix.json
Normal file
50
data/regions/US/AZ/Phoenix.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
50
data/regions/US/FL/Miami.json
Normal file
50
data/regions/US/FL/Miami.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/GA/Atlanta.json
Normal file
50
data/regions/US/GA/Atlanta.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
1
data/regions/US/HI/Honolulu.json
Normal file
1
data/regions/US/HI/Honolulu.json
Normal 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/" ] } }
|
||||
50
data/regions/US/IA/Council_Bluffs.json
Normal file
50
data/regions/US/IA/Council_Bluffs.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/IL/Warrenville.json
Normal file
50
data/regions/US/IL/Warrenville.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/NC/Charlotte.json
Normal file
50
data/regions/US/NC/Charlotte.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/NJ/Newark.json
Normal file
50
data/regions/US/NJ/Newark.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/NV/Las_Vegas.json
Normal file
50
data/regions/US/NV/Las_Vegas.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/NY/New_York.json
Normal file
50
data/regions/US/NY/New_York.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/OH/Columbus.json
Normal file
50
data/regions/US/OH/Columbus.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/OR/Bend.json
Normal file
50
data/regions/US/OR/Bend.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/TX/Dallas.json
Normal file
50
data/regions/US/TX/Dallas.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
40
data/regions/US/TX/Houston.json
Normal file
40
data/regions/US/TX/Houston.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/UT/Salt_Lake_City.json
Normal file
50
data/regions/US/UT/Salt_Lake_City.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/VA/Ashburn.json
Normal file
50
data/regions/US/VA/Ashburn.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
50
data/regions/US/WA/Seattle.json
Normal file
50
data/regions/US/WA/Seattle.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
44
data/regions/VN/Default/Hanoi.json
Normal file
44
data/regions/VN/Default/Hanoi.json
Normal 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/"
|
||||
]
|
||||
}
|
||||
}
|
||||
7954
data/user_agents.txt
7954
data/user_agents.txt
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
Reference in New Issue
Block a user