예제 #1
0
        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 + "Больше лотов у данного продавца не найдено");
                }
            }
        }
예제 #2
0
        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
                                               );
            }
        }
예제 #3
0
        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
                                               );
            }
        }
예제 #4
0
        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, $"Аккаунт уже есть");
            }
        }