Exemple #1
0
        public async Task <bool> LoginAsync()
        {
            IsAuthenticated = false;
            Cookies.SetCookies(_hotelUri, await SKore.GetIPCookieAsync(Hotel).ConfigureAwait(false));
            byte[] postData = Encoding.UTF8.GetBytes($"{{\"email\":\"{Email}\",\"password\":\"{Password}\"}}");

            var loginRequest = (HttpWebRequest)WebRequest.Create($"{_hotelUri.OriginalString}/api/public/authentication/login");

            loginRequest.ContentType       = "application/json;charset=UTF-8";
            loginRequest.CookieContainer   = Cookies;
            loginRequest.AllowAutoRedirect = false;
            loginRequest.Method            = "POST";
            loginRequest.Proxy             = null;

            using (Stream requestStream = await loginRequest.GetRequestStreamAsync().ConfigureAwait(false))
                await requestStream.WriteAsync(postData, 0, postData.Length).ConfigureAwait(false);

            using (WebResponse loginResponse = await loginRequest.GetResponseAsync().ConfigureAwait(false))
                using (Stream loginStream = loginResponse.GetResponseStream())
                    using (var loginReader = new StreamReader(loginStream))
                    {
                        string body = await loginReader.ReadToEndAsync().ConfigureAwait(false);

                        User = HUser.Create(body);
                        Cookies.SetCookies(_hotelUri, loginResponse.Headers["Set-Cookie"]);
                        IsAuthenticated = ((HttpWebResponse)loginResponse).StatusCode == HttpStatusCode.OK;

                        if (IsAuthenticated)
                        {
                            await ExtractGameDataAsync().ConfigureAwait(false);
                        }

                        return(IsAuthenticated);
                    }
        }
Exemple #2
0
        public async Task <bool> LoginAsync()
        {
            try
            {
                IsAuthenticated = false;
                byte[] postData = Encoding.UTF8.GetBytes(
                    $"{{\"email\":\"{Email}\",\"password\":\"{Password}\"}}");

                var request = (HttpWebRequest)WebRequest.Create(
                    _hotelUri.OriginalString + "/api/public/authentication/login");

                request.ContentType = "application/json;charset=UTF-8";
                string body = await Requester.DownloadStringAsync(
                    request, postData).ConfigureAwait(false);

                if (!string.IsNullOrWhiteSpace(body) &&
                    !body.Equals("{\"message\":\"invalid-captcha\",\"captcha\":true}"))
                {
                    IsAuthenticated = true;
                    User            = HUser.Create(body);
                }
            }
            catch { IsAuthenticated = false; }
            return(IsAuthenticated);
        }
Exemple #3
0
 public HProfile()
 {
     _user    = new HUser();
     _friends = new List <HFriend>(0);
     _groups  = new List <HGroup>(0);
     _rooms   = new List <HRoom>(0);
     _badges  = new List <HBadge>(0);
 }
Exemple #4
0
        public static async Task <HProfile> GetProfileAsync(string name, HHotel hotel)
        {
            HUser user = await GetUserAsync(name, hotel).ConfigureAwait(false);

            if (user.IsProfileVisible == true)
            {
                return(await GetProfileAsync(user.UniqueId).ConfigureAwait(false));
            }
            return(new HProfile {
                User = user
            });
        }
Exemple #5
0
 public static async Task <HUser> GetUserAsync(string name, HHotel hotel) => HUser.Create(await ReadContentAsync <string>(hotel.ToUri(), ("/api/public/users?name=" + name)));