From 5cf96bb461fa1e2a21ef63d66132c965126cb676 Mon Sep 17 00:00:00 2001 From: XzbestX Date: Wed, 27 May 2026 10:41:43 +0900 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B2=D1=81=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D1=8B=20=D1=81=20=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B5=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=81=D1=82=D0=BE=D0=BB=D0=B0=20(=D0=BC=D0=B0=D0=BA?= =?UTF-8?q?=D1=81=D0=B8=D0=BC=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 10 +++------- docker-compose.yml | 7 ------- max.go | 17 +++++++---------- telegram.go | 9 +++------ tgsender_impl.go | 4 ++-- 5 files changed, 15 insertions(+), 32 deletions(-) diff --git a/.env.example b/.env.example index 242849d..571cb3f 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ -TG_TOKEN=8627237404:AAG8wBzJOrTVpxQul93S98N5F6E513r6ImQ -MAX_TOKEN=f9LHodD0cOKnd3fqVPTcDK3htO_ZkeYXd0YMddIswlYakC0_EwMG7DucyrZh0-E4ki9d5c-WaygJBnQp-8MS - +TG_TOKEN=8845243080:AAHUN8uooRapQbH4hBN5gPX9kkZqKj8ixnI +MAX_TOKEN=f9LHodD0cOJYa8zzWI_4KS_mUCnUSIcmxlPIoJXIujjapnGbNMQfreciWRtC_StLAPuzewChQ-BJ2CHokFPL +TG_API_URL=http://dpi-bypass:8443 # Max file size for forwarding (in MB). 0 or not set = unlimited. # TG→MAX: Telegram getFile API is limited to 20 MB. @@ -19,10 +19,6 @@ MAX_TOKEN=f9LHodD0cOKnd3fqVPTcDK3htO_ZkeYXd0YMddIswlYakC0_EwMG7DucyrZh0-E4ki9d5c # WEBHOOK_URL=https://bridge.example.com # WEBHOOK_PORT=8443 -# Локальный Telegram Bot API сервер (снимает лимиты на размер файлов) -# https://github.com/tdlib/telegram-bot-api -# TG_API_URL=http://localhost:8081 - # Уровень логирования: debug, info (по умолчанию), warn, error # LOG_LEVEL=info diff --git a/docker-compose.yml b/docker-compose.yml index 1fdae44..5ffc2ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,9 +8,6 @@ services: depends_on: postgres: condition: service_healthy - networks: - - default - - caddy-net postgres: image: postgres:17-alpine @@ -29,7 +26,3 @@ services: volumes: pgdata: - -networks: - caddy-net: - external: true diff --git a/max.go b/max.go index e6c7b39..1e025b6 100644 --- a/max.go +++ b/max.go @@ -184,10 +184,8 @@ func (b *Bridge) listenMax(ctx context.Context) { if text == "/whoami" { m := maxbot.NewMessage().SetChat(chatID).SetText( - "MaxTelegramBridgeBot — мост между Telegram и MAX.\n" + - "Автор: Andrey Lugovskoy (@BEARlogin)\n" + - "Исходники: https://github.com/BEARlogin/max-telegram-bridge-bot\n" + - "Лицензия: CC BY-NC 4.0") + "Бот-мост между MAX и Telegram.\n" + + "Версия: 0.3.2") b.maxApi.Messages.Send(ctx, m) continue } @@ -221,8 +219,7 @@ func (b *Bridge) listenMax(ctx context.Context) { " MAX: " + b.cfg.MaxBotURL + "\n" + "2. В одном из чатов отправьте /bridge\n" + "3. Бот выдаст ключ — отправьте его в другом чате\n" + - "4. Готово!\n\n" + - "Поддержка: https://github.com/BEARlogin/max-telegram-bridge-bot/issues") + "4. Готово!") b.maxApi.Messages.Send(ctx, m) continue } @@ -419,11 +416,11 @@ func (b *Bridge) listenMax(ctx context.Context) { } // Достаём TG owner ID (кто переслал пост из TG-канала в TG-бот) - b.cpTgOwnerMu.Lock() - tgOwnerID := b.cpTgOwner[tgChannelID] - b.cpTgOwnerMu.Unlock() + b.cpTgOwnerMu.Lock() + tgOwnerID := b.cpTgOwner[tgChannelID] + b.cpTgOwnerMu.Unlock() - if err := b.repo.PairCrosspost(tgChannelID, maxChannelID, msgUpd.Message.Sender.UserId, tgOwnerID); err != nil { + if err := b.repo.PairCrosspost(tgChannelID, maxChannelID, msgUpd.Message.Sender.UserId, tgOwnerID); err != nil { slog.Error("crosspost pair failed", "err", err) m := maxbot.NewMessage().SetChat(chatID).SetText("Ошибка при создании связки.") b.maxApi.Messages.Send(ctx, m) diff --git a/telegram.go b/telegram.go index b415c80..e5ff709 100644 --- a/telegram.go +++ b/telegram.go @@ -134,10 +134,8 @@ func (b *Bridge) listenTelegram(ctx context.Context) { if text == "/whoami" { b.tg.SendMessage(ctx, msg.Chat.ID, - "MaxTelegramBridgeBot — мост между Telegram и MAX.\n"+ - "Автор: Andrey Lugovskoy (@BEARlogin)\n"+ - "Исходники: https://github.com/BEARlogin/max-telegram-bridge-bot\n"+ - "Лицензия: CC BY-NC 4.0", &SendOpts{ThreadID: msg.MessageThreadID}) + "Бот-мост между Telegram и MAX.\n"+ + "Версия: 0.3.2", &SendOpts{ThreadID: msg.MessageThreadID}) continue } @@ -169,8 +167,7 @@ func (b *Bridge) listenTelegram(ctx context.Context) { "2. В MAX сделайте бота админом группы\n"+ "3. В одном из чатов отправьте /bridge\n"+ "4. Бот выдаст ключ — отправьте /bridge <ключ> в другом чате\n"+ - "5. Готово!\n\n"+ - "Поддержка: https://github.com/BEARlogin/max-telegram-bridge-bot/issues", &SendOpts{ThreadID: msg.MessageThreadID}) + "5. Готово!", &SendOpts{ThreadID: msg.MessageThreadID}) continue } diff --git a/tgsender_impl.go b/tgsender_impl.go index 6c7ccb4..9aebdf8 100644 --- a/tgsender_impl.go +++ b/tgsender_impl.go @@ -24,7 +24,7 @@ func NewTGBotSender(ctx context.Context, token, apiURL string) (*tgBotSender, er s := &tgBotSender{ token: token, apiURL: apiURL, - updates: make(chan TGUpdate, 5000), + updates: make(chan TGUpdate, 100), } opts := []bot.Option{ @@ -237,7 +237,7 @@ func (s *tgBotSender) GetFile(ctx context.Context, fileID string) (string, error func (s *tgBotSender) GetFileDirectURL(filePath string) string { if s.apiURL != "" { - return s.apiURL + "/file/bot" + s.token + "/" + filePath + return s.apiURL + "/" + filePath } return "https://api.telegram.org/file/bot" + s.token + "/" + filePath }