update-geodata.sh теперь ходит по списку SOURCES (строка «URL-базы|имя»),
а не по одной базе: ipcheck.dat и оба discord-.dat обновляются за один
запуск и с одним перезапуском сервиса. Старый вызов с DEST продолжает
работать — каталог берётся из него.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Домены и сети 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>