Files
bunny-bot/internal/moon/greet.go
2025-06-17 21:13:29 +03:00

91 lines
1.8 KiB
Go

package moon
import (
"fmt"
"strings"
"time"
"github.com/NicoNex/echotron/v3"
)
// Greet makes greet for user and saves greet event to greet db.
func Greet(users *[]echotron.User, chat *echotron.Chat) {
var (
message = GreetMessages[Random.Intn(len(GreetMessages))]
usernames string
)
for _, u := range *users {
switch {
case strings.TrimSpace(u.FirstName) != "" && strings.TrimSpace(u.LastName) != "":
usernames += fmt.Sprintf(
"[%s %s](tg://user?id=%d), ",
u.FirstName,
u.LastName,
u.ID,
)
case strings.TrimSpace(u.FirstName) != "":
usernames += fmt.Sprintf(
"[%s](tg://user?id=%d), ",
u.FirstName,
u.ID,
)
case strings.TrimSpace(u.LastName) != "":
usernames += fmt.Sprintf(
"[%s](tg://user?id=%d), ",
u.LastName,
u.ID,
)
case strings.TrimSpace(u.Username) != "":
usernames += fmt.Sprintf(
"[%s](tg://user?id=%d), ",
u.Username,
u.ID,
)
default:
usernames += fmt.Sprintf(
"[%d](tg://user?id=%d), ",
u.ID,
u.ID,
)
}
}
usernames = strings.TrimSpace(usernames)
usernames = strings.TrimRight(usernames, ",")
message += fmt.Sprintf(
" %s. Представьтес, пожалуйста, и расскажите, что вас сюда привело.",
usernames,
)
Tg.SendMessage(message, chat.ID, &echotron.MessageOptions{ParseMode: "MarkdownV2"})
timestamp := time.Now().Unix()
for _, u := range *users {
Log.Infof(
"Saving %s %s (username = %s, id = %d) from chat %s %s (%d) to GreetMembers DB",
u.FirstName,
u.LastName,
u.Username,
u.ID,
chat.Type,
chat.Title,
chat.ID,
)
GreetChatMembers.Set(
fmt.Sprintf("%d+%d", chat.ID, u.ID),
timestamp,
60*time.Minute,
)
}
}
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */