mirror of
https://github.com/mautrix/telegram.git
synced 2026-05-16 23:15:45 +03:00
tomatrix: include external_url field in messages
This commit is contained in:
@@ -257,6 +257,12 @@ func (tc *TelegramClient) convertToMatrix(
|
||||
log.Warn().Type("reply_to", replyTo).Msg("unhandled reply to type")
|
||||
}
|
||||
}
|
||||
if cm.Parts[0].Extra == nil {
|
||||
cm.Parts[0].Extra = make(map[string]any)
|
||||
}
|
||||
if externalURL := getMessageLink(msg); externalURL != "" {
|
||||
cm.Parts[0].Extra["external_url"] = externalURL
|
||||
}
|
||||
if len(cm.Parts) > 1 {
|
||||
log.Warn().Int("part_count", len(cm.Parts)).Msg("Message has multiple parts")
|
||||
for i, part := range cm.Parts[1:] {
|
||||
@@ -274,6 +280,23 @@ func (tc *TelegramClient) convertToMatrix(
|
||||
return
|
||||
}
|
||||
|
||||
func getMessageLink(msg *tg.Message) string {
|
||||
var chatID int64
|
||||
switch peer := msg.PeerID.(type) {
|
||||
case *tg.PeerChat:
|
||||
chatID = peer.ChatID
|
||||
case *tg.PeerChannel:
|
||||
chatID = peer.ChannelID
|
||||
default: // also PeerUser
|
||||
return ""
|
||||
}
|
||||
topicID := rawGetTopicID(msg.ReplyTo)
|
||||
if topicID > 0 {
|
||||
return fmt.Sprintf("https://t.me/c/%d/%d/%d", chatID, topicID, msg.ID)
|
||||
}
|
||||
return fmt.Sprintf("https://t.me/c/%d/%d", chatID, msg.ID)
|
||||
}
|
||||
|
||||
func (tc *TelegramClient) addForwardHeader(ctx context.Context, part *bridgev2.ConvertedMessagePart, fwd tg.MessageFwdHeader) error {
|
||||
var fwdFromText, fwdFromHTML string
|
||||
switch from := fwd.FromID.(type) {
|
||||
|
||||
Reference in New Issue
Block a user