Ejemplo n.º 1
0
        private static bool pollingKeyWordDetails(String connString, ChromeDriver driver, KeyWordInfo keyWord, Boolean isAds, Int32 page)
        {
            Boolean success = false;
            ReadOnlyCollection <IWebElement> elements = getElements(isAds, driver);

            if (elements != null)
            {
                foreach (IWebElement element in elements)
                {
                    KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(driver, element, keyWord, isAds, page);
                    if (success = !keyWordDetail.HasError)
                    {
                        success = DataOperation.UpdateSearchResult(connString, keyWordDetail);
                    }
                    //Utilities.Utilities.Log(message: success ? $"." : "X", isWriteLine: false, addTime: false);
                }
            }
            return(success);
        }
Ejemplo n.º 2
0
        internal static void PollingSearchByAPI(string connString, string code)
        {
            Boolean success = false;

            Utilities.Utilities.Log(message: "Polling Google Search from API ... ", isWriteLine: false, addTime: true);
            List <KeyWordInfo> keyWrods = DataOperation.GetKeyWords(connString, code);

            Utilities.Utilities.Log(message: $"[{keyWrods.Count}]", isWriteLine: true);
            String category = String.Empty;
            CustomsearchService customSearchService = new CustomsearchService(new BaseClientService.Initializer {
                ApiKey = API_KEY
            });

            foreach (KeyWordInfo keyWord in keyWrods)
            {
                if (category != keyWord.Category)
                {
                    Utilities.Utilities.Log(message: $"[{keyWord.Category}] ... ", isWriteLine: true, addTime: true);
                    category = keyWord.Category;
                }
                Utilities.Utilities.Log(message: $"Polling [{keyWord.KeyWordToSearch}] -> ", isWriteLine: false, addTime: true);

                CseResource.ListRequest listRequest = customSearchService.Cse.List(keyWord.KeyWordToSearch);
                listRequest.Cx        = SEARCH_ID;
                listRequest.Filter    = CseResource.ListRequest.FilterEnum.Value1;
                listRequest.Start     = 0;
                listRequest.Num       = 10;
                listRequest.LowRange  = "100";
                listRequest.HighRange = "200";

                IList <Result> paging     = new List <Result>();
                Int32          page       = 0;
                Int32          count      = 0;
                Int32          countError = 0;
                success = true;
                do
                {
                    listRequest.Start = page * 10 + 1;
                    Utilities.Utilities.Log(message: $"[{++page}]", isWriteLine: false, addTime: false);
                    try
                    {
                        paging = listRequest.Execute().Items;
                        if (paging != null)
                        {
                            foreach (Result item in paging)
                            {
                                if (item.FileFormat == null)
                                {
                                    ++count;
                                    KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(item, keyWord, false, page);
                                    if (success = !keyWordDetail.HasError)
                                    {
                                        success = DataOperation.UpdateSearchResult(connString, keyWordDetail);
                                    }
                                    if (!success)
                                    {
                                        ++countError;
                                    }
                                }
                            }
                        }
                    }
                    catch (Google.GoogleApiException ex)
                    {
                        Utilities.Utilities.Log(message: $"[Error]\n{ex.Message}", isWriteLine: true, addTime: true, feedLine: true);
                        success = false;
                        break;
                    }
                } while (page < 10 && paging != null);
                if (success)
                {
                    keyWord.Pages = page;
                    success       = DataOperation.UpdateSearchHistory(connString, keyWord);
                    Utilities.Utilities.Log(message: $"[Done] [{count}/{countError}]", isWriteLine: true, addTime: false);
                }
            }
        }