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; }
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(); }