예제 #1
0
 public void InitializeParser()
 {
     parser = new GoogleParser();
     path   = @"./../../data/ko.csv";
     path   = Path.GetFullPath(path);
     Assert.NotNull(parser);
 }
예제 #2
0
        public void ValidUrl_ValidKeyword()
        {
            IParser l_Parser = new GoogleParser(new HttpManager());

            var l_Result = l_Parser.FindTopPosition("http://www.espncricinfo.com", "cricket", 100);

            Assert.AreEqual(1, l_Result.Count);
        }
예제 #3
0
        public void InvalidUrl_ValidKeyword()
        {
            IParser l_Parser = new GoogleParser(new HttpManager());

            var l_Result = l_Parser.FindTopPosition("invalidURL", "xya", 100);

            Assert.AreEqual(0, l_Result.Count);
        }
예제 #4
0
        public void ParseSearchResultForRanks_EmptyResult_Returns0()
        {
            // Arrange
            var searchResult = "";
            var url          = "www.smokeball.com.au";
            var service      = new GoogleParser();

            // Act
            var result = service.ParseSearchResultForRanks(searchResult, url);

            // Assert
            Assert.AreEqual("0", result);
        }
예제 #5
0
        public void ParseSearchResultForRanks_MultipleRanksFound_ReturnsCorrectly()
        {
            // Arrange
            var searchResult = TestHelper.GetTextFromFile("GoogleSearchResultForConveyancingSoftware.txt");
            var url          = "globalx.com.au";
            var service      = new GoogleParser();

            // Act
            var result = service.ParseSearchResultForRanks(searchResult, url);

            // Assert
            Assert.AreEqual("6, 7", result);
        }
예제 #6
0
        public void ParseSearchResultForRanks_NoRanksFound_Returns0()
        {
            // Arrange
            var searchResult = TestHelper.GetTextFromFile("GoogleSearchResultForConveyancingSoftware.txt");
            var url          = "www.yahoo.com";
            var service      = new GoogleParser();

            // Act
            var result = service.ParseSearchResultForRanks(searchResult, url);

            // Assert
            Assert.AreEqual("0", result);
        }
예제 #7
0
        public void Parser()
        {
            // Arrange
            IParser        l_Parser     = new GoogleParser(new HttpManager());
            string         l_SiteURL    = "http://www.espncricinfo.com";
            string         l_Keyword    = "cricket";
            HomeController l_Controller = new HomeController(l_Parser);

            // Act
            ViewResult l_Result = l_Controller.Parser(l_SiteURL, l_Keyword) as ViewResult;

            // Assert
            Assert.IsNotNull(l_Result);
        }
예제 #8
0
        public void GoogleSearchService_ReturnsError_WithSearchException()
        {
            // Arrange
            var keywords = "conveyancing software";
            var url      = "www.smokeball.com.au";

            var searcher = new Mock <ISearchEngineSearcher>();

            searcher.Setup(s => s.GetSearchResult(It.IsAny <string>())).Throws(new Exception("Exception in Searcher"));

            var parser = new GoogleParser();

            var service = new GoogleSearchService(searcher.Object, parser);

            // Act
            var result = service.GetSearchRanks(keywords, url);

            // Assert
            Assert.AreEqual("Error with Google Search results: Exception in Searcher", result);
        }
예제 #9
0
        public void GoogleSearchService_ReturnsOK_ValidData()
        {
            // Arrange
            var keywords = "conveyancing software";
            var url      = "www.smokeball.com.au";

            var searcher = new Mock <ISearchEngineSearcher>();

            searcher.Setup(s => s.GetSearchResult(It.IsAny <string>())).Returns(TestHelper.GetTextFromFile("GoogleSearchResultForConveyancingSoftware.txt"));

            var parser = new GoogleParser();

            var service = new GoogleSearchService(searcher.Object, parser);

            // Act
            var result = service.GetSearchRanks(keywords, url);

            // Assert
            Assert.AreEqual("3", result);
        }
예제 #10
0
		public async Task<wordInfo> getWord(string word)
		{
			wordInfo WI = new wordInfo();

			var c = await new HttpClient().GetStringAsync(Constants.GoogleGetWord + word);

			GoogleParser gp = new GoogleParser(c, word);
			WI.word = word;
			WI.definition = gp.OUTPUT.definition;
			WI.partOfSpeech = gp.OUTPUT.partOfSpeech;
			WI.pronunciation = gp.OUTPUT.pronunciation;
			
			if (MANAGER.GetSynonyms)
			{
				var t = await new HttpClient().GetStringAsync(Constants.ThesarusGetSynAnt + word);
				ThesaurusParser tp = new ThesaurusParser(t);
				WI.synonyms = tp.syns;
				WI.antonyms = tp.ants;
			}

			return WI;
		}
예제 #11
0
        private async Task Worker(TelegramBotClient client, long chatId)
        {
            bool   forloop = true;
            string GoogleVersion = string.Empty, FpdaVersion = null;

            for (int i = 1; forloop; i++)
            {
                var source = await Dloader.GetSourceById(i);

                if (source == default)
                {
                    forloop = false;
                }
                var domParser = new HtmlParser();

                var document = await domParser.ParseDocumentAsync(source);

                var urls = dparser.GetAppUrls(document);

                foreach (var url in urls)
                {
                    string DropGameVersion = null, DropGameName = null, ApkVersion = "0";
                    try
                    {
                        source = await GPloader.GetSourceBylink(url);

                        document = await domParser.ParseDocumentAsync(source);

                        DropGameName    = dparser.GetName(document);
                        DropGameVersion = dparser.GetVersion(document);
                        if (MissGames.Contains(DropGameName))
                        {
                            continue;
                        }
                        if (Games.Contains(DropGameName))
                        {
                            await client.SendTextMessageAsync(chatId, $"Солнце, эту игру нужно посмотреть самостоятельно\n{url}");

                            continue;
                        }
                        //string engname = await GoogleParser.GetEngNameAsync(DropGameName);
                        string       engname = DropGameName;
                        SearchResult result  = await GoogleParser.GetResultAsync(engname);

                        source = await GoogleParser.GetResult(engname);

                        document = await domParser.ParseDocumentAsync(source);

                        string urlstr = googleparser.GetAppUrl(document, engname);
                        try
                        {
                            string appUrl = await GetUrlApp(DropGameName);

                            GoogleVersion = await GetVersionAsync(appUrl);
                        }
                        catch (NullReferenceException)
                        {
                            Console.WriteLine("NullReferenceException");
                        }

                        if (result != null && result.Title.StartsWith(engname))
                        {
                            source = await GPloader.GetSourceBylink(result.Link.ToString());

                            document = await domParser.ParseDocumentAsync(source);

                            string version = fpdaparser.GetVersion(document);
                            if (version is null)
                            {
                                break;
                            }
                            FpdaVersion = version;
                        }
                        source = await ApkLoader.GetSourceByName(DropGameName);

                        document = await domParser.ParseDocumentAsync(source);

                        string apkurl = apkParser.GetUrl(document, DropGameName);
                        if (apkurl is null)
                        {
                            Console.WriteLine("url is null");
                        }
                        else
                        {
                            source = await GPloader.GetSourceBylink("https://apkcombo.com" + apkurl);

                            document = await domParser.ParseDocumentAsync(source);

                            ApkVersion = apkParser.GetVersion(document);
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        Console.WriteLine("With name " + DropGameName);
                    }

                    string str = string.Empty;
                    DropGameVersion = ChangeVersion(DropGameVersion);
                    GoogleVersion   = ChangeVersion(GoogleVersion);
                    ApkVersion      = ChangeVersion(ApkVersion);
                    Console.WriteLine(DropGameName);
                    Console.WriteLine($"{DropGameVersion} {GoogleVersion} {ApkVersion} {FpdaVersion}");
                    string Version;
                    if (FpdaVersion == null)
                    {
                        Version = CompareVersion(ApkVersion, GoogleVersion);
                    }
                    else
                    {
                        FpdaVersion = ChangeVersion(FpdaVersion);
                        Version     = CompareVersion(FpdaVersion, GoogleVersion);
                        Version     = CompareVersion(Version, ApkVersion);
                    }

                    if (DropGameVersion == Version)
                    {
                        Console.WriteLine(Version);
                        Console.WriteLine(new string('-', 30));
                    }
                    else
                    {
                        str = $"{DropGameName} {DropGameVersion} -- {Version}\n{url}";
                    }
                    if (str != string.Empty)
                    {
                        Console.WriteLine(Version);
                        Console.WriteLine(new string('-', 30));
                        await Send_NewData(client, chatId, str);
                    }
                }
            }
            await Parser_OnCompleted(client, chatId);
        }
예제 #12
0
 public async Task Should_Intersect_Request()
 {
     var parser = new GoogleParser();
     await parser.RequestPageWithSearch();
 }
예제 #13
0
 public async Task Should_Open_GoogleSearsh()
 {
     var parser = new GoogleParser();
     await parser.GetSearchPage();
 }
예제 #14
0
 public async Task Should_Get_ScreenShot()
 {
     var parser = new GoogleParser();
     await parser.GetScreenShot();
 }
예제 #15
0
 public GoogleParserTests()
 {
     _sut = new GoogleParser();
 }