Initial commit

This commit is contained in:
eleksir
2025-06-08 04:32:16 +03:00
parent c1ad1d3925
commit 02b4205922
18 changed files with 462 additions and 254 deletions

View File

@@ -6,7 +6,6 @@ import (
"time"
"github.com/NicoNex/echotron/v3"
"github.com/akyoto/cache"
)
// newChatMember parses one of types ChatMemberUpdated event.
@@ -25,28 +24,16 @@ func newChatMember(msg *echotron.Update) {
msg.ChatMember.OldChatMember.Status,
)
// If there is no such chatid, means that no such cache too.
if len(ChatList) == 0 || !slices.Contains(ChatList, msg.Message.Chat.ID) {
Log.Debugf(
"Creating caches for new %s %s (%d)",
msg.ChatMember.Chat.Type,
msg.ChatMember.Chat.Title,
msg.ChatMember.Chat.ID,
)
Log.Debugf(
"Add %s %s (%d) to list of known chats",
msg.ChatMember.Chat.Type,
msg.ChatMember.Chat.Title,
msg.ChatMember.Chat.ID,
)
NewMembers[msg.Message.Chat.ID] = cache.New(1 * time.Minute)
AppearedMembers[msg.Message.Chat.ID] = cache.New(1 * time.Minute)
SquashedMembers[msg.Message.Chat.ID] = cache.New(60 * time.Minute)
Log.Debugf(
"Add %s %s (%d) to list of known chats",
msg.ChatMember.Chat.Type,
msg.ChatMember.Chat.Title,
msg.ChatMember.Chat.ID,
)
ChatList = append(ChatList, msg.Message.Chat.ID)
}
ChatList = append(ChatList, msg.ChatMember.Chat.ID)
slices.Sort(ChatList)
ChatList = slices.Compact(ChatList)
// Check some other attributes.
if msg.ChatMember.OldChatMember.Status == "left" && msg.ChatMember.NewChatMember.Status == "member" {
@@ -150,7 +137,8 @@ func newChatMember(msg *echotron.Update) {
msg.ChatMember.Chat.ID,
)
AppearedMembers[msg.ChatMember.Chat.ID].Set(msg.ChatMember.NewChatMember.User.ID, time.Now().Unix(), 1*time.Minute)
key := fmt.Sprintf("%d+%d", msg.ChatMember.Chat.ID, msg.ChatMember.NewChatMember.User.ID)
AppearedMembers.Set(key, time.Now().Unix(), 1*time.Minute)
}
}