public SearchBE Search(string query) { SearchBE r = new SearchBE(); try { string apiKey = AppSettingsHelper.GetValue("GoogleAPIKey"); string searchEngineID = AppSettingsHelper.GetValue("GoogleSearchEngineID"); CustomsearchService service = new CustomsearchService(new BaseClientService.Initializer { ApiKey = apiKey }); CseResource.ListRequest rq = service.Cse.List(query); rq.Cx = searchEngineID; Search search = rq.Execute(); if (search != null) { r.SearchEngine = "Google"; r.Query = query; r.TotalResult = search.SearchInformation.TotalResults; r.FormatTotalResult = search.SearchInformation.FormattedTotalResults; r.Time = search.SearchInformation.SearchTime; } } catch (Exception e) { r.SearchEngine = "Google"; r.Query = query + e.Message; r.TotalResult = 0; r.Time = 0; } return(r); }
/// <summary> /// Searches Google /// </summary> /// <param name="search"></param> /// <param name="appName"></param> /// <returns></returns> public static Search Search(string search, string appName) { try { if (string.IsNullOrWhiteSpace(Config.bot.Apis.ApiGoogleSearchKey) || string.IsNullOrWhiteSpace(Config.bot.Apis.GoogleSearchEngineId)) { return(null); } Search googleSearch; using (CustomsearchService google = new CustomsearchService(new BaseClientService.Initializer { ApiKey = Config.bot.Apis.ApiGoogleSearchKey, ApplicationName = appName })) { CseResource.ListRequest searchListRequest = google.Cse.List(); searchListRequest.Q = search; searchListRequest.Cx = Config.bot.Apis.GoogleSearchEngineId; googleSearch = searchListRequest.Execute(); } return(googleSearch); } catch { return(null); } }
public string GetShoeImage(string SiteName, string ShoeID, string Style_Number) { string query = ShoeID + " " + Style_Number + " " + SiteName + " image"; string first_result = ""; CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = cx; listRequest.Num = 5; listRequest.Start = 1; listRequest.SearchType = CseResource.ListRequest.SearchTypeEnum.Image; listRequest.ImgSize = CseResource.ListRequest.ImgSizeEnum.Medium; IList <Result> results = new List <Result>(); results = listRequest.Execute().Items; if (results != null) { foreach (var result in results) { string[] SubRS = result.Link.Split('/'); string[] Sub1RS = first_result.Split('/'); if (!SubRS[SubRS.Length - 1].Equals(Sub1RS[Sub1RS.Length - 1])) { first_result = first_result + "\n" + result.Link; } } } else { first_result = "There is no information about " + ShoeID; } return(first_result); }
//------ The Setup--------------------- public async Task Attracions(IDialogContext context) { query = "Tripadvisor attractions " + ciudad; listRequest = customSearchService.Cse.List(query); listRequest.Cx = idSearch; var search = listRequest.Execute(); web = new HtmlWeb(); htmlDocPlaces = web.Load(search.Items.ElementAt(0).Link); locationsToVisit = htmlDocPlaces.DocumentNode .Descendants() .Where(n => n.NodeType == HtmlNodeType.Element) .Where(e => e.Name == "div" && e.GetAttributeValue("class", "") == "listing_title "); places = "This are the top 5 things to do in " + ciudad + "\n\n"; locationsToVisit = locationsToVisit.Take(5); var htmlDocLocation = new HtmlDocument(); foreach (var location in locationsToVisit) { htmlDocLocation.LoadHtml(location.InnerHtml); var loc = htmlDocLocation.DocumentNode .Descendants().Where(e2 => e2.Name == "a").First(); places += loc.InnerText + "\n\n"; } response.Speak = response.Text = places; await context.PostAsync(response); context.Wait(Selection); }
public string GetShoeDescription(string SiteName, string ShoeID, string Style_Number) { string query = ShoeID + " " + Style_Number + " " + SiteName + " description"; string first_result = ""; CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = cx; listRequest.Num = 2; listRequest.Start = 1; IList <Result> results = new List <Result>(); results = listRequest.Execute().Items; if (results != null) { foreach (var result in results) { first_result = first_result + "\n" + result.Snippet; } } else { first_result = "There is no information about " + ShoeID; } return(first_result); }
public async Task <List <GoogleSearch> > SearchGoogle(string search) { try { using CustomsearchService googleService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = Config.bot.Apis.ApiGoogleSearchKey, ApplicationName = GetType().ToString() }); CseResource.ListRequest searchRequest = googleService.Cse.List(); searchRequest.Q = search; searchRequest.Cx = Config.bot.Apis.GoogleSearchEngineId; global::Google.Apis.Customsearch.v1.Data.Search googleSearch = await searchRequest.ExecuteAsync(); List <GoogleSearch> searches = googleSearch.Items .Select(result => new GoogleSearch(result.Title, result.Snippet, result.Link)).ToList(); return(searches); } catch (Exception ex) { Logger.Error("An error occured while searching Google! {@Exception}", ex); return(null); } }
private static string GetRandomCatPicture() { var queryParams = new Dictionary <string, string> { ["key"] = GoogleApiKey, ["cx"] = GoogleSearchEngineId, ["q"] = "kittens", ["searchType"] = "image" }; var service = new CustomsearchService(new BaseClientService.Initializer { ApiKey = GoogleApiKey, ApplicationName = "SelfCareBot" }); CseResource.ListRequest listRequest = service.Cse.List("kittens"); listRequest.Cx = GoogleSearchEngineId; listRequest.SearchType = CseResource.ListRequest.SearchTypeEnum.Image; var search = listRequest.Execute(); var randomIndex = Rng.Next(0, search.Items.Count - 1); var randomItem = search.Items[randomIndex]; return(randomItem.Link); }
public List <String> Search(String query, int pages = 1) { BaseClientService.Initializer init = new Google.Apis.Services.BaseClientService.Initializer(); init.ApiKey = key; CustomsearchService svc = new CustomsearchService(init); List <String> imageUrls = new List <String>(); for (int p = 1; p <= pages; p++) { CseResource.ListRequest listRequest = svc.Cse.List(query); listRequest.Cx = customEngine; listRequest.SearchType = CseResource.SearchType.Image; listRequest.Start = p * 10; listRequest.ImgColorType = CseResource.ImgColorType.Color; Search search = listRequest.Fetch(); //Let's just get the thumbnail images if (search.Items != null) { foreach (Result result in search.Items) { imageUrls.Add(result.Image.ThumbnailLink); } } } return(imageUrls); }
public static async Task <IList <Result> > Search(string query) { CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = cx; Search search = await listRequest.ExecuteAsync(); return(search.Items); }
public static IList <Result> Search(string query) { CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = cx; Search search = listRequest.Execute(); return(search.Items); }
public static IList <Result> Search(string query, out string total) { CseResource.ListRequest listRequest = SERVICE.Cse.List(); listRequest.Cx = CX; listRequest.Q = query; Search search = listRequest.Execute(); total = search.SearchInformation.TotalResults; return(search.Items); }
public static IList <Result> Search(string query) { Console.WriteLine("Executing google custom search for query: {0} ...", query); CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = cx; Search search = listRequest.Execute(); return(search.Items); }
public ICollection <Uri> RunService(string searchString, CancellationToken cancelToken) { CseResource.ListRequest listRequest = BuildRequest(searchString); IList <Result> paging; HashSet <Uri> urls = new HashSet <Uri>(); int pageNumber = 0; do { listRequest.Start = pageNumber * ResultsPerPage + 1; try { paging = listRequest.Execute().Items; if (paging != null) { foreach (var item in paging) { if (Uri.TryCreate(item.Link, UriKind.Absolute, out Uri urlFound)) { urls.Add(urlFound); } cancelToken.ThrowIfCancellationRequested(); } } pageNumber++; } catch (Google.GoogleApiException e) { if (e.Error != null && e.Error.Errors != null && e.Error.Errors.Any()) { if (e.Error.Errors.Any(p => "keyInvalid".Equals(p.Reason, StringComparison.OrdinalIgnoreCase))) { throw new ArgumentException("The provided API key is invalid", nameof(ApiKey)); } else if (e.Error.Errors.Any(p => "dailyLimitExceeded".Equals(p.Reason, StringComparison.OrdinalIgnoreCase))) { throw new InvalidOperationException("Daily quota exceeded"); } } throw; } catch (OperationCanceledException) { throw; } catch { paging = null; } cancelToken.ThrowIfCancellationRequested(); } while (paging != null && pageNumber < MaxPages); return(urls); }
private async Task <Search> GetGoogleSearchResponse(string sparePartName, string carCharacteristics) { var searchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = apiKey }); CseResource.ListRequest listRequest = searchService.Cse.List(); listRequest.Q = $"{sparePartName} {carCharacteristics}"; listRequest.Cx = searchEngineId; return(await listRequest.ExecuteAsync()); }
public async Task <Search> Search(string keyword, bool imageSearch = false) { CseResource.ListRequest searchRequest = new CseResource.ListRequest(SearchService); searchRequest.Cx = DiscordBot.Program._config["googlecustomsearchid"]; searchRequest.Q = keyword; searchRequest.Safe = CseResource.ListRequest.SafeEnum.Active; if (imageSearch) { searchRequest.SearchType = CseResource.ListRequest.SearchTypeEnum.Image; } return(searchRequest.ExecuteAsync().Result); }
/// <summary> /// Tries to search for images in google of a specified query and returns the first 10. Returns whether successfull /// </summary> /// <param name="query"></param> /// <param name="tries"></param> /// <returns></returns> public bool GetImagesFor(String query, int tries, out List <ImageData> result) { #if LOG_DATA DataLogger.Log(String.Concat("[CseManager] Getting images for query \"", query, "\""), LoggingMode.Message); #endif for (int t = 0; t < tries; t++) { try { #if LOG_DATA DataLogger.Log(String.Concat("[CseManager] Attempting to get images (", t, ")"), LoggingMode.Message); #endif CseResource.ListRequest req = service.Cse.List(query); req.Cx = Constants.CSE_CX; req.SearchType = CseResource.ListRequest.SearchTypeEnum.Image; req.FileType = "png, jpg, jpeg, bmp"; req.Rights = "cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial"; req.Safe = CseResource.ListRequest.SafeEnum.Active; Search s = req.Execute(); #if LOG_DATA DataLogger.Log("[CseManager] Recieved images. Processing them into data list", LoggingMode.Message); #endif result = new List <ImageData>(10); for (int i = 0; i < s.Items.Count; i++) { Result r = s.Items[i]; if (r.Image.Width.HasValue && r.Image.Height.HasValue && EndsWithProperImageFormat(r.Link)) { result.Add(new ImageData(r)); } } #if LOG_DATA DataLogger.Log(String.Concat("[CseManager] Done processing images into data list. The ", result.Count, " results are:"), LoggingMode.Success); for (int i = 0; i < result.Count; i++) { DataLogger.Log(String.Concat("Width=", result[i].Width, " Height=", result[i].Height, " Extension: ", result[i].Extension, " Link: \"", result[i].Link, "\""), LoggingMode.RawData); } DataLogger.Log("[CseManager] [END OF IMAGE DATA LIST]", LoggingMode.Message); #endif return(true); } catch { } } result = null; return(false); }
private IList <Result> UserSearch() { Console.Write("Enter a song: "); string query = Console.ReadLine(); // Actually search for the lyrics CustomsearchService searchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = s.APIKey }); CseResource.ListRequest listRequest = searchService.Cse.List(query); listRequest.Cx = s.EngineID; return(listRequest.Execute().Items); }
private IEnumerable <Result> Search(CseResource.ListRequest request, int offset, int targetCount, DateTime?dt = null) { var results = new List <Result>(); IList <Result> paging = new List <Result>(); int count = 0; long tempCount = targetCount; while ((paging != null) && tempCount > 0) { request.Start = count * 10 + 1 + offset; if ((tempCount % 10) == 0) { request.Num = 10; } else { request.Num = (tempCount % 10); } try { paging = request.Execute().Items; } catch (Exception ex) { if (ex.Message.Contains("Reason[keyInvalid]")) { throw new InvaildKeyException("입력된 구글 키가 올바르지 않습니다."); } } if (paging != null) { results.AddRange(paging); var itm = paging.AsParallel().Select(i => ConvertType(i, dt)); itm.ForEach(i => OnSearchItemFound(this, new SearchResultEventArgs(i, ServiceKind.GoogleCSE))); } count++; tempCount -= request.Num.Value; Current += (int)request.Num.Value; int currCount = (int)(targetCount - tempCount); OnSearchProgressChanged(this, new ProgressEventArgs(Maximum, Current)); } return(results); }
public string[] Check(string _query) { CseResource.ListRequest listRequest = svc.Cse.List(_query); listRequest.Cx = "001556608615224035032:bh8b1bv0adq"; Search req = listRequest.Execute(); string[] ret = new string[req.Items.Count]; int i = 0; foreach (Result result in req.Items) { ret[i] = result.Link; ++i; } return(ret); }
public string[] Search(string _query) { CseResource.ListRequest listRequest = svc.Cse.List(_query); listRequest.Cx = searchengine; Search req = listRequest.Execute(); string[] ret = new string[req.Items.Count]; int i = 0; foreach (Result result in req.Items) { ret[i] = result.Link; ++i; } return(ret); }
public static async Task <SearchResult> SearchAsync(string query) { CseResource.ListRequest request = service.Cse.List(); request.Cx = searchId; request.Q = query; Search data = await request.ExecuteAsync(); if (data.Items.Count == 0) { throw new FileNotFoundException(); } return(new SearchResult(data.Items[0].Title, data.Items[0].FormattedUrl, data.Items[0].Snippet)); }
public static long?Search(string query) { try { CseResource.ListRequest listRequest = Service.Cse.List(query); listRequest.Cx = searchEngineId; Search search = listRequest.Execute(); var totalResult = search.SearchInformation.TotalResults; return(totalResult); } catch (Exception ex) { LogError.AddLogError(ex.Message, ex.StackTrace); return(-1); } }
public SearchResult[] Search(string keyword, int resultCount) { using (CustomsearchService Service = new CustomsearchService( new BaseClientService.Initializer { ApiKey = subscriptionKey, } )) { CseResource.ListRequest listRequest = Service.Cse.List(keyword); listRequest.Cx = customSearchEngineID; listRequest.Num = resultCount; Search search = listRequest.Execute(); return(search.Items?.Select(item => new SearchResult(item.Link, item.Title)).ToArray()); } }
//private Google.Apis.Translate.v2.TranslationsResource.ListRequest MakeTranlationsRequest(string keywords) //{ // var svc = new TranslateService(new BaseClientService.Initializer // { // ApiKey = Key // }); // var listRequest = svc.Translations.List(keywords,TargetLangCode); // listRequest.Key = EngineKey; // return listRequest; //} //public string Translate(string text, string targetLang) //{ // var request = MakeTranlationsRequest(text); // TranslationsListResponse response = request.Execute(); // return response.Translations.Select(t => t.TranslatedText).ToArray()[0]; //} public Search Search(string keywords) { List <string> _results = new List <string>(); CseResource.ListRequest listRequest = MakeSearchRequest(keywords); listRequest.Gl = "en"; listRequest.Hl = "vi"; try { var search = listRequest.Execute(); return(search); } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
public override async Task <EngineResult> Search(string keyword) { CseResource.ListRequest listRequest = this.Service.Cse.List(); Search result; try { listRequest.Q = keyword; result = await listRequest.ExecuteAsync(); } catch (Exception ex) { return(new EngineResult { EngineName = base.EngineName, ResultCount = 0 }); } return(new EngineResult { EngineName = base.EngineName, ResultCount = result.Items.Count }); }
/// <summary> /// Google Custom Search를 이용해 검색을 실시합니다. /// </summary> /// <param name="searchOption">Google Custom Search의 검색 옵션입니다.</param> /// <returns></returns> public override IEnumerable <GoogleCSESearchResult> Search(GoogleCSESearchOption searchOption) { query = searchOption.Query; CseResource.ListRequest request = BuildRequest(searchOption); if (!searchOption.SplitWithDate) { Maximum = searchOption.SearchCount; IEnumerable <Result> results = Search(request, searchOption.Offset, searchOption.SearchCount); OnSearchFinished(this, new SearchFinishedEventArgs(ServiceKind.GoogleCSE)); if (results.Count() == 0) { return(Enumerable.Empty <GoogleCSESearchResult>()); } return(ConvertType(results)); } else { Maximum = searchOption.SearchCount * searchOption.DateRange.GetDateRange().Count(); if (!searchOption.UseDateSearch) // DateSearch가 아닌데 날짜별로 구분할 수 없으므로 예외 발생 { throw new InvaildOptionException("날짜를 사용하지 않는데 날짜별로 구분해 검색할 수 없습니다."); } var results = new List <Result>(); foreach (DateTime dt in searchOption.DateRange.GetDateRange()) { request.Sort = $"date:r:{dt.To8LengthYear()}:{dt.To8LengthYear()}"; results.AddRange(Search(request, searchOption.Offset, searchOption.SearchCount, dt)); } return(ConvertType(results)); } }
public Queue <Uri> InitialSearch(string searchWord) { string apiKey = _apiKey; string searchEngineId = _searchEngineId; CustomsearchService customsearchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = apiKey }); CseResource.ListRequest listRequest = customsearchService.Cse.List(searchWord); listRequest.Cx = searchEngineId; Search search = listRequest.Execute(); Queue <Uri> links = new Queue <Uri>(); foreach (Result result in search.Items) { links.Enqueue(new UriBuilder(result.Link).Uri); } customsearchService.Dispose(); return(links); }
private static void testAPI() { const string apiKey = "AIzaSyCwFvHnS7ps107BmBFo4Tr09QFbRbMz7IU"; const string searchEngineId = "015538826641141501626:59gwbfycqn0"; const string query = "\"bike equipment\", distributor, Canada"; CustomsearchService customSearchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = apiKey }); CseResource.ListRequest listRequest = customSearchService.Cse.List(query); listRequest.Cx = searchEngineId; listRequest.Filter = CseResource.ListRequest.FilterEnum.Value1; listRequest.HighRange = ""; Console.WriteLine("Start..."); IList <Result> paging = new List <Result>(); var count = 0; var index = 0; while (paging != null) { Console.WriteLine($"Page [{count}]"); listRequest.Start = count * 10 + 1; paging = listRequest.Execute().Items; if (paging != null) { foreach (Result item in paging) { if (item.FileFormat == null) { Console.WriteLine($"\t[{++index}] Title : {item.Link}"); } } } count++; } }
protected override System.Collections.Generic.List <string> DiscoverImageUrls(string search) { string apiKey = REPLACE_WITH_YOUR_API_KEY; string cx = REPLACE_WITH_YOUR_CUSTOM_SEARCH_CX; string query = search; CustomsearchService svc = new CustomsearchService(new BaseClientService.Initializer() { ApplicationName = "Drollic Dreamer", ApiKey = apiKey, }); Random rand = new Random(); CseResource.ListRequest listRequest = svc.Cse.List(query); listRequest.Cx = cx; listRequest.SearchType = CseResource.ListRequest.SearchTypeEnum.Image; listRequest.ImgType = CseResource.ListRequest.ImgTypeEnum.Photo; listRequest.Num = 10; listRequest.Start = rand.Next() % 90; Search searchResult = listRequest.Execute(); System.Collections.Generic.List <string> results = new System.Collections.Generic.List <string>(); foreach (Result result in searchResult.Items) { //Console.WriteLine("Title: {0}", result.Title); //Console.WriteLine("Link: {0}", result.Link); results.Add(result.Link); if (results.Count >= this.TotalDesiredImages) { break; } } return(results); }
public List <SingleResult> GetSearchResults(string query) { _listRequest = _customSearchService.Cse.List(query); _listRequest.Cx = searchEngineId; int pageIndex = 0; while (_results.Count < 12 && _paging != null) { _listRequest.Start = pageIndex * 10 + 1; _paging = _listRequest.Execute().Items; foreach (var item in _paging) { _results.Add(new SingleResult { Title = item.Title, Url = item.Link }); } pageIndex++; } return(_results.Take(12).ToList()); }