private async Task <JObject> GetJobInfo(string jobid, CancellationToken canceltoken)
        {
            var    request  = new HttpGetRequest(_apiurl + JOBINFOURL, jobid);
            string response = await request.Request(canceltoken);

            return(JObject.Parse(response));
        }
        private async Task <JObject> GetSubmissionStatus(string subid, CancellationToken canceltoken)
        {
            var    request  = new HttpGetRequest(_apiurl + SUBMISSIONURL, subid);
            string response = await request.Request(canceltoken);

            return(JObject.Parse(response));
        }
Beispiel #3
0
        public async Task <Coords> GetSite()
        {
            string route = "/api/main/status";

            var request = new HttpGetRequest(this.baseUrl + route);

            try {
                var response = await request.Request(new CancellationToken());

                if (string.IsNullOrEmpty(response))
                {
                    throw new PlanetariumFailedToConnect();
                }

                var jobj   = JObject.Parse(response);
                var status = jobj.ToObject <StellariumStatus>();

                Coords loc = new Coords {
                    Latitude  = status.Location.Latitude,
                    Longitude = status.Location.Longitude,
                    Elevation = status.Location.Altitude
                };

                return(loc);
            } catch (Exception ex) {
                Logger.Error(ex);
                throw ex;
            }
        }
Beispiel #4
0
        public async Task <DeepSkyObject> GetTarget()
        {
            string route = "/api/objects/info?format=json";

            var request = new HttpGetRequest(this.baseUrl + route);

            try {
                var response = await request.Request(new CancellationToken());

                if (string.IsNullOrEmpty(response))
                {
                    return(await GetView());
                }

                var jobj   = JObject.Parse(response);
                var status = jobj.ToObject <StellariumObject>();

                var ra  = Astrometry.EuclidianModulus(status.RightAscension, 360);
                var dec = status.Declination;

                var coordinates = new Coordinates(Angle.ByDegree(ra), Angle.ByDegree(dec), Epoch.J2000);
                var dso         = new DeepSkyObject(status.Name, coordinates, string.Empty);
                return(dso);
            } catch (Exception ex) {
                Logger.Error(ex);
                throw ex;
            }
        }
Beispiel #5
0
        public IEnumerator TestPlain()
        {
            var request = new HttpGetRequest("https://www.google.com/");

            Assert.IsTrue(request.Url.Equals("https://www.google.com") || request.Url.Equals("https://www.google.com/"));
            request.Request();

            while (!request.IsFinished)
            {
                yield return(null);
            }

            Debug.Log($"TestPlain result:\n{request.Response.TextData}");
        }
Beispiel #6
0
        public IEnumerator TestQueryParam()
        {
            var request = new HttpGetRequest("https://osu.ppy.sh/beatmapsets/search?cursor%5Bapproved_date%5D=1562342428000&cursor%5B_id%5D=942269");

            Assert.IsTrue("https://osu.ppy.sh/beatmapsets/search?cursor%5Bapproved_date%5D=1562342428000&cursor%5B_id%5D=942269".Equals(request.Url, StringComparison.OrdinalIgnoreCase));

            request = new HttpGetRequest("https://www.google.com/search");
            request.AddQueryParam("cursor[approved_date]", "1562342428000");
            request.AddQueryParam("cursor[_id]", "942269");
            Assert.IsTrue("https://www.google.com/search?cursor%5Bapproved_date%5D=1562342428000&cursor%5B_id%5D=942269".Equals(request.Url, StringComparison.OrdinalIgnoreCase));

            request.Request();
            while (!request.IsFinished)
            {
                yield return(null);
            }

            Debug.Log($"TestQueryParam result:\n{request.Response.TextData}");
        }
Beispiel #7
0
        private async Task <DeepSkyObject> GetView()
        {
            string route = "/api/main/view";

            var request = new HttpGetRequest(this.baseUrl + route);

            try {
                var response = await request.Request(new CancellationToken());

                if (string.IsNullOrEmpty(response))
                {
                    throw new PlanetariumFailedToConnect();
                }

                /* The api returns arrays in an invalid json array format so we need to remove the quotes first */
                response = response.Replace("\"[", "[").Replace("]\"", "]");

                var jobj   = JObject.Parse(response);
                var status = jobj.ToObject <StellariumView>();

                var x = Angle.ByRadians(status.J2000[0]);
                var y = Angle.ByRadians(status.J2000[1]);
                var z = Angle.ByRadians(status.J2000[2]);

                var dec = z.Asin();
                var ra  = Angle.Atan2(y, x);

                // A bug in Stellarium >= 0.20 will cause it to report negative y values which translates to a negative RA value. This is not desired.
                if (ra.Radians < 0d)
                {
                    ra = (2 * Math.PI) + ra;
                }

                var coordinates = new Coordinates(ra, dec, Epoch.J2000);
                var dso         = new DeepSkyObject(string.Empty, coordinates, string.Empty);

                return(dso);
            } catch (Exception ex) {
                Logger.Error(ex);
                throw ex;
            }
        }