public override async Task Execute(Message message, TelegramBotClient botClient, Microsoft.Extensions.Configuration.IConfiguration configuration) { var chatId = message.Chat.Id; var link = ""; try { link = message.Text.Split(' ')[1]; } catch { return; } await using var db = new DbNorthwind(); var kidal = new Kidals(); kidal = await db.Kidals.FirstOrDefaultAsync(f => f.VkLink == link || f.VkLink == link.Replace("https://", "")); var listWeapon = new List <WeaponList>(); if (kidal is null) { int.TryParse(link.Replace("vk.com/id", ""), out int idFirst); int.TryParse(link.Replace("https://vk.com/id", ""), out int idSecond); listWeapon = await db.WeaponList.Where(w => w.UserId == idFirst || w.UserId == idSecond).ToListAsync(); } else { listWeapon = await db.WeaponList.Where(w => w.UserId == kidal.VkId).ToListAsync(); } if (listWeapon.Count > 1) { var list = new InlineKeyboardMarkup(new List <InlineKeyboardButton>() { InlineKeyboardButton.WithCallbackData("Показать лоты", "Показать лоты" + listWeapon[0].UserId) }); if (kidal is null) { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: vk.com/id{listWeapon[0].UserId}" + Environment.NewLine + "✅ В списках ненадежных продавцов не найден" + Environment.NewLine + Environment.NewLine + $"Чтобы посмотреть все лоты данного человека нажмите на кнопку ({listWeapon.Count} лотов)", replyMarkup : list); } else { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: vk.com/id{listWeapon[0].UserId}" + Environment.NewLine + $"❗ Найден в списке мошенников: https://vk.com/topic-{kidal.GroupId}_{kidal.TopicId}?post={kidal.PostId}" + Environment.NewLine + Environment.NewLine + $"Чтобы посмотреть все лоты данного человека нажмите на кнопку ({listWeapon.Count} лотов)", replyMarkup : list); } } else { if (!listWeapon.Any()) { if (kidal is null) { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: {link}" + Environment.NewLine + "✅В списках ненадежных продавцов не найден" + Environment.NewLine + Environment.NewLine + " Лотов у данного продавца не найдено"); } else { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: {link}" + Environment.NewLine + $"❗ Найден в списке мошенников: https://vk.com/topic-{kidal.GroupId}_{kidal.TopicId}?post={kidal.PostId}" + Environment.NewLine + Environment.NewLine + $"Лотов у данного продавца не найдено"); } } else if (kidal is null) { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: vk.com/id{listWeapon[0].UserId}" + Environment.NewLine + "✅ В списках ненадежных продавцов не найден" + Environment.NewLine + Environment.NewLine + "Больше лотов у данного продавца не найдено"); } else { await botClient.SendTextMessageAsync(chatId, "Информация по аккаунту: " + Environment.NewLine + $"Профиль: vk.com/id{listWeapon[0].UserId}" + Environment.NewLine + $"❗ Найден в списке мошенников: https://vk.com/topic-{kidal.GroupId}_{kidal.TopicId}?post={kidal.PostId}" + Environment.NewLine + Environment.NewLine + "Больше лотов у данного продавца не найдено"); } } }
async Task SendPhoto(string text, string url, string scr, int vkId, int chatId, TelegramBotClient botClient, Kidals kidals = null) { if (kidals != null) { var list = new InlineKeyboardMarkup(new List <InlineKeyboardButton>() { new InlineKeyboardButton() { Text = "Перейти", Url = url, }, new InlineKeyboardButton() { Text = "❗Мошенник.Инфо.", Url = $"https://vk.com/topic-{kidals.GroupId}_{kidals.TopicId}?post={kidals.PostId}", }, }); await botClient.SendPhotoAsync(chatId, photo : scr, caption : text, replyMarkup : list); } else { var list = new InlineKeyboardMarkup(new List <InlineKeyboardButton>() { new InlineKeyboardButton() { Text = "Перейти", Url = url, }, }); await botClient.SendPhotoAsync(chatId, photo : scr, caption : text, replyMarkup : list ); } }
async Task SendPhoto(string text, string url, string scr, int vkId, int chatId, TelegramBotClient botClient, Kidals kidals = null) { if (kidals != null) { var list = new InlineKeyboardMarkup(new List <InlineKeyboardButton>() { new InlineKeyboardButton() { Text = "Перейти", Url = url, }, new InlineKeyboardButton() { Text = "❗Мошенник.Инфо.", Url = $"https://vk.com/topic-{kidals.GroupId}_{kidals.TopicId}?post={kidals.PostId}", }, InlineKeyboardButton.WithCallbackData("Проверить", "Проверить" + vkId) }); text += Environment.NewLine + Environment.NewLine + "❗❗❗ Найден в списках мошенников ❗❗❗"; await botClient.SendPhotoAsync(chatId, photo : scr, caption : text, replyMarkup : list); } else { var list = new InlineKeyboardMarkup(new List <InlineKeyboardButton>() { new InlineKeyboardButton() { Text = "Перейти", Url = url, }, InlineKeyboardButton.WithCallbackData("Проверить", "Проверить" + vkId) }); text += Environment.NewLine + Environment.NewLine + "✅ В списках мошенников не найден"; await botClient.SendPhotoAsync(chatId, photo : scr, caption : text, replyMarkup : list ); } }
public override async Task Execute(Message message, TelegramBotClient botClient, Microsoft.Extensions.Configuration.IConfiguration configuration) { var adminChatId = Startup.StaticConfig.GetSection("Settings").Get <Settings>().AdminChatId; var chatId = message.Chat.Id; if (adminChatId != chatId) { return; } var kidal = new Kidals(); var request = new RestRequest("board.getComments"); var client = new RestClient("https://api.vk.com/method"); var groupId = message.Text.Replace("/add https://vk.com/topic-", "").Split('_')[0]; var topicId = message.Text.Replace("/add https://vk.com/topic-", "").Split('_')[1].Split('?')[0]; var commentId = message.Text.Replace("/add https://vk.com/topic-", "").Split('_')[1].Split('?')[1].Replace("post=", ""); Console.WriteLine($"{groupId},{topicId},{commentId}"); request.AddQueryParameter("access_token", "2329557afb5eaa5f8280b747b1ca43320eee63e7098c0ed8fcf802d94ea3692ca8bfc0416547cb7b7e15c"); request.AddQueryParameter("group_id", groupId); request.AddQueryParameter("topic_id", topicId); request.AddQueryParameter("start_comment_id", commentId); request.AddQueryParameter("sort", "desc"); request.AddQueryParameter("count", "1"); request.AddQueryParameter("v", "5.103"); var res = await client.ExecuteAsync(request); var response = JsonConvert.DeserializeObject <HangfireTasks.RootObject>(res.Content); await using var db = new DbNorthwind(); var kidalsList = await db.Kidals.ToListAsync(); var newKidalsList = new List <Kidals>(); if (response.response != null) { foreach (var item in response.response.Items) { var regex = new Regex(@"vk.com/([^ \n]+)"); MatchCollection matches = regex.Matches(item.Text); if (matches.Any()) { foreach (Match math in matches) { if (math.Value.Contains("photo") || math.Value.Contains("wall") || math.Value.Contains("public")) { continue; } if (kidalsList.FirstOrDefault(f => f.VkLink == math.Value.Replace(",", "").Replace("?", "").Replace("!", "").Replace(")", "")) == null || newKidalsList.Select(s => s.VkLink).Contains(math.Value.Replace(",", "").Replace("?", "").Replace("!", "").Replace(")", ""))) { var regex2 = new Regex(@"vk.com/id[0-9\(\)]+"); MatchCollection matches2 = regex2.Matches(math.Value); if (matches2.Any()) { foreach (Match math2 in matches2) { try { if (kidalsList.FirstOrDefault(f => f.VkLink == math2.Value.Replace(",", "").Replace("?", "") .Replace("!", "").Replace(")", "")) == null || newKidalsList.Select(s => s.VkLink) .Contains(math2.Value.Replace(",", "").Replace("?", "") .Replace("!", "").Replace(")", ""))) { newKidalsList.Add(new Kidals() { PostId = (int)item.Id, VkId = int.Parse(math2.Value.Replace("vk.com/id", "") .Replace(")", "")), VkLink = math.Value.Replace(",", "").Replace("?", "") .Replace("!", "").Replace(")", ""), IsDelete = false, GroupId = groupId, TopicId = topicId }); } } catch { } } } else { try { newKidalsList.Add(new Kidals() { PostId = (int)item.Id, VkId = 0, VkLink = math.Value.Replace(",", "").Replace("?", "").Replace("!", "").Replace(")", ""), IsDelete = false, GroupId = groupId, TopicId = topicId }); } catch { } } } } } } } if (newKidalsList.Any()) { db.BulkCopy(newKidalsList); var resString = "Успешно добавлено" + Environment.NewLine; newKidalsList.ForEach(x => resString += x.VkLink + Environment.NewLine); await botClient.SendTextMessageAsync(chatId, $"{resString}"); } else { await botClient.SendTextMessageAsync(chatId, $"Аккаунт уже есть"); } }