Exemplo n.º 1
0
        public static async Task <decimal> RedeemAmazonAsync(this IWebView view, string claimcode, CancellationToken ct, int delayMS)
        {
            string amazonCashInUrl = "https://www.amazon.com/gc/redeem/";

            if (view.Source.ToString().ToLower().Contains(amazonCashInUrl) == false)
            {
                await view.WaitPageLoadComplete(() =>
                {
                    view.Source = amazonCashInUrl.ToUri();
                }, ct : ct);
            }
            else
            {
                await view.WaitPageLoadComplete(() =>
                {
                    view.Reload(false);
                }, ct : ct);
            }

            view.ExecuteJavascript(string.Format("document.querySelector('#gc-redemption-input').value='{0}'", claimcode));

            await view.WaitPageLoadComplete(() =>
            {
                view.ExecuteJavascript("document.querySelector(\"#gc-redemption-apply input\").click()");
            }, ct : ct);

            await Task.Delay(delayMS);

            return(await view.GetAmazonBalanceAsync());
        }
Exemplo n.º 2
0
        public static async Task <decimal> AuthenticateToAmazonAsync(this IWebView view, string username, string password, CancellationToken ct)
        {
            string amazonLoginUrl = @"https://www.amazon.com/gc/redeem/";

            if (view.Source == null)
            {
                await view.WaitPageLoadComplete(() =>
                {
                    view.Source = amazonLoginUrl.ToUri();
                }, ct : ct);
            }

            if (view.Source.ToString().ToLower() != amazonLoginUrl)
            {
                await view.WaitPageLoadComplete(() =>
                {
                    view.Source = amazonLoginUrl.ToUri();
                }, ct : ct);
            }
            else
            {
                view.Reload(true);
            }

            if (view.Source.ToString().ToLower().Contains("signin"))
            {
                view.ExecuteJavascript(string.Format("document.querySelector(\"#ap_email\").value=\"{0}\"", username));
                view.ExecuteJavascript(string.Format("document.querySelector(\"#ap_password\").value=\"{0}\"", password));

                await view.WaitPageLoadComplete(() =>
                {
                    view.ExecuteJavascript("document.querySelector(\"#signInSubmit\").click()");
                }, 10);

                while (true)
                {
                    await Task.Delay(250, ct);

                    ct.ThrowIfCancellationRequested();
                    if (view.Source.ToString().ToLower().Contains("/redeem/"))
                    {
                        break;
                    }
                }
            }

            return(await view.GetAmazonBalanceAsync());
        }