public YahooResult YahooSearch([FromBody] string searchText)
        {
            var query         = HttpUtility.UrlEncode(searchText);
            var yahooResult   = new YahooResult();
            var theWebAddress = new StringBuilder();

            theWebAddress.Append("https://query.yahooapis.com/v1/public/yql?");
            theWebAddress.Append("q=" + HttpUtility.UrlEncode($"select * from google where text={query}'"));
            theWebAddress.Append("&format=json");
            theWebAddress.Append("&diagnostics=false");
            string results = "";

            using (WebClient wc = new WebClient())
            {
                results = wc.DownloadString(theWebAddress.ToString());
            }
            JObject dataObject = JObject.Parse(results);
            JArray  jsonArray  = (JArray)dataObject["query"]["results"]["Result"];



            ////http://query.yahooapis.com/v1/public/yql?q=select * from geo.places wheretext=’sunnyvale’&format=json
            //StringBuilder sbURL = new StringBuilder();
            //sbURL.Append(@"https://query.yahooapis.com/v1/public/yql?q=");
            //// YQL is select * from geo.places where text='sfo'
            //sbURL.Append(AntiXssEncoder.HtmlFormUrlEncode
            //    (@"select * from geo.places where text='sfo'")); // Anti XSS encoder -
            //// Prevent cross site scripting
            //sbURL.Append(@"&diagnostics=true");
            //var baseYahooUri = $"http://.search.yahohaooo.com/search?q={query}";
            //var YahooQueryL= $"select * from  "
            //if (WebRequest.Create(uri) is HttpWebRequest request)
            //{
            //    var response = request.GetResponse();
            //    using (var responseStream = response.GetResponseStream())
            //    using (var streamReader = new StreamReader(responseStream ?? throw new InvalidOperationException(), Encoding.UTF8))
            //    {
            //        var responseText = streamReader.ReadToEnd();
            //        string stringThatKeepsYourHtml = responseText;
            //        HtmlDocument doc = new HtmlDocument();
            //        doc.LoadHtml(stringThatKeepsYourHtml);
            //        var whatUrLookingFor = doc.GetElementbyId("resultStats").InnerHtml;

            //        var counter = int.Parse(new String(whatUrLookingFor.Where(Char.IsDigit).ToArray()));
            //        yahooResult.Counter = counter;
            //        return yahooResult;
            //    }

            //}
            yahooResult.Counter = int.Parse(jsonArray["results"].ToString());
            return(yahooResult);
        }
        public static WeatherInformation GetWeatherInformationForLocation(double latitude, double longitude)
        {
            try
            {
                var geolocation = ReverseGeoLookup.ReverseGeoLoc(latitude, longitude);
                System.Threading.Thread.Sleep(3000);
                String response = GetHelper(DECODERURLStart + geolocation.results[0].formatted_address + DECODEURLEND);

                YahooResult yahooResult = JSONHelper.Deserialize <YahooResult>(response);

                return(new WeatherInformation()
                {
                    Channel = yahooResult.query.results.channel
                });
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Esempio n. 3
0
        public void YahooNewsSearch()
        {
            string text = @"
            /* Source: http://api.search.yahoo.com/NewsSearchService/V1/newsSearch?appid=YahooDemo&query=yahoo&results=3&language=en&output=json */
            {
                'ResultSet': {
                    'totalResultsAvailable': '2393',
                    'totalResultsReturned': 3,
                    'firstResultPosition': '1',
                    'Result': [
                        {
                            'Title': 'Yahoo invites its users to shoot ads',
                            'Summary': ' Yahoo first encouraged consumers to create blogs and photo pages with text and pictures. Now, the Internet portal wants them to make advertisements, too. On Monday, Yahoo touts a new look for its front page by asking people to pull out the video camera, open up the editing software and create 12-second spot for Yahoo.',
                            'Url': 'http://news.yahoo.com/s/usatoday/20060717/tc_usatoday/yahooinvitesitsuserstoshootads',
                            'ClickUrl': 'http://news.yahoo.com/s/usatoday/20060717/tc_usatoday/yahooinvitesitsuserstoshootads',
                            'NewsSource': 'USATODAY.com via Yahoo! News',
                            'NewsSourceUrl': 'http://news.yahoo.com/',
                            'Language': 'en',
                            'PublishDate': '1153133816',
                            'ModificationDate': '1153134044'
                        },
                        {
                            'Title': 'Yahoo to launch new finance features',
                            'Summary': ' Yahoo Inc. is beefing up the finance section of its Web site with more interactive stock charts and other features to help it maintain its longtime lead over rival financial information sites.',
                            'Url': 'http://news.yahoo.com/s/ap/20060717/ap_on_hi_te/yahoo_finance_2',
                            'ClickUrl': 'http://news.yahoo.com/s/ap/20060717/ap_on_hi_te/yahoo_finance_2',
                            'NewsSource': 'AP via Yahoo! News',
                            'NewsSourceUrl': 'http://news.yahoo.com/',
                            'Language': 'en',
                            'PublishDate': '1153134777',
                            'ModificationDate': '1153134920',
                            'Thumbnail': {
                                'Url': 'http://us.news2.yimg.com/us.yimg.com/p/ap/20060714/vsthumb.8b1161b66b564adba0a5bbd6339c9379.media_summit_idet125.jpg',
                                'Height': '82',
                                'Width': '76'
                            }
                        }, 
                        {
                            'Title': 'Yahoo Finance revises charts, chat, other features',
                            'Summary': ' Yahoo Inc. on Monday will unveil an upgraded version of its top-ranked financial information site that features new stock charting tools, improved investor chat rooms and financial video news.',
                            'Url': 'http://news.yahoo.com/s/nm/20060717/wr_nm/media_yahoo_finance_dc_2',
                            'ClickUrl': 'http://news.yahoo.com/s/nm/20060717/wr_nm/media_yahoo_finance_dc_2',
                            'NewsSource': 'Reuters via Yahoo! News',
                            'NewsSourceUrl': 'http://news.yahoo.com/',
                            'Language': 'en',
                            'PublishDate': '1153113288',
                            'ModificationDate': '1153113674'
                        }
                    ]
                }
            }";

            JsonTextReader reader   = new JsonTextReader(new StringReader(text));
            ImportContext  context  = new ImportContext();
            YahooResponse  response = (YahooResponse)context.Import(typeof(YahooResponse), reader);

            Assert.IsNotNull(response);

            YahooResultSet resultSet = response.ResultSet;

            Assert.IsNotNull(resultSet);
            Assert.AreEqual(2393, resultSet.totalResultsAvailable);
            Assert.AreEqual(3, resultSet.totalResultsReturned);
            Assert.AreEqual(1, resultSet.firstResultPosition);
            Assert.AreEqual(3, resultSet.Result.Length);

            YahooResult result = resultSet.Result[0];

            Assert.IsNotNull(result);
            Assert.AreEqual("Yahoo invites its users to shoot ads", result.Title);
            Assert.AreEqual(" Yahoo first encouraged consumers to create blogs and photo pages with text and pictures. Now, the Internet portal wants them to make advertisements, too. On Monday, Yahoo touts a new look for its front page by asking people to pull out the video camera, open up the editing software and create 12-second spot for Yahoo.", result.Summary);
            Assert.AreEqual("http://news.yahoo.com/s/usatoday/20060717/tc_usatoday/yahooinvitesitsuserstoshootads", result.Url);
            Assert.AreEqual("http://news.yahoo.com/s/usatoday/20060717/tc_usatoday/yahooinvitesitsuserstoshootads", result.ClickUrl);
            Assert.AreEqual("USATODAY.com via Yahoo! News", result.NewsSource);
            Assert.AreEqual("http://news.yahoo.com/", result.NewsSourceUrl);
            Assert.AreEqual("en", result.Language);
            Assert.AreEqual(1153133816, result.PublishDate);
            Assert.AreEqual(1153134044, result.ModificationDate);

            result = resultSet.Result[1];

            Assert.AreEqual("Yahoo to launch new finance features", result.Title);
            Assert.AreEqual(" Yahoo Inc. is beefing up the finance section of its Web site with more interactive stock charts and other features to help it maintain its longtime lead over rival financial information sites.", result.Summary);
            Assert.AreEqual("http://news.yahoo.com/s/ap/20060717/ap_on_hi_te/yahoo_finance_2", result.Url);
            Assert.AreEqual("http://news.yahoo.com/s/ap/20060717/ap_on_hi_te/yahoo_finance_2", result.ClickUrl);
            Assert.AreEqual("AP via Yahoo! News", result.NewsSource);
            Assert.AreEqual("http://news.yahoo.com/", result.NewsSourceUrl);
            Assert.AreEqual("en", result.Language);
            Assert.AreEqual(1153134777, result.PublishDate);
            Assert.AreEqual(1153134920, result.ModificationDate);
            Assert.AreEqual("http://us.news2.yimg.com/us.yimg.com/p/ap/20060714/vsthumb.8b1161b66b564adba0a5bbd6339c9379.media_summit_idet125.jpg", result.Thumbnail.Url);
            Assert.AreEqual(82, result.Thumbnail.Height);
            Assert.AreEqual(76, result.Thumbnail.Width);

            result = resultSet.Result[2];

            Assert.AreEqual("Yahoo Finance revises charts, chat, other features", result.Title);
            Assert.AreEqual(" Yahoo Inc. on Monday will unveil an upgraded version of its top-ranked financial information site that features new stock charting tools, improved investor chat rooms and financial video news.", result.Summary);
            Assert.AreEqual("http://news.yahoo.com/s/nm/20060717/wr_nm/media_yahoo_finance_dc_2", result.Url);
            Assert.AreEqual("http://news.yahoo.com/s/nm/20060717/wr_nm/media_yahoo_finance_dc_2", result.ClickUrl);
            Assert.AreEqual("Reuters via Yahoo! News", result.NewsSource);
            Assert.AreEqual("http://news.yahoo.com/", result.NewsSourceUrl);
            Assert.AreEqual("en", result.Language);
            Assert.AreEqual(1153113288, result.PublishDate);
            Assert.AreEqual(1153113674, result.ModificationDate);
        }