Пример #1
0
        public string GetName(Stock stock)
        {
            var url = Settings.Default.MorningStarQuote.Replace("{symbol}", GetSymbol(stock).Replace(":", "/"));

            try
            {
                using (var webclient = new WebClientExtended())
                {
                    webclient.Headers.Add(
                        HttpRequestHeader.Cookie,
                        Settings.Default.MorningStarCookie);

                    var data = webclient.DownloadString(url);

                    var doc = new HtmlDocument();
                    doc.LoadHtml(data);
                    var result = doc.DocumentNode.SelectSingleNode("//span[@itemprop='name']");

                    return(result?.InnerText ?? stock.Symbol);
                }
            }
            catch (Exception)
            {
                // ignored
                Debugger.Break();
            }

            return(stock.Symbol);
        }
Пример #2
0
        private static WebClientExtended OpenWebClient()
        {
            WebClientExtended client = new WebClientExtended();

            client.CachePolicy            = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore); // no caching
            client.KeepAlive              = true;
            client.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

            return(client);
        }
Пример #3
0
        private void AddGetParameters(Object obj, WebClientExtended client)
        {
            String  result  = JsonConvert.SerializeObject(obj);
            JObject jObject = JObject.Parse(result);

            foreach (var token in jObject)
            {
                if (token.Key != "request")
                {
                    client.QueryString.Add(token.Key, token.Value.ToString());
                }
            }
        }
Пример #4
0
        public ProcessPoint Get(ProcessPoint point)
        {
            WebClientExtended client = new WebClientExtended();

            if (Convert.ToBoolean(ConfigurationManager.AppSettings["isProxy"]))
            {
                string Host            = ConfigurationManager.AppSettings["ProxyHost"];
                int    Port            = Convert.ToInt32(ConfigurationManager.AppSettings["ProxyPort"]);
                System.Net.WebProxy wp = new System.Net.WebProxy(Host, Port);
                client.Proxy = wp;
            }

            string ep  = string.Format(ConfigurationManager.AppSettings["OSMApiPath"]);
            string url = string.Format("{0}{1}&format=xml&addressdetails=1", ep, point.SourceAddress);

            string st = System.Text.Encoding.UTF8.GetString(client.DownloadData(url));

            XmlSerializer serializer = new XmlSerializer(typeof(Searchresults));

            using (TextReader tr = new StringReader(st))
            {
                Searchresults result = (Searchresults)serializer.Deserialize(tr);
                if (result.Place != null)
                {
                    point.Coordinate       = new Coordinate(result.Place.Lat, result.Place.Lon);
                    point.FormattedAddress = result.Place.Display_name;
                    point.SetSearchEngineStatus("OK");
                    point.Conteiner    = (object)result.Place;
                    point.SearchEngine = SearchEngine.Osm;
                }
                else
                {
                    point.SetSearchEngineStatus("ZERO_RESULTS");
                }

                XmlSerializer smr = new XmlSerializer(typeof(Searchresults));
                using (StringWriter tw = new StringWriter())
                {
                    smr.Serialize(tw, result);
                    point.Xml = tw.ToString();
                }


                point.Save(hdb);

                return(point);
            }
        }
Пример #5
0
        public static ForecastInfo GetCityForecast(string cityName)
        {
            using (var client = new WebClientExtended())
            {
                var url = string.Format("{0}{1}{2}{3}&appid={4}", ApiUrl, ForecastUri, cityName, Metric, AppId);

                try
                {
                    var response = client.DownloadString(url);
                    return(JsonConvert.DeserializeObject <ForecastInfo>(response));
                }
                catch (Exception e)
                {
                    return(null);
                }
            }
        }
Пример #6
0
        public override ResponseData Request()
        {
            using (var client = WebClientExtended.GetDefault())
            {
                client.Headers["Host"] = "blockchain.info";

                try
                {
                    Log.Info(RequestUri);
                    AddGetParameters(this, client);
                    var postResult = client.DownloadString(Uri);
                    return(new ResponseData(this, postResult));
                }
                catch (WebException ex)
                {
                    return(new ResponseData(this, ex));
                }
            }
        }
