feat: make SOCKS5 proxy configurable per adapter
Add `proxy` config option to server (IRC), teams, telegram, and mumble sections. IRC defaults to false (preserving current direct-connect behavior); all others default to true. The `derp.http` module now accepts `proxy=True/False` on urlopen, create_connection, open_connection, and build_opener -- when false, uses stdlib directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -488,6 +488,7 @@ Auth: HMAC-SHA256 via `X-Signature` header. Starts on IRC connect.
|
||||
# config/derp.toml
|
||||
[teams]
|
||||
enabled = true
|
||||
proxy = true # SOCKS5 proxy for outbound HTTP
|
||||
bot_name = "derp"
|
||||
bind = "127.0.0.1"
|
||||
port = 8081
|
||||
@@ -510,6 +511,7 @@ Replies returned as JSON in HTTP response. IRC-only commands (kick, ban, topic)
|
||||
# config/derp.toml
|
||||
[telegram]
|
||||
enabled = true
|
||||
proxy = true # SOCKS5 proxy for HTTP
|
||||
bot_token = "123456:ABC-DEF..." # from @BotFather
|
||||
poll_timeout = 30 # long-poll seconds
|
||||
admins = [123456789] # Telegram user IDs
|
||||
@@ -517,8 +519,8 @@ operators = []
|
||||
trusted = []
|
||||
```
|
||||
|
||||
Long-polling via `getUpdates` -- no public endpoint needed. All HTTP
|
||||
through SOCKS5 proxy. Strips `@botusername` suffix in groups. Messages
|
||||
Long-polling via `getUpdates` -- no public endpoint needed. HTTP through
|
||||
SOCKS5 proxy by default (`proxy = true`). Strips `@botusername` suffix in groups. Messages
|
||||
split at 4096 chars. IRC-only commands are no-ops. ~90% of plugins work.
|
||||
|
||||
## Mumble Integration
|
||||
@@ -527,6 +529,7 @@ split at 4096 chars. IRC-only commands are no-ops. ~90% of plugins work.
|
||||
# config/derp.toml
|
||||
[mumble]
|
||||
enabled = true
|
||||
proxy = true # SOCKS5 proxy for TCP
|
||||
host = "mumble.example.com"
|
||||
port = 64738
|
||||
username = "derp"
|
||||
@@ -537,7 +540,7 @@ operators = []
|
||||
trusted = []
|
||||
```
|
||||
|
||||
TCP/TLS via SOCKS5 proxy. Text chat only (no voice). Minimal protobuf
|
||||
TCP/TLS via SOCKS5 proxy by default (`proxy = true`). Text chat only (no voice). Minimal protobuf
|
||||
codec (no external dep). HTML stripped on receive, escaped on send.
|
||||
IRC-only commands are no-ops. ~90% of plugins work.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user