Exemple #1
0
        //Главная функция программы
        static void Main(string[] args)
        {
            if (!LoadAppSettings())
            {
                return;
            }
            using (var vk = new VkInteraction())
            {
                if (!Authorize(vk))
                {
                    Console.ReadLine();
                    return;
                }

                while (true)
                {
                    Console.WriteLine("Введите id аккаунта: ");
                    string domain = Console.ReadLine();
                    if (string.IsNullOrEmpty(domain))
                    {
                        break;
                    }
                    var wall = vk.GetWall(domain);
                    if (wall == null)
                    {
                        Console.WriteLine("Не найдена стена пользователя или группы " + domain);
                    }
                    else
                    {
                        //Загрузка постов
                        var posts = vk.LoadPostsText(wall, _loadPostsCount, _loadCopyHistory);

                        //Вычисление и округление частотностей букв
                        var frequences        = new TextMetricsCalculator(posts).CalcLettersFrequences();
                        var roundedFrequences = RoundFrequences(frequences);

                        string pref = $"{domain}, статистика для последних {_loadPostsCount} постов: ";
                        //В консоль выводим статистику красиво
                        Console.WriteLine(pref);
                        foreach (var pair in roundedFrequences)
                        {
                            Console.WriteLine($"\"{pair.Key}\": {pair.Value}");
                        }

                        //На стену выводим, как и просили, в формате JSON
                        var json    = JsonConvert.SerializeObject(roundedFrequences);
                        var resWall = vk.GetWall(_resultPostDomain);
                        if (resWall == null)
                        {
                            Console.WriteLine("Не найдена стена пользователя или группы " + domain + " для размещения записей");
                        }

                        vk.WritePost(resWall, pref + json);
                    }
                }
            }
        }
Exemple #2
0
 //Загрузка параметров авторизации и запрос пароля
 //Возвращает true, если авторизация прошла успешно
 static bool Authorize(VkInteraction vk) //Объект для взаимодействия с ВК
 {
     //Авторизация прекращается при вводе правильного пароля с успехом, или при вводе пустой строки завершением работы программы
     while (true)
     {
         Console.WriteLine("Введите пароль пользователя:");
         string password = EnterPassword();
         if (string.IsNullOrEmpty(password))
         {
             return(false);
         }
         Func <string> twoFactorFun = _useTwoFactorAuthorization ? EnterConfirmCode : (Func <string>)null;
         try
         {
             vk.Authorize(_userLogin, password, twoFactorFun);
             break;
         }
         catch (Exception ex) when(ex is VkApiAuthorizationException || ex is VkApiException)
         {
             Console.WriteLine("Ошибка авторизации. Неправильный логин или пароль");
         }
     }
     return(true);
 }