This commit is contained in:
taz
2025-08-13 14:25:58 +02:00
parent d80277c4f1
commit 41713066df
3 changed files with 43 additions and 42 deletions
+40 -41
View File
@@ -29,49 +29,48 @@ func main() {
discordChannelID := os.Getenv("DISCORD_CHANNEL_ID") // string discordChannelID := os.Getenv("DISCORD_CHANNEL_ID") // string
vkPeerID := os.Getenv("VK_PEER_ID") // int vkPeerID := os.Getenv("VK_PEER_ID") // int
forward := func(text string, from string) { forward := func(text string, from string) {
log.Printf("[Bridge] Пересылка сообщения от %s: %s", from, text) log.Printf("[Bridge] Пересылка сообщения от %s: %s", from, text)
// Определяем источник и рассылаем в остальные платформы // Определяем источник и рассылаем в остальные платформы
switch { switch {
case from == "telegram": case from == "telegram":
// В Discord и VK // В Discord и VK
if discordChannelID != "" { if discordChannelID != "" {
_ = bridge.SendToDiscord(discordChannelID, "[TG] "+text) _ = bridge.SendToDiscord(discordChannelID, "[TG] "+from+": "+text)
} }
if vkPeerID != "" { if vkPeerID != "" {
// конвертация vkPeerID в int if id, err := strconv.Atoi(vkPeerID); err == nil {
if id, err := strconv.Atoi(vkPeerID); err == nil { _ = bridge.SendToVK(id, "[TG] "+from+": "+text)
_ = bridge.SendToVK(id, "[TG] "+text) }
} }
} case from == "discord":
case from == "discord": // В Telegram и VK
// В Telegram и VK if telegramChatID != "" {
if telegramChatID != "" { if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil {
if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { _ = bridge.SendToTelegram(id, "[DS] "+from+": "+text)
_ = bridge.SendToTelegram(id, "[DS] "+text) }
} }
} if vkPeerID != "" {
if vkPeerID != "" { if id, err := strconv.Atoi(vkPeerID); err == nil {
if id, err := strconv.Atoi(vkPeerID); err == nil { _ = bridge.SendToVK(id, "[DS] "+from+": "+text)
_ = bridge.SendToVK(id, "[DS] "+text) }
} }
} default:
case from == "vk": // Считаем, что from — это VK ID
// В Telegram и Discord if telegramChatID != "" {
if telegramChatID != "" { if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil {
if id, err := strconv.ParseInt(telegramChatID, 10, 64); err == nil { _ = bridge.SendToTelegram(id, "[VK] VK ID "+from+": "+text)
_ = bridge.SendToTelegram(id, "[VK] "+text) }
} }
} if discordChannelID != "" {
if discordChannelID != "" { _ = bridge.SendToDiscord(discordChannelID, "[VK] VK ID "+from+": "+text)
_ = bridge.SendToDiscord(discordChannelID, "[VK] "+text) }
} }
} }
}
bridge.StartTelegramListener(func(text, _ string) { forward(text, "telegram") }) bridge.StartTelegramListener(func(text, from string) { forward(text, from) })
bridge.StartDiscordListener(func(text, _ string) { forward(text, "discord") }) bridge.StartDiscordListener(func(text, from string) { forward(text, from) })
bridge.StartVKListener(func(text, _ string) { forward(text, "vk") }) bridge.StartVKListener(func(text, _ string) { forward(text, "vk") })
select {} // Блокируем main, чтобы слушатели работали select {} // Блокируем main, чтобы слушатели работали
+1
View File
@@ -17,6 +17,7 @@ func (b *Bridge) StartTelegramListener(forward func(text string, from string)) {
continue continue
} }
log.Printf("[Telegram] %s: %s", update.Message.From.UserName, update.Message.Text) log.Printf("[Telegram] %s: %s", update.Message.From.UserName, update.Message.Text)
// Передаём имя отправителя
forward(update.Message.Text, update.Message.From.UserName) forward(update.Message.Text, update.Message.From.UserName)
} }
}() }()
+2 -1
View File
@@ -29,7 +29,8 @@ func (b *Bridge) StartVKListener(forward func(text string, from string)) {
lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) { lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
log.Printf("[VK] %d: %s", obj.Message.FromID, obj.Message.Text) 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() go lp.Run()
} }