feat: geosite/geoip для Discord со сборкой из апстримов

Домены и сети Discord в geosite.dat и geoip.dat для Xray/3x-ui, плюс
sing-box, Clash/mihomo, AdGuard, текст и готовый фрагмент routing.

Рукописная база живёт в data/discord-base.txt и data/ip/discord-base.txt,
остальное tools/sync.py тянет из пяти публичных апстримов: JSON-исходники
парсятся напрямую, скомпилированные .srs распаковываются через sing-box.
Каждый источник кладётся в свою категорию, недоступный источник не
обнуляет данные, файлы без шапки GENERATED скрипт не трогает.

Ограничения по протоколу и портам (директивы !network / !port) доезжают
до sing-box rule-set и до xray/routing.json. Такие категории намеренно
не входят в сводную discord: там сети вроде 172.64.0.0/13, и без привязки
к UDP-портам правило утащило бы в туннель чужой трафик.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-08-10 09:24:08 +03:00
co-authored by Claude Opus 5
commit 61c0ea3558
23 changed files with 7278 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
{
"_note": [
"Апстримы, из которых tools/sync.py собирает data/*-<source>.txt.",
"kind определяется по расширению: .json — исходник sing-box rule-set,",
".srs — скомпилированный, для него нужен бинарь sing-box (rule-set decompile).",
"json_url — необязательный текстовый близнец того же списка: если он есть,",
"sync обходится без sing-box."
],
"aggregate": "discord",
"sources": [
{
"name": "metacubex",
"note": "MetaCubeX meta-rules-dat, ветка sing (домены)",
"url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/refs/heads/sing/geo/geosite/discord.srs",
"json_url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/refs/heads/sing/geo/geosite/discord.json",
"target": "discord-metacubex"
},
{
"name": "itdoginfo",
"note": "itdoginfo/allow-domains, последний релиз",
"url": "https://github.com/itdoginfo/allow-domains/releases/latest/download/discord.srs",
"target": "discord-itdoginfo"
},
{
"name": "you-oops",
"note": "you-oops-dev/ipranges-singbox (диапазоны сетей)",
"url": "https://raw.githubusercontent.com/you-oops-dev/ipranges-singbox/refs/heads/main/discord/discord.srs",
"target": "discord-youoops"
},
{
"name": "legiz",
"note": "legiz-ru/sb-rule-sets, адреса голосовых узлов",
"url": "https://raw.githubusercontent.com/legiz-ru/sb-rule-sets/refs/heads/main/discord-voice-ip-list.json",
"target": "discord-legiz"
},
{
"name": "vernette",
"note": "vernette/rulesets, голосовой трафик UDP 50000-50099",
"url": "https://raw.githubusercontent.com/vernette/rulesets/refs/heads/master/json/discord-voice-chats.json",
"target": "discord-vernette"
}
]
}