初始化仓库
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
package telegram
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/go-telegram/bot/models"
|
||||
)
|
||||
|
||||
// enrichReplyContent extracts the quoted/original message from a Telegram reply
|
||||
// and formats it so the AI agent can see the context of what the user is replying to.
|
||||
// Returns the enriched content string, or empty string if this is not a reply.
|
||||
func enrichReplyContent(msg *models.Message) string {
|
||||
if msg.ReplyToMessage == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
original := msg.ReplyToMessage
|
||||
var parts []string
|
||||
|
||||
// Extract text content from the original message
|
||||
if original.Text != "" {
|
||||
parts = append(parts, original.Text)
|
||||
} else if original.Caption != "" {
|
||||
parts = append(parts, original.Caption)
|
||||
}
|
||||
|
||||
if original.Location != nil {
|
||||
parts = append(parts, fmt.Sprintf("[Location] Latitude: %.6f, Longitude: %.6f",
|
||||
original.Location.Latitude, original.Location.Longitude))
|
||||
}
|
||||
|
||||
if len(original.Photo) > 0 {
|
||||
parts = append(parts, "[Image]")
|
||||
}
|
||||
|
||||
if original.Document != nil {
|
||||
parts = append(parts, fmt.Sprintf("[File: %s]", original.Document.FileName))
|
||||
}
|
||||
|
||||
if original.Voice != nil {
|
||||
parts = append(parts, "[Voice Message]")
|
||||
}
|
||||
|
||||
if original.Audio != nil {
|
||||
parts = append(parts, fmt.Sprintf("[Audio: %s]", original.Audio.FileName))
|
||||
}
|
||||
|
||||
if len(parts) == 0 {
|
||||
return ""
|
||||
}
|
||||
|
||||
// Identify who wrote the original message
|
||||
fromName := "Unknown"
|
||||
if original.From != nil {
|
||||
fromName = original.From.FirstName
|
||||
if original.From.LastName != "" {
|
||||
fromName += " " + original.From.LastName
|
||||
}
|
||||
if original.From.Username != "" {
|
||||
fromName = "@" + original.From.Username
|
||||
}
|
||||
}
|
||||
|
||||
return fmt.Sprintf("[Reply to %s]: %s", fromName, strings.Join(parts, " "))
|
||||
}
|
||||
Reference in New Issue
Block a user