コード例 #1
0
    public void SaveHitActivity(HitActivity hitActivity)
    {
        var op = Operation.Begin(
            "Saving Flood activity for UserId: {UserId} at ChatId: {ChatId}",
            hitActivity.FromId,
            hitActivity.ChatId
            );

        _hitActivities.Insert(hitActivity);

        op.Complete();
    }
コード例 #2
0
    public async Task HitActivityAsync(HitActivity hitActivity)
    {
        Log.Information("Starting Hit Activity");

        // var message = telegramService.MessageOrEdited;
        // var botUser = await telegramService.GetBotMeAsync();
        //
        // var data = new Dictionary<string, object>()
        // {
        //     {"via_bot", botUser.Username},
        //     {"message_type", message.Type.ToString()},
        //     {"from_id", message.From.Id},
        //     {"from_first_name", message.From.FirstName},
        //     {"from_last_name", message.From.LastName},
        //     {"from_username", message.From.Username},
        //     {"from_lang_code", message.From.LanguageCode},
        //     {"chat_id", message.Chat.Id},
        //     {"chat_username", message.Chat.Username},
        //     {"chat_type", message.Chat.Type.ToString()},
        //     {"chat_title", message.Chat.Title},
        // };
        //
        // var insertHit = await new Query("hit_activity")
        //     .ExecForMysql(true)
        //     .InsertAsync(data);
        //
        // Log.Information("Insert Hit: {InsertHit}", insertHit);

        var path = "Storage/Caches/hit-buffer.csv".EnsureDirectory();
        // var hitActivity = new HitActivity()
        // {
        //     ViaBot = botUser.Username,
        //     MessageType = message.Type.ToString(),
        //     FromId = message.From.Id,
        //     FromFirstName = message.From.FirstName,
        //     FromLastName = message.From.LastName,
        //     FromUsername = message.From.Username,
        //     FromLangCode = message.From.LanguageCode,
        //     ChatId = message.Chat.Id.ToString(),
        //     ChatUsername = message.Chat.Username,
        //     ChatType = message.Chat.Type.ToString(),
        //     ChatTitle = message.Chat.Title,
        //     Timestamp = DateTime.Now
        // };

        var insertBuffer = hitActivity.AppendRecord(path);

        Log.Debug("Buffer Hit activity saved to {InsertBuffer}", insertBuffer);
    }
コード例 #3
0
    public FloodCheckResult RunFloodCheck(HitActivity hitActivity)
    {
        var chatId = hitActivity.ChatId;
        var userId = hitActivity.FromId;

        SaveHitActivity(hitActivity);

        var floodCheck = IsFlood(chatId, userId);

        // if (!floodCheck.IsFlood)
        // {
        // }

        // if (floodCheck.IsFlood)
        // {
        // }
        RemoveOldActivities(chatId, userId);

        return(floodCheck);
    }