Migrate to database storage in UrlLimitations

This commit is contained in:
2020-03-08 12:38:00 +04:00
parent 3fd5042367
commit 73cfe51312
7 changed files with 151 additions and 48 deletions
+10 -5
View File
@@ -1,25 +1,30 @@
using System;
using System.Threading.Tasks;
using BotFramework;
using BotFramework.Attributes;
using BotFramework.Setup;
using Kruzya.TelegramBot.Core.Cache;
using Kruzya.TelegramBot.Core.Data;
using Kruzya.TelegramBot.Core.Extensions;
using Telegram.Bot.Types.Enums;
namespace Kruzya.TelegramBot.UrlLimitations
{
public class UserJoinHandler : BotEventHandler
{
protected MemoryCache<ChatMember, UInt16> ChatMembersCache;
protected readonly CoreContext dbCtx;
public UserJoinHandler(MemoryCache<ChatMember, UInt16> chatMembersCache)
public UserJoinHandler(CoreContext coreContext)
{
ChatMembersCache = chatMembersCache;
dbCtx = coreContext;
}
[Message(MessageType.ChatMembersAdded, InChat.Public)]
public void OnChatMembersAdded()
public async Task OnChatMembersAdded()
{
ChatMembersCache.SetValue(ChatMember.From(Chat.Id, From.Id), 0);
foreach (var member in RawUpdate.Message.NewChatMembers)
await dbCtx.UserValues.SetOptionValue<UInt16>(Chat.Id, member.Id, "urlLimitations.messagesAfterJoin",
0);
}
}
}