Example #1
0
        public async Task <IndexerConfigurationStatus> 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 RequestLoginAndFollowRedirect(LoginUrl, pairs, string.Empty, true, SiteLink);

            await ConfigureIfOK(response.Cookies, response.Content != null && 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);
            });

            return(IndexerConfigurationStatus.RequiresTesting);
        }
Example #2
0
        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 content = new FormUrlEncodedContent(pairs);

            var response = await client.PostAsync(LoginUrl, content);
            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("/user/account/logout"))
            {
                CQ dom = responseContent;
                var messageEl = dom[".ui-state-error"].Last();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                cookies.DumpToJson(SiteLink, configSaveData);

                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #3
0
        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 messageEl = dom["table.detail td.text"].Last();
                messageEl.Children("a").Remove();
                messageEl.Children("style").Remove();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                cookies.DumpToJson(SiteLink, configSaveData);

                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #4
0
        public async Task ApplyConfiguration(JToken configJson)
        {
            var configSaveData = new JObject();
            if (OnSaveConfigurationRequested != null)
                OnSaveConfigurationRequested(this, configSaveData);

            var config = new ConfigurationDataBasicLogin();
            config.LoadValuesFromJson(configJson);

            var pairs = new Dictionary<string, string> {
				{ "username", config.Username.Value },
				{ "password", @config.Password.Value },
				{ "login", "Login" },
			    { "keeplogged", "1" }
			};

            var content = new FormUrlEncodedContent(pairs);
            var message = CreateHttpRequest(new Uri(LoginUrl));
            message.Content = content;

            //message.Headers.Referrer = new Uri(LoginUrl);
            string responseContent;

            configSaveData = new JObject();

            if (Program.IsWindows)
            {
                // If Windows use .net http
                var response = await client.SendAsync(message);
                responseContent = await response.Content.ReadAsStringAsync();
                cookies.DumpToJson(SiteLink, configSaveData);
            }
            else
            {
                // If UNIX system use curl, probably broken due to missing chromeUseragent record for CURL...cannot test
                var response = await CurlHelper.PostAsync(LoginUrl, pairs);
                responseContent = Encoding.UTF8.GetString(response.Content);
                cookieHeader = response.CookieHeader;
                configSaveData["cookie_header"] = cookieHeader;
            }

            if (!responseContent.Contains("logout.php?"))
            {
                CQ dom = responseContent;
                dom["#loginform > table"].Remove();
                var errorMessage = dom["#loginform"].Text().Trim().Replace("\n\t", " ");
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);

            }
            else
            {
                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #5
0
        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);

            string responseContent;
            JArray cookieJArray;

            if (Program.IsWindows)
            {
                // If Windows use .net http
                var response = await client.PostAsync(LoginUrl, content);

                responseContent = await response.Content.ReadAsStringAsync();

                cookieJArray = cookies.ToJson(SiteLink);
            }
            else
            {
                // If UNIX system use curl
                var response = await CurlHelper.PostAsync(LoginUrl, pairs);

                responseContent = Encoding.UTF8.GetString(response.Content);
                cookieHeader    = response.CookieHeader;
                cookieJArray    = new JArray(response.CookiesFlat);
            }

            if (!responseContent.Contains("nav_profile"))
            {
                CQ  dom          = responseContent;
                var messageEl    = dom["#login_box_desc"];
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookieJArray;

                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }
Example #6
0
        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 content = new FormUrlEncodedContent(pairs);

            string responseContent;
            JArray cookieJArray;

            if (Program.IsWindows)
            {
                // If Windows use .net http
                var response = await client.PostAsync(LoginUrl, content);
                responseContent = await response.Content.ReadAsStringAsync();
                cookieJArray = cookies.ToJson(SiteLink);
            }
            else
            {
                // If UNIX system use curl
                var response = await CurlHelper.PostAsync(LoginUrl, pairs);
                responseContent = Encoding.UTF8.GetString(response.Content);
                cookieHeader = response.CookieHeader;
                cookieJArray = new JArray(response.CookiesFlat);
            }

            if (!responseContent.Contains("logout.php?"))
            {
                CQ dom = responseContent;
                dom["#loginform > table"].Remove();
                var errorMessage = dom["#loginform"].Text().Trim().Replace("\n\t", " ");
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);

            }
            else
            {

                var configSaveData = new JObject();
                configSaveData["cookies"] = cookieJArray;
                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #7
0
        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);

            string responseContent;
            var configSaveData = new JObject();

            if (Program.IsWindows)
            {
                // If Windows use .net http
                var response = await client.PostAsync(LoginUrl, content);
                responseContent = await response.Content.ReadAsStringAsync();
                cookies.DumpToJson(SiteLink, configSaveData);
            }
            else
            {
                // If UNIX system use curl
                var response = await CurlHelper.PostAsync(LoginUrl, pairs);
                responseContent = Encoding.UTF8.GetString(response.Content);
                cookieHeader = response.CookieHeader;
                configSaveData["cookie_header"] = cookieHeader;
            }

            if (!responseContent.Contains("nav_profile"))
            {
                CQ dom = responseContent;
                var messageEl = dom["#login_box_desc"];
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #8
0
        public async Task ApplyConfiguration(JToken configJson)
        {
            var config = new ConfigurationDataBasicLogin();

            config.LoadValuesFromJson(configJson);

            var startMessage = CreateHttpRequest(StartPageUrl);
            var results      = await(await client.SendAsync(startMessage)).Content.ReadAsStringAsync();


            var pairs = new Dictionary <string, string> {
                { "username", config.Username.Value },
                { "password", config.Password.Value }
            };
            var content      = new FormUrlEncodedContent(pairs);
            var loginRequest = CreateHttpRequest(LoginUrl);

            loginRequest.Method           = HttpMethod.Post;
            loginRequest.Content          = content;
            loginRequest.Headers.Referrer = new Uri(StartPageUrl);

            var response = await client.SendAsync(loginRequest);

            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("logout.php"))
            {
                CQ  dom       = responseContent;
                var messageEl = dom["#login"];
                messageEl.Children("form").Remove();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookies.ToJson(SiteLink);

                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }
Example #9
0
        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 = new HttpRequestMessage();

            message.Method           = HttpMethod.Post;
            message.Content          = content;
            message.RequestUri       = new Uri(BaseUrl);
            message.Headers.Referrer = new Uri(BaseUrl);
            message.Headers.UserAgent.ParseAdd(chromeUserAgent);

            var response = await client.SendAsync(message);

            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("/my.php"))
            {
                CQ  dom          = responseContent;
                var messageEl    = dom["body > div"].First();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookies.ToJson(SiteLink);

                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }
Example #10
0
        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 = new HttpRequestMessage();
            message.Method = HttpMethod.Post;
            message.Content = content;
            message.RequestUri = new Uri(BaseUrl);
            message.Headers.Referrer = new Uri(BaseUrl);
            message.Headers.UserAgent.ParseAdd(chromeUserAgent);

            var response = await client.SendAsync(message);
            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("/my.php"))
            {
                CQ dom = responseContent;
                var messageEl = dom["body > div"].First();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                cookies.DumpToJson(SiteLink, configSaveData);

                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }

        }
Example #11
0
        public async Task ApplyConfiguration(JToken configJson)
        {
            var config = new ConfigurationDataBasicLogin();
            config.LoadValuesFromJson(configJson);

            var startMessage = CreateHttpRequest(StartPageUrl);
            var results = await (await client.SendAsync(startMessage)).Content.ReadAsStringAsync();


            var pairs = new Dictionary<string, string> {
				{ "username", config.Username.Value },
				{ "password", config.Password.Value }
			};
            var content = new FormUrlEncodedContent(pairs);
            var loginRequest = CreateHttpRequest(LoginUrl);
            loginRequest.Method = HttpMethod.Post;
            loginRequest.Content = content;
            loginRequest.Headers.Referrer = new Uri(StartPageUrl);

            var response = await client.SendAsync(loginRequest);
            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("logout.php"))
            {
                CQ dom = responseContent;
                var messageEl = dom["#login"];
                messageEl.Children("form").Remove();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                cookies.DumpToJson(SiteLink, configSaveData);

                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #12
0
        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 RequestLoginAndFollowRedirect(LoginUrl, pairs, string.Empty, true, SiteLink);
            await ConfigureIfOK(response.Cookies, response.Content != null && 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);
               });
        }
Example #13
0
        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);

                if (OnSaveConfigurationRequested != null)
                    OnSaveConfigurationRequested(this, configSaveData);

                IsConfigured = true;
            }
        }
Example #14
0
        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", "Login" }
            };

            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"];
                messageEl.Children("table").Remove();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookies.ToJson(SiteLink);

                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }
Example #15
0
        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 content = new FormUrlEncodedContent(pairs);

            var response = await client.PostAsync(LoginUrl, content);

            var responseContent = await response.Content.ReadAsStringAsync();

            if (!responseContent.Contains("/user/account/logout"))
            {
                CQ  dom          = responseContent;
                var messageEl    = dom[".ui-state-error"].Last();
                var errorMessage = messageEl.Text().Trim();
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                var configSaveData = new JObject();
                configSaveData["cookies"] = cookies.ToJson(SiteLink);

                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }
Example #16
0
        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;

            if (OnSaveConfigurationRequested != null)
                OnSaveConfigurationRequested(this, configSaveData);

            IsConfigured = true;
        }
Example #17
0
        public async Task ApplyConfiguration(JToken configJson)
        {
            cookies = new CookieContainer();
            client  = new HttpClient(handler);

            var configSaveData = new JObject();

            if (OnSaveConfigurationRequested != null)
            {
                OnSaveConfigurationRequested(this, configSaveData);
            }

            var config = new ConfigurationDataBasicLogin();

            config.LoadValuesFromJson(configJson);

            var pairs = new Dictionary <string, string> {
                { "username", config.Username.Value },
                { "password", @config.Password.Value },
                { "login", "Login" },
                { "keeplogged", "1" }
            };

            var content = new FormUrlEncodedContent(pairs);
            var message = CreateHttpRequest(new Uri(LoginUrl));

            message.Content = content;

            //message.Headers.Referrer = new Uri(LoginUrl);
            string responseContent;
            JArray cookieJArray;

            if (Program.IsWindows)
            {
                // If Windows use .net http
                var response = await client.SendAsync(message);

                responseContent = await response.Content.ReadAsStringAsync();

                cookieJArray = cookies.ToJson(SiteLink);
            }
            else
            {
                // If UNIX system use curl, probably broken due to missing chromeUseragent record for CURL...cannot test
                var response = await CurlHelper.PostAsync(LoginUrl, pairs);

                responseContent = Encoding.UTF8.GetString(response.Content);
                cookieHeader    = response.CookieHeader;
                cookieJArray    = new JArray(response.CookiesFlat);
            }

            if (!responseContent.Contains("logout.php?"))
            {
                CQ dom = responseContent;
                dom["#loginform > table"].Remove();
                var errorMessage = dom["#loginform"].Text().Trim().Replace("\n\t", " ");
                throw new ExceptionWithConfigData(errorMessage, (ConfigurationData)config);
            }
            else
            {
                configSaveData            = new JObject();
                configSaveData["cookies"] = cookieJArray;
                if (OnSaveConfigurationRequested != null)
                {
                    OnSaveConfigurationRequested(this, configSaveData);
                }

                IsConfigured = true;
            }
        }