private void StartSearch(QueryDef query)
        {
            _logger.Info("\n\n====== START SEARCH " + DateTime.Now + " ======\n\n");

            //Por cada red social a la que apunta la query
            foreach (var searchEngineName in query.SearchEnginesNamesList)
            {
                _logger.Info("\n\n====== START SEARCH FOR (" + searchEngineName + ") " + DateTime.Now + " ======\n\n");

                var postsResult = _searchEngineManager.Search(query.Query, new List <string> {
                    searchEngineName
                }, ParamAccess.ISOLocationCountry, ParamAccess.ISOLanguageCode);
                foreach (var post in postsResult)
                {
                    if (_serviceManager.ExistPost(post.UrlPost))
                    {
                        continue;
                    }
                    _sentimentValuator.ProcessItem(post);
                    post.QueryDef = query;
                    _serviceManager.SavePost(post);
                }
                _logger.Info("\n\n===" + postsResult.Count + " POSTs FOUND IN " + searchEngineName + "\n");
            }

            _logger.Info("\n\n====== END QUERY SEARCH " + DateTime.Now + " ======\n\n");
            _logger.Info("\n\n====== WAITING FOR ANOTHER TIME ELAPSE ======\n\n");
        }
Exemplo n.º 2
0
        public void ConfigureAddinsTest()
        {
            SearchEngineManager.ConfigureAddins();
            var searchEngineManager = new SearchEngineManager();
            var result = searchEngineManager.Search(string.Empty, new List <string>()
            {
                "SearchEngineMock"
            });

            Assert.AreEqual(result.Count, 2);
        }
        public JsonResult SearchResults(string parameters, string searchEngines, string sentiment, string socialNetworking, string userName)
        {
            var result = new List <Post>();
            var model  = new SearchResultModel();

            if (ModelState.IsValid)
            {
                var searchEngineManager = new SearchEngineManager();
                result = searchEngineManager.Search(parameters, searchEngines.Split(',').ToList());
                result = result.OrderByDescending(o => o.CreatedAt).ToList();
                if (result.Count > 0)
                {
                    GetAllWords();

                    var sentimentValuator = new SentimentValuator
                    {
                        NegativeWords = negativeWords,
                        PositiveWords = positiveWords,
                        IgnoreChars   = ignoreList
                    };

                    foreach (var item in result)
                    {
                        sentimentValuator.ProcessItem(item);

                        if (string.IsNullOrEmpty(sentiment) && string.IsNullOrEmpty(socialNetworking) && string.IsNullOrEmpty(userName))
                        {
                            model.Items.Add(item);
                        }

                        else if (ValidateFilters(sentiment, socialNetworking, userName, item))
                        {
                            model.Items.Add(item);
                        }
                    }

                    sentimentValuator.ResetCounters();

                    foreach (var item in model.Items)
                    {
                        sentimentValuator.ProcessItem(item);
                    }

                    BuildSentimentBox(model, sentimentValuator);
                    BuildEnginesBox(model);
                    BuildTopUsersBox(model);
                }
            }

            return(Json(model, JsonRequestBehavior.AllowGet));
        }