diff --git a/main.go b/main.go index 092c35b..3954942 100644 --- a/main.go +++ b/main.go @@ -29,49 +29,48 @@ func main() { discordChannelID := os.Getenv("DISCORD_CHANNEL_ID") // string vkPeerID := os.Getenv("VK_PEER_ID") // int - forward := func(text string, from string) { - log.Printf("[Bridge] Пересылка сообщения от %s: %s", from, text) + forward := func(text string, from string) { + log.Printf("[Bridge] Пересылка сообщения от %s: %s", from, text) - // Определяем источник и рассылаем в остальные платформы - switch { - case from == "telegram": - // В Discord и VK - if discordChannelID != "" { - _ = bridge.SendToDiscord(discordChannelID, "[TG] "+text) - } - if vkPeerID != "" { - // конвертация vkPeerID в int - if id, err := strconv.Atoi(vkPeerID); err == nil { - _ = bridge.SendToVK(id, "[TG] "+text) - } - } - case from == "discord": - // В Telegram и VK - if telegramChatID != "" { - if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { - _ = bridge.SendToTelegram(id, "[DS] "+text) - } - } - if vkPeerID != "" { - if id, err := strconv.Atoi(vkPeerID); err == nil { - _ = bridge.SendToVK(id, "[DS] "+text) - } - } - case from == "vk": - // В Telegram и Discord - if telegramChatID != "" { - if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { - _ = bridge.SendToTelegram(id, "[VK] "+text) - } - } - if discordChannelID != "" { - _ = bridge.SendToDiscord(discordChannelID, "[VK] "+text) - } - } - } + // Определяем источник и рассылаем в остальные платформы + switch { + case from == "telegram": + // В Discord и VK + if discordChannelID != "" { + _ = bridge.SendToDiscord(discordChannelID, "[TG] "+from+": "+text) + } + if vkPeerID != "" { + if id, err := strconv.Atoi(vkPeerID); err == nil { + _ = bridge.SendToVK(id, "[TG] "+from+": "+text) + } + } + case from == "discord": + // В Telegram и VK + if telegramChatID != "" { + if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { + _ = bridge.SendToTelegram(id, "[DS] "+from+": "+text) + } + } + if vkPeerID != "" { + if id, err := strconv.Atoi(vkPeerID); err == nil { + _ = bridge.SendToVK(id, "[DS] "+from+": "+text) + } + } + default: + // Считаем, что from — это VK ID + if telegramChatID != "" { + if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { + _ = bridge.SendToTelegram(id, "[VK] VK ID "+from+": "+text) + } + } + if discordChannelID != "" { + _ = bridge.SendToDiscord(discordChannelID, "[VK] VK ID "+from+": "+text) + } + } + } - bridge.StartTelegramListener(func(text, _ string) { forward(text, "telegram") }) - bridge.StartDiscordListener(func(text, _ string) { forward(text, "discord") }) + bridge.StartTelegramListener(func(text, from string) { forward(text, from) }) + bridge.StartDiscordListener(func(text, from string) { forward(text, from) }) bridge.StartVKListener(func(text, _ string) { forward(text, "vk") }) select {} // Блокируем main, чтобы слушатели работали diff --git a/telegram_listener.go b/telegram_listener.go index 830e8a8..24a9672 100644 --- a/telegram_listener.go +++ b/telegram_listener.go @@ -17,6 +17,7 @@ func (b *Bridge) StartTelegramListener(forward func(text string, from string)) { continue } log.Printf("[Telegram] %s: %s", update.Message.From.UserName, update.Message.Text) + // Передаём имя отправителя forward(update.Message.Text, update.Message.From.UserName) } }() diff --git a/vk_listener.go b/vk_listener.go index 83f279c..96f27b8 100644 --- a/vk_listener.go +++ b/vk_listener.go @@ -29,7 +29,8 @@ func (b *Bridge) StartVKListener(forward func(text string, from string)) { lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) { log.Printf("[VK] %d: %s", obj.Message.FromID, obj.Message.Text) - forward(obj.Message.Text, "vk:"+strconv.Itoa(obj.Message.FromID)) + // Передаём текст и имя отправителя (ID) + forward(obj.Message.Text, strconv.Itoa(obj.Message.FromID)) }) go lp.Run() }