исправление багов, документация

- telegram: флаг disableIPV6 не работал — IPv6 был отключён всегда
- telegram: log.Fatalf заменён на возврат ошибки
- tools: BuildTelegramTable не падает при строках разной длины
- README.md с примерами использования
- .gitignore обновлён
This commit is contained in:
2026-04-01 16:45:17 +03:00
parent 1d9d56dc87
commit 8331f1a95b
4 changed files with 159 additions and 19 deletions

View File

@@ -2,7 +2,6 @@ package notify
import (
"context"
"log"
"net"
"net/http"
"time"
@@ -21,12 +20,14 @@ func NewTelegram(token string, disableIPV6 bool) (*Bot, error) {
}
transport := &http.Transport{
// Заменяем стандартный DialContext
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
TLSHandshakeTimeout: 10 * time.Second,
}
if disableIPV6 {
transport.DialContext = func(ctx context.Context, network, addr string) (net.Conn, error) {
// "tcp4" отключает IPv6
return dialer.DialContext(ctx, "tcp4", addr)
},
TLSHandshakeTimeout: 10 * time.Second,
}
}
client := &http.Client{
@@ -34,20 +35,9 @@ func NewTelegram(token string, disableIPV6 bool) (*Bot, error) {
Timeout: 60 * time.Second,
}
if disableIPV6 {
client.Transport = &http.Transport{
// Заменяем стандартный DialContext
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
// "tcp4" отключает IPv6
return dialer.DialContext(ctx, "tcp4", addr)
},
TLSHandshakeTimeout: 10 * time.Second,
}
}
botApi, err := tgbotapi.NewBotAPIWithClient(token, tgbotapi.APIEndpoint, client)
if err != nil {
log.Fatalf("Telegram bot api error: %v", err)
return nil, err
}
bot := &Bot{
api: botApi,