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(); }
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); }
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); }