Пример #7
0
        public override ResponseData Request()
        {
            using (var client = WebClientExtended.GetDefault())
            {
                var payload = ToJsonBase64String();

                client.Headers["Host"]            = "api.bitfinex.com";
                client.Headers["X-BFX-APIKEY"]    = ApiKey;
                client.Headers["X-BFX-PAYLOAD"]   = payload;
                client.Headers["X-BFX-SIGNATURE"] = GenerateSignature(payload);

                try
                {
                    var postResult = client.UploadValues(Uri, "POST", new NameValueCollection());
                    return(new ResponseData(this, Encoding.UTF8.GetString(postResult)));
                }
                catch (WebException ex)
                {
                    return(new ResponseData(this, ex));
                }
            }
        }
Пример #8
0
        public override ResponseData Request()
        {
            using (var client = WebClientExtended.GetDefault())
            {
                var nonce       = Nonce;
                var postData    = new NameValueCollection();
                var postDataUri = AddPostParameters(this, nonce, postData);

                client.Headers["Host"]     = "api.kraken.com";
                client.Headers["API-Key"]  = ApiKey;
                client.Headers["API-Sign"] = GenerateSignature(RequestUri, nonce, postDataUri, ApiSecret);

                try
                {
                    var postResult = client.UploadValues(Uri, "POST", postData);
                    return(new ResponseData(this, Encoding.UTF8.GetString(postResult)));
                }
                catch (WebException ex)
                {
                    return(new ResponseData(this, ex));
                }
            }
        }
Пример #9
0
        public void Get(ProcessPoint point)
        {
            WebClientExtended client = new WebClientExtended();

            if (Convert.ToBoolean(ConfigurationManager.AppSettings["isProxy"]))
            {
                string Host            = ConfigurationManager.AppSettings["ProxyHost"];
                int    Port            = Convert.ToInt32(ConfigurationManager.AppSettings["ProxyPort"]);
                System.Net.WebProxy wp = new System.Net.WebProxy(Host, Port);
                client.Proxy = wp;
            }

            string ep  = string.Format(ConfigurationManager.AppSettings["OSMApiPath"]);
            string url = string.Format("{0}{1}&format=xml", ep, point.SourceAddress);

            string        st         = System.Text.Encoding.UTF8.GetString(client.DownloadData(url));
            XmlSerializer serializer = new XmlSerializer(typeof(Searchresults));

            using (TextReader tr = new StringReader(st))
            {
                Searchresults result = (Searchresults)serializer.Deserialize(tr);
            }
        }
Пример #10
0
        public CollectorActor(string ipAddress, string deviceId)
        {
            string            id  = deviceId;
            WebClientExtended wce = new WebClientExtended();
            string            url = $"http://{ipAddress}/dump1090-fa/data/aircraft.json?_=15562169425";

            Receive <CollectionRequest>(r =>
            {
                try
                {
                    // get data from device
                    var data = wce.DownloadString(url, 5);
                    // convert
                    var obj = JsonConvert.DeserializeObject <DeviceReading>(data);
                    // insert my id
                    obj.deviceId = id;
                    Sender.Tell(obj);
                }
                catch (Exception e)
                {
                    Sender.Tell(new CollectionFailed());
                };
            });
        }
Пример #11
0
        public Task <List <FinancialRatio> > GetKeyRatiosAsync(CancellationToken token, string symbol)
        {
            return(Task.Factory.StartNew(
                       () =>
            {
                var url = $"http://financials.morningstar.com/ajax/exportKR2CSV.html?t={symbol}";
                var referer = $"http://financials.morningstar.com/income-statement/is.html?t={symbol}";

                var result = new List <FinancialRatio>();
                try
                {
                    string data;
                    using (var webclient = new WebClientExtended())
                    {
                        webclient.Headers.Add(HttpRequestHeader.Referer, referer);
                        data = webclient.DownloadString(url);
                        if (string.IsNullOrEmpty(data))
                        {
                            data = webclient.DownloadString(url);
                        }
                    }

                    if (!string.IsNullOrEmpty(data))
                    {
                        result.AddRange(this.ProcessKeyRatios(data));
                    }
                }
                catch (Exception)
                {
                    // ignored
                }

                return result;
            },
                       token));
        }
Пример #12
0
        public Task <List <FinancialRatio> > GetFinancialsAsync(CancellationToken token, string symbol)
        {
            return(Task.Factory.StartNew(
                       () =>
            {
                var referer = $"http://financials.morningstar.com/income-statement/is.html?t={symbol}";

                var result = new List <FinancialRatio>();
                try
                {
                    // income statement
                    var url =
                        $"http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t={symbol}&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=10&curYearPart=1st5year&rounding=3&view=raw&r=912080&denominatorView=raw&number=3";
                    string data;
                    using (var webclient = new WebClientExtended())
                    {
                        webclient.Headers.Add(HttpRequestHeader.Referer, referer);
                        webclient.Headers.Add(
                            HttpRequestHeader.Cookie,
                            "mstar=V6314P49NN4O621LKMM0PMK8NP113LL0M06K2N2M0O388MNK649NO6O29LK97K4O7288P2230NMLN8N0M10P7NLOLP1540M32O8K77MO4N00P5NN0M225O354OK7N9NPOM2PLNM238PP47MN84875M7N1M6051L21302F30B1FB0A5B44129C288A0068D6743;");
                        data = webclient.DownloadString(url);
                    }

                    if (!string.IsNullOrEmpty(data))
                    {
                        result.AddRange(this.ProcessFinancials(data, FinancialRatioSectionEnum.IncomeStatement));
                    }

                    // balance sheet
                    url =
                        $"http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t={symbol}&cur=&reportType=bs&period=12&dataType=A&order=asc&columnYear=10&curYearPart=1st5year&rounding=3&view=raw&r=912080&denominatorView=raw&number=3";
                    using (var webclient = new WebClientExtended())
                    {
                        webclient.Headers.Add(HttpRequestHeader.Referer, referer);
                        webclient.Headers.Add(
                            HttpRequestHeader.Cookie,
                            "mstar=V6314P49NN4O621LKMM0PMK8NP113LL0M06K2N2M0O388MNK649NO6O29LK97K4O7288P2230NMLN8N0M10P7NLOLP1540M32O8K77MO4N00P5NN0M225O354OK7N9NPOM2PLNM238PP47MN84875M7N1M6051L21302F30B1FB0A5B44129C288A0068D6743;");
                        data = webclient.DownloadString(url);
                    }

                    if (!string.IsNullOrEmpty(data))
                    {
                        result.AddRange(this.ProcessFinancials(data, FinancialRatioSectionEnum.BalanceSheet));
                    }

                    // cashflow statement
                    url =
                        $"http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t={symbol}&cur=&reportType=cf&period=12&dataType=A&order=asc&columnYear=10&curYearPart=1st5year&rounding=3&view=raw&r=912080&denominatorView=raw&number=3";
                    using (var webclient = new WebClientExtended())
                    {
                        webclient.Headers.Add(HttpRequestHeader.Referer, referer);
                        webclient.Headers.Add(
                            HttpRequestHeader.Cookie,
                            "mstar=V6314P49NN4O621LKMM0PMK8NP113LL0M06K2N2M0O388MNK649NO6O29LK97K4O7288P2230NMLN8N0M10P7NLOLP1540M32O8K77MO4N00P5NN0M225O354OK7N9NPOM2PLNM238PP47MN84875M7N1M6051L21302F30B1FB0A5B44129C288A0068D6743;");
                        data = webclient.DownloadString(url);
                    }

                    if (!string.IsNullOrEmpty(data))
                    {
                        result.AddRange(
                            this.ProcessFinancials(data, FinancialRatioSectionEnum.CashflowStatement));
                    }
                }
                catch (Exception)
                {
                    // ignored
                }

                return result;
            },
                       token));
        }