public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var loginForm = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl, Type = RequestType.GET }); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "returnto", "/index.php" } }; var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginForm.Cookies, true, null, SiteLink); var responseContent = response.Content; await ConfigureIfOK(response.Cookies, responseContent.Contains("<a href=\"logout.php\">Logout</a>"), () => { CQ dom = responseContent; var messageEl = dom[".error"].First(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); username = config.Username.Value; password = config.Password.Value; try { await GetAuthToken(true); } catch (Exception ex) { throw new ExceptionWithConfigData(ex.Message, (ConfigurationData)config); } var configSaveData = new JObject(); configSaveData["username"] = username; configSaveData["password"] = password; configSaveData["token"] = token; configSaveData["last_token_fetch"] = lastTokenFetch; SaveConfig(configSaveData); IsConfigured = true; }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value } }; var content = new FormUrlEncodedContent(pairs); var response = await client.PostAsync(LoginUrl, content); var responseContent = await response.Content.ReadAsStringAsync(); if (!responseContent.Contains("logout.php")) { CQ dom = responseContent; var errorMessage = dom["td.text"].Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { var configSaveData = new JObject(); cookies.DumpToJson(SiteLink, configSaveData); SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value }, { "keeplogged", "1" }, { "login", "Log In!" } }; var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, SiteLink); await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () => { CQ dom = response.Content; var messageEl = dom["#loginform"]; var messages = new List<string>(); for (var i = 0; i < 13; i++) { var child = messageEl[0].ChildNodes[i]; messages.Add(child.Cq().Text().Trim()); } var message = string.Join(" ", messages); throw new ExceptionWithConfigData(message, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value } }; var request = new Utils.Clients.WebRequest() { Url = SiteLink, Type = RequestType.POST, Referer = SiteLink, PostData = pairs }; var response = await webclient.GetString(request); var firstCallCookies = response.Cookies; // Redirect to ? then to /t await FollowIfRedirect(response, request.Url, null, firstCallCookies); await ConfigureIfOK(firstCallCookies, response.Content.Contains("/my.php"), () => { CQ dom = response.Content; var messageEl = dom["body > div"].First(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value } }; var content = new FormUrlEncodedContent(pairs); var message = CreateHttpRequest(new Uri(LoginPostUrl)); message.Method = HttpMethod.Post; message.Content = content; message.Headers.Referrer = new Uri(LoginUrl); var response = await client.SendAsync(message); var responseContent = await response.Content.ReadAsStringAsync(); if (!responseContent.Contains("/logout.php")) { CQ dom = responseContent; var messageEl = dom[".error_text"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { var configSaveData = new JObject(); cookies.DumpToJson(SiteLink, configSaveData); SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value } }; var request = new Utils.Clients.WebRequest() { Url = LoginUrl, Type = RequestType.POST, Referer = SiteLink, PostData = pairs }; var response = await webclient.GetString(request); CQ splashDom = response.Content; var link = splashDom[".trow2 a"].First(); var resultPage = await RequestStringWithCookies(link.Attr("href"), response.Cookies); CQ resultDom = resultPage.Content; await ConfigureIfOK(response.Cookies, resultPage.Content.Contains("/logout.php"), () => { var tries = resultDom["#main tr:eq(1) td font"].First().Text(); var errorMessage = "Incorrect username or password! " + tries + " tries remaining."; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task<ConfigurationData> GetConfigurationForSetup() { var request = CreateHttpRequest(new Uri(LoginUrl)); var response = await client.SendAsync(request); await response.Content.ReadAsStreamAsync(); var config = new ConfigurationDataBasicLogin(); return config; }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var loginPage = await webclient.GetString(new WebRequest() { Url = LoginUrl, Type = RequestType.GET }); var pairs = new Dictionary<string, string> { { "uid", config.Username.Value }, { "pwd", config.Password.Value } }; // Send Post var loginPost = await webclient.GetString(new WebRequest() { Url = LoginUrl, PostData = pairs, Referer = LoginUrl, Type = RequestType.POST, Cookies = loginPage.Cookies }); if (loginPost.Status == System.Net.HttpStatusCode.OK) { var errorStr = "You have {0} remaining login attempts"; var remainingAttemptSpan = new Regex(string.Format(errorStr, "(.*?)")).Match(loginPage.Content).Groups[1].ToString(); var attempts = Regex.Replace(remainingAttemptSpan, "<.*?>", String.Empty); var errorMessage = string.Format(errorStr, attempts); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } // Get result from redirect var loginResult = await webclient.GetString(new WebRequest() { Url = SiteLink + loginPost.RedirectingTo, Type = RequestType.GET, Cookies = loginPost.Cookies }); if (!loginResult.Content.Contains("logout.php")) { throw new ExceptionWithConfigData("Login failed", (ConfigurationData)config); } else { cookieHeader = loginPost.Cookies; var configSaveData = new JObject(); configSaveData["cookies"] = cookieHeader; SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var loginPage = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl, Type = RequestType.GET }); var token = new Regex("Avz.CSRF_TOKEN = '(.*?)';").Match(loginPage.Content).Groups[1].ToString(); var pairs = new Dictionary<string, string> { { "_token", token }, { "username_email", config.Username.Value }, { "password", config.Password.Value }, { "remember", "on" } }; // Send Post var loginPost = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl, PostData = pairs, Referer = LoginUrl, Type = RequestType.POST, Cookies = loginPage.Cookies }); // Get result from redirect var loginResult = await webclient.GetString(new Utils.Clients.WebRequest() { Url = loginPost.RedirectingTo, Type = RequestType.GET, Cookies = loginPost.Cookies }); if (!loginResult.Content.Contains("auth/logout")) { CQ dom = loginResult.Content; var messageEl = dom[".form-error"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { cookieHeader = loginPost.Cookies; var configSaveData = new JObject(); configSaveData["cookies"] = cookieHeader; SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var loginForm = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl, Type = RequestType.GET }); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "returnto", "/index.php" } }; var response = await webclient.GetString(new Utils.Clients.WebRequest() { Url = LoginUrl, PostData = pairs, Referer = SiteLink.ToString(), Type = RequestType.POST, Cookies = loginForm.Cookies }); cookieHeader = response.Cookies; if (response.Status == HttpStatusCode.Found) { response = await webclient.GetString(new Utils.Clients.WebRequest() { Url = SearchUrl, Cookies = cookieHeader }); } var responseContent = response.Content; if (!responseContent.Contains("<a href=\"logout.php\">Logout</a>")) { CQ dom = responseContent; var messageEl = dom[".error"].First(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { var configSaveData = new JObject(); configSaveData["cookies"] = cookieHeader; SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "submit", "come on in" } }; var content = new FormUrlEncodedContent(pairs); // Do the login var response = await webclient.GetString(new Utils.Clients.WebRequest() { PostData = pairs, Referer = LoginUrl, Type = RequestType.POST, Url = LoginUrl }); cookieHeader = response.Cookies; if (response.Status == HttpStatusCode.Found) { response = await webclient.GetString(new Utils.Clients.WebRequest() { Url = SiteLink.ToString(), Referer = LoginUrl.ToString(), Cookies = cookieHeader }); } if (!response.Content.Contains("nav_profile")) { CQ dom = response.Content; var messageEl = dom["#login_box_desc"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { var configSaveData = new JObject(); configSaveData["cookie_header"] = cookieHeader; SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value }, { "login", "Login" }, { "keeplogged", "1" } }; // Do the login var response = await webclient.GetString(new Utils.Clients.WebRequest() { PostData = pairs, Referer = LoginUrl, Type = RequestType.POST, Url = LoginUrl }); cookieHeader = response.Cookies; if (response.Status == HttpStatusCode.Found || response.Status == HttpStatusCode.Redirect || response.Status == HttpStatusCode.RedirectMethod) { response = await webclient.GetString(new Utils.Clients.WebRequest() { Url = SiteLink.ToString(), Referer = LoginUrl.ToString(), Cookies = cookieHeader }); } if (!response.Content.Contains("logout.php?")) { CQ dom = response.Content; dom["#loginform > table"].Remove(); var errorMessage = dom["#loginform"].Text().Trim().Replace("\n\t", " "); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); } else { var configSaveData = new JObject(); configSaveData["cookie_header"] = cookieHeader; SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, null, LoginUrl); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () => { CQ dom = result.Content; var errorMessage = dom["td.text"].Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); var pairs = new Dictionary<string, string> { { "uid", incomingConfig.Username.Value }, { "pwd", incomingConfig.Password.Value } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("If your browser doesn't have javascript enabled"), () => { var errorMessage = "Couldn't login"; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "remember_me", "on" }, { "login", "submit" } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true,null, LoginUrl); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("/user/account/logout"), () => { CQ dom = result.Content; var messageEl = dom[".ui-state-error"].Last(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "login", "Log in" }, { "keeplogged", "1" } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SearchUrl, SiteLink); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php?"), () => { CQ dom = result.Content; dom["#loginform > table"].Remove(); var errorMessage = dom["#loginform"].Text().Trim().Replace("\n\t", " "); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value } }; // Get inital cookies cookieHeader = string.Empty; var response = await RequestLoginAndFollowRedirect(LoginPostUrl, pairs, cookieHeader, true, null, LoginUrl); await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("/logout.php"), () => { CQ dom = response.Content; var messageEl = dom[".error_text"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "submit", "come on in" } }; var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, LoginUrl); await ConfigureIfOK(result.Cookies + " " + loginPage.Cookies, result.Content != null && result.Content.Contains("nav_profile"), () => { CQ dom = result.Content; var messageEl = dom["#login_box_desc"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value }, { "returnto", "/" }, { "login", "Log in!" } }; var loginPage = await RequestStringWithCookies(SiteLink, string.Empty); var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, SiteLink, SiteLink); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () => { CQ dom = result.Content; var messageEl = dom["body > div"].First(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var incomingConfig = new ConfigurationDataBasicLogin(); incomingConfig.LoadValuesFromJson(configJson); var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); var token = new Regex("Avz.CSRF_TOKEN = '(.*?)';").Match(loginPage.Content).Groups[1].ToString(); var pairs = new Dictionary<string, string> { { "_token", token }, { "username_email", incomingConfig.Username.Value }, { "password", incomingConfig.Password.Value }, { "remember", "on" } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("auth/logout"), () => { CQ dom = result.Content; var messageEl = dom[".form-error"]; var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)incomingConfig); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value }, { "keeplogged", "1" }, { "login", "Log In!" } }; var content = new FormUrlEncodedContent(pairs); var response = await client.PostAsync(LoginUrl, content); var responseContent = await response.Content.ReadAsStringAsync(); if (!responseContent.Contains("logout.php")) { CQ dom = responseContent; var messageEl = dom["#loginform"]; var messages = new List<string>(); for (var i = 0; i < 13; i++) { var child = messageEl[0].ChildNodes[i]; messages.Add(child.Cq().Text().Trim()); } var message = string.Join(" ", messages); throw new ExceptionWithConfigData(message, (ConfigurationData)config); } else { var configSaveData = new JObject(); cookies.DumpToJson(BaseUrl, configSaveData); SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var startMessage = await RequestStringWithCookies(StartPageUrl, string.Empty); var pairs = new Dictionary<string, string> { { "username", config.Username.Value }, { "password", config.Password.Value } }; var result = await RequestLoginAndFollowRedirect(LoginUrl, pairs, null, true, SiteLink, LoginUrl); await ConfigureIfOK(result.Cookies, result.Content != null && result.Content.Contains("logout.php"), () => { CQ dom = result.Content; var messageEl = dom["#login"]; messageEl.Children("form").Remove(); var errorMessage = messageEl.Text().Trim(); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var startMessage = CreateHttpRequest(LoginUrl); var results = await (await client.SendAsync(startMessage)).Content.ReadAsStringAsync(); var pairs = new Dictionary<string, string> { { "uid", config.Username.Value }, { "pwd", config.Password.Value } }; var content = new FormUrlEncodedContent(pairs); var loginRequest = CreateHttpRequest(LoginUrl); loginRequest.Method = HttpMethod.Post; loginRequest.Content = content; loginRequest.Headers.Referrer = new Uri("https://hd-torrents.org/torrents.php"); var response = await client.SendAsync(loginRequest); var responseContent = await response.Content.ReadAsStringAsync(); if (!responseContent.Contains("If your browser doesn't have javascript enabled")) { var errorMessage = "Couldn't login"; throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); } else { var configSaveData = new JObject(); cookies.DumpToJson(SiteLink, configSaveData); SaveConfig(configSaveData); IsConfigured = true; } }
public async Task ApplyConfiguration(JToken configJson) { var config = new ConfigurationDataBasicLogin(); config.LoadValuesFromJson(configJson); var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty); var pairs = new Dictionary<string, string> { { "uid", config.Username.Value }, { "pwd", config.Password.Value } }; // Send Post var response = await RequestLoginAndFollowRedirect(LoginUrl, pairs, loginPage.Cookies, true, null, LoginUrl); await ConfigureIfOK(response.Cookies, response.Content != null && response.Content.Contains("logout.php"), () => { var errorStr = "You have {0} remaining login attempts"; var remainingAttemptSpan = new Regex(string.Format(errorStr, "(.*?)")).Match(loginPage.Content).Groups[1].ToString(); var attempts = Regex.Replace(remainingAttemptSpan, "<.*?>", String.Empty); var errorMessage = string.Format(errorStr, attempts); throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config); }); }
public Task<ConfigurationData> GetConfigurationForSetup() { var config = new ConfigurationDataBasicLogin(); return Task.FromResult<ConfigurationData>(config); }