diff --git a/bot.go b/bot.go index 597acb0..5e35618 100644 --- a/bot.go +++ b/bot.go @@ -414,17 +414,21 @@ func handleNewMessage(ctx context.Context, api *tg.Client, alertPeer *tg.InputPe log.Printf("Failed to restrict user %d: %v", senderID, err) } - // Get supergroup name + // Get supergroup name and username chatName := channel.Title + chatDisplay := escapeMarkdown(chatName) + if channel.Username != "" { + chatDisplay += " (@" + escapeMarkdown(channel.Username) + ")" + } // Build alert message with HTML formatting for markdown v2 matchMessageHTML := fmt.Sprintf("🚨 Matched\nScore: %.2f\nChat: %s (ID: %d)\nUser: %s (ID: %d)\n", - result.score, escapeMarkdown(chatName), chatID, displayName+" ("+username+")", senderID) + result.score, chatDisplay, chatID, displayName+" ("+username+")", senderID) // Send ntfy notification if config set (use plain text for ntfy) if cfg.NtfyToken != "" || cfg.NtfyTopic != "" { plainMessage := fmt.Sprintf("🚨 Matched\nScore: %.2f\nChat: %s (ID: %d)\nUser: %s (ID: %d)\n\n%s", - result.score, escapeMarkdown(chatName), chatID, escapeMarkdown(displayName+" ("+username+")"), senderID, escapeMarkdown(msg.Message)) + result.score, escapeMarkdown(chatDisplay), chatID, escapeMarkdown(displayName+" ("+username+")"), senderID, escapeMarkdown(msg.Message)) notify(plainMessage, cfg.NtfyHost, cfg.NtfyTopic, fmt.Sprintf("Scam Alert: %s", chatName), 5, cfg.NtfyToken) }