Ejemplo n.º 1
0
        public async Task <List <string> > RunScenario(IAccountData accountData, string[] vkAccountNames)
        {
            var result = new List <string>();

            try
            {
                using (var browser = await PuppeteerBrowser.GetBrowser(_chromiumSettings.GetPath(), _chromiumSettings.GetHeadless()))
                    using (var page = await browser.NewPageAsync())
                    {
                        if (accountData != null)
                        {
                            var vkAuthorizationAuth = await VkAuthorization.Auth(page, accountData);

                            Info($"Авторизация ВКонтакте успешна - {vkAuthorizationAuth}");
                        }
                        else
                        {
                            Info("Нет данных для авторизация ВКонтакте");
                        }
                        foreach (var vkAccountName in vkAccountNames)
                        {
                            if (string.IsNullOrEmpty(vkAccountName))
                            {
                                continue;
                            }
                            var response = await page.GoToAsync($"https://vk.com/{vkAccountName}");

                            var checkVkAccountResult = new CheckVkAccountOutput
                            {
                                AccountName = vkAccountName,
                                Available   = response.Ok
                            };
                            _progressResult?.Report(checkVkAccountResult);
                            var text = JsonConvert.SerializeObject(checkVkAccountResult);
                            Info(text);
                            result.Add(text);
                        }
                    }
            }
            catch (Exception exception)
            {
                Error(exception.Message);
            }
            return(result);
        }
Ejemplo n.º 2
0
        public async Task RunScenario(IAccountData accountData, string[] vkGroups, string message)
        {
            try
            {
                using (var browser = await PuppeteerBrowser.GetBrowser(_chromiumSettings.GetPath(), _chromiumSettings.GetHeadless()))
                    using (var page = await browser.NewPageAsync())
                    {
                        foreach (var vkGroup in vkGroups)
                        {
                            await VkAuthorization.Auth(page, accountData);

                            await page.GoToAsync($"https://vk.com/{vkGroup}");

                            //await page.GoToAsync($"https://vk.com/club188446341");

                            await page.WaitForSelectorAsync("div.submit_post_field", new WaitForSelectorOptions { Timeout = 5000 });

                            await page.ClickAsync("div.submit_post_field");

                            await page.WaitForTimeoutAsync(500);

                            //await page.TypeAsync("div.submit_post_field", "45", new TypeOptions { Delay = 50 });
                            await page.Keyboard.PressAsync($"{nameof(Key.Backspace)}");

                            await page.Keyboard.PressAsync($"{nameof(Key.Backspace)}");

                            await page.TypeAsync("div.submit_post_field", message, new TypeOptions { Delay = 50 });

                            await page.WaitForTimeoutAsync(500);

                            await page.ClickAsync("#send_post");

                            await page.WaitForTimeoutAsync(500);

                            //await page.Keyboard.PressAsync($"{nameof(Key.Enter)}");

                            //Report($"{text}");
                        }
                    }
            }
            catch (Exception exception)
            {
                Error(exception.ToString());
            }
        }
Ejemplo n.º 3
0
        public async Task <List <string> > RunScenario(IAccountData accountData, string[] vkAccountNames, int pageCount)
        {
            var result = new List <string>();

            try
            {
                using (var browser = await PuppeteerBrowser.GetBrowser(_chromiumSettings.GetPath(), _chromiumSettings.GetHeadless()))
                    using (var page = await browser.NewPageAsync())
                    {
                        await VkAuthorization.Auth(page, accountData);

                        var i = 1;
                        foreach (var vkAccountName in vkAccountNames)
                        {
                            await page.GoToAsync($"https://vk.com/{vkAccountName}");

                            var postContentSelector = "div.post_content";
                            var postContent         = await page.QuerySelectorAllAsync(postContentSelector);

                            var postCount = postContent.Length;

                            var cycleIndex    = 1;
                            var postCountPrev = 0;
                            while (postCount >= postCountPrev)
                            {
                                if (cycleIndex >= pageCount)
                                {
                                    break;
                                }
                                postCountPrev = postCount;
                                await page.Keyboard.DownAsync($"{nameof(Key.Control)}");

                                await page.Keyboard.PressAsync($"{nameof(Key.End)}");

                                await page.Keyboard.UpAsync($"{nameof(Key.Control)}");

                                await page.WaitForTimeoutAsync(300);

                                postContent = await page.QuerySelectorAllAsync(postContentSelector);

                                postCount = postContent.Length;
                                cycleIndex++;
                            }

                            foreach (var item in postContent)
                            {
                                Report($"------------{i}------------------------------------------------");
                                var text = (await(await item.GetPropertyAsync("innerText")).JsonValueAsync()).ToString();
                                Report(text);
                                result.Add(text);
                                i++;
                            }
                        }
                    }
            }
            catch (Exception exception)
            {
                Error(exception.ToString());
            }
            return(result);
        }