diff --git a/discord.go b/discord.go index 2d48e326a8f5151e226d304b75a17eea54e7c3c9..41c7472f9fbe7bb7160718453c32c99dccf679d8 100644 --- a/discord.go +++ b/discord.go @@ -85,7 +85,10 @@ func openDiscord() { ready <- struct{}{} } -var idReference = make(map[string]int) +var ( + idReference = make(map[string]int) + referenceId = make(map[int]*discordgo.MessageReference) +) func handleDiscord() { session.AddHandler(discordHandleCreate) @@ -151,6 +154,11 @@ func discordHandleCreate(session *discordgo.Session, create *discordgo.MessageCr return } else { idReference[create.Message.ID] = m.MessageID + referenceId[m.MessageID] = &discordgo.MessageReference{ + MessageID: create.Message.ID, + ChannelID: create.ChannelID, + GuildID: create.GuildID, + } } log.Printf("D%vM%s -> T%vM%v %s#%s (%s): %s", diff --git a/telegram.go b/telegram.go index b55cbf35897348c11c941931b0e64bb7f5ba72dd..0e44195dfe6802b059391f2e9058208c0c8177c4 100644 --- a/telegram.go +++ b/telegram.go @@ -226,6 +226,9 @@ func respondTelegram(update tgbotapi.Update) { if r, ok := messageReference[update.Message.ReplyToMessage.MessageID]; ok { reference = r setTelegramPreviousCaller(update.Message.Chat.ID, -1) + } else if r, ok = referenceId[update.Message.ReplyToMessage.MessageID]; ok { + reference = r + setTelegramPreviousCaller(update.Message.Chat.ID, -1) } }