Files
chatballs/apps/backend/hub_platform/integrations
Andrey 4b112ae3f8 feat(integrations): SOCKS5-прокси + единый opener (DRY)
Раньше ProxyHandler-логика дублировалась в openrouter/checks/transports и
поддерживала только http/https. Telegram/SOCKS-сервисы требуют SOCKS5 — теперь
единый build_opener поддерживает http/https/socks5/socks5h во всех интеграциях.

- integrations/proxy.py (новый): build_opener(proxy_url) — http/https через
  stdlib ProxyHandler; socks5/socks5h через кастомный _SocksProxyHandler (PySocks,
  изолированный от остального процесса: переопределённый .connect, не глобальный
  monkeypatch socket). socks5h → DNS через прокси (rdns=True). Без PySocks при
  SOCKS-схеме — ValueError с явным сообщением.
- openrouter.py / checks.py / transports/base.py: убрано дублирование ProxyHandler,
  все используют build_opener (chat, embeddings, check_*, MAX/Telegram transport).
- requirements.txt: PySocks>=1.7.
- IntegrationForm.tsx: placeholder упоминает socks5://.
- tests.py: build_opener socks-схема строит handler; http → ProxyHandler; без
  PySocks → ValueError; check_*/OpenRouter прокидывают proxy_url (вкл socks5).
2026-07-10 04:19:03 +03:00
..