Example #1
0
        public E621AuthDetails DoLogin(string username, string password)
        {
            E621AuthDetails authDetails = new E621AuthDetails(username, password);
            CookieContainer cookies = new CookieContainer();

            //e621.net/user/login
            using (IResponse loginResponse = Fetch("https://e621.net/user/login", "GET", null, cookies))
            {
                string content = loginResponse.ReadStream();

                #region GetAuthenticityToken

                string authenticityToken = content.Remove(0,
                    content.IndexOf("name=\"authenticity_token\" type=\"hidden\" value=\"", StringComparison.Ordinal) +
                    47);
                authenticityToken =
                    authenticityToken.Remove(authenticityToken.IndexOf("\"></div>", StringComparison.Ordinal));
                authDetails.AuthenticityToken = authenticityToken;

                #endregion

                //cloudflare+id cookies
                cookies = loginResponse.Cookies();
            }

            Dictionary<string, string> loginDetails = new Dictionary<string, string>
            {
                {"authenticity_token", authDetails.AuthenticityToken},
                {"url", string.Empty},
                {"user[name]", authDetails.Username},
                {"user[password]", authDetails.Password},
                {"user[roaming]", "0"}
            };

            cookies.Add(new Uri("https://e621.net"),
                new Cookie("css", "hexagon%3Boverrides%2Fspring%3B" + UnixTimeNow()));

            using (
                IResponse authenticateResponse = Fetch("https://e621.net/user/authenticate", "POST", loginDetails,
                    cookies, "https://e621.net/user/login", false))
            {
                authDetails.AuthContainer.Add(authenticateResponse.Cookies().GetCookies(new Uri("https://e621.net")));
            }

            authDetails.LoginName =
                authDetails.AuthContainer.GetCookies(new Uri("https://e621.net"))["login"]?.Value;

            return authDetails;
        }
Example #2
0
        private void Login()
        {
            _e621AuthDetails = Web.DoLogin(usernameBox.Text, passwordBox.Text);

            Web.FetchPosts("abc123", 1, _e621AuthDetails.AuthContainer, 1); //get blacklisted tags cookies
            Cookie cookie = _e621AuthDetails.AuthContainer.GetCookies(new Uri("https://e621.net"))["blacklisted_tags"];

            if (string.IsNullOrWhiteSpace(cookie?.Value)) return;
            blacklistedTags.Lines = blacklistedTags.Lines.Concat(cookie.Value.Split('&')).ToArray();
        }