From 6ecaf724578fe7ba50838be4af3934b3385bcb7a Mon Sep 17 00:00:00 2001
From: RandomChars <random@chars.jp>
Date: Tue, 9 Nov 2021 12:35:11 +0900
Subject: [PATCH] reference discord messages

---
 discord.go  | 10 +++++++++-
 telegram.go |  3 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/discord.go b/discord.go
index 2d48e32..41c7472 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 b55cbf3..0e44195 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)
 		}
 	}
 
-- 
GitLab