Exemple #1
0
        private async void AuthorizePocket()
        {
            Settings.PocketClient.CallbackUri = "https://getpocket.com/a/queue/"; //Todo: Need to change this to an automatically closing page
            string requestCode = await Settings.PocketClient.GetRequestCode();

            Uri authenticationUri = Settings.PocketClient.GenerateAuthenticationUri();

            Process.Start(authenticationUri.ToString());

            PocketUser user = null;

            while (true)
            {
                try
                {
                    user = await Settings.PocketClient.GetUser(requestCode);

                    break;
                }
                catch { }
                System.Threading.Thread.Sleep(500);
            }

            Settings.Instance.PocketAuthCode = user.Code;
            Settings.Instance.AddToPocket    = true;
        }
        /// <summary>
        /// Requests the access code and username after authentication
        /// The access code has to permanently be stored within the users session, and should be passed in the constructor for all future PocketClient initializations.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <param name="requestCode">The request code.</param>
        /// <returns>
        /// The authenticated user
        /// </returns>
        /// <exception cref="System.NullReferenceException">Call GetRequestCode() first to receive a request_code</exception>
        public async Task <PocketUser> GetUser(string requestCode = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // check if request code is available
            if (RequestCode == null && requestCode == null)
            {
                throw new NullReferenceException("Call GetRequestCode() first to receive a request_code");
            }

            // override property with given param if available
            if (requestCode != null)
            {
                RequestCode = requestCode;
            }

            // do request
            PocketUser response = await Request <PocketUser>("oauth/authorize", cancellationToken, new Dictionary <string, string>()
            {
                { "code", RequestCode }
            }, false);

            // save code to client
            AccessCode = response.Code;

            return(response);
        }
Exemple #3
0
        private static async Task <int> Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var    _client     = new PocketClient(_config.PocketConsumerKey, callbackUri: _config.PocketRedirectUri);
            string requestCode = await _client.GetRequestCode();

            Console.WriteLine(_client.GenerateRegistrationUri(requestCode).ToString());
            Console.WriteLine("Press enter after authorizing app...");
            Console.ReadLine();
            PocketUser pocketUser = await _client.GetUser(requestCode);

            IUserService userService = UserService.BuildUserService(_config.StorageConnectionString);

            Console.WriteLine("Input your kindle email:");
            var kindleEmail = Console.ReadLine();

            var user = new User()
            {
                AccessCode         = pocketUser.Code,
                PocketUsername     = pocketUser.Username,
                KindleEmail        = kindleEmail,
                LastProcessingDate = DateTime.UtcNow
            };

            await userService.AddUserAsync(user);

            Console.WriteLine("Bye World!");
            Console.ReadLine();

            return(0);
        }
Exemple #4
0
 public void SignOutFromPocket()
 {
     LoggedInPocketUser = null;
     if (FileExistsAsync(Constants.StorageSettings.PocketUserFile))
     {
         DeleteFileAsync(Constants.StorageSettings.PocketUserFile);
     }
 }
Exemple #5
0
        public void SetPocketUser(PocketUser user, bool saveToDisk)
        {
            LoggedInPocketUser       = user;
            _pocketClient.AccessCode = LoggedInPocketUser.Code;

            if (saveToDisk)
            {
                var json = JsonConvert.SerializeObject(LoggedInPocketUser);
                WriteAllTextAsync(Constants.StorageSettings.PocketUserFile, json);
            }
        }
Exemple #6
0
        public static async Task <IActionResult> RunAsync(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
            ILogger log,
            ExecutionContext context)
        {
            var _config      = new ConfigBuilder(context.FunctionAppDirectory).Build();
            var _emailSender = new MailgunSender(_config.MailGunSenderOptions.ApiKey, _config.MailGunSenderOptions.HostEmail);
            var _client      = new PocketClient(_config.PocketConsumerKey, callbackUri: _config.PocketRedirectUri);

            string          requestBody = new StreamReader(req.Body).ReadToEnd();
            RegisterRequest request     = JsonConvert.DeserializeObject <RegisterRequest>(requestBody);

            if (!IsValidEmail(request.KindleEmail))
            {
                log.LogError($"Not valid email: {request.KindleEmail}.");
                return(new BadRequestObjectResult("email provided is not valid"));
            }

            PocketUser pocketUser = new PocketUser();

            try
            {
                pocketUser = await _client.GetUser(request.RequestCode);
            }
            catch (PocketException pocketException)
            {
                log.LogError($"Something went wrong: {pocketException.Message}.");
                return(new BadRequestObjectResult(pocketException.Message));
            }

            IUserService userService = UserService.BuildUserService(_config.StorageConnectionString);
            await userService.AddUserAsync(new User
            {
                AccessCode         = pocketUser.Code,
                PocketUsername     = pocketUser.Username,
                KindleEmail        = request.KindleEmail,
                LastProcessingDate = DateTime.UtcNow,
                Token = Guid.NewGuid().ToString()
            });

            await SendWelcomeEmail(_emailSender, request.KindleEmail);

            log.LogInformation($"Successfully registered user: {request.KindleEmail}.");

            return(new OkObjectResult("Registration successful"));
        }
Exemple #7
0
        /// <summary>
        /// Requests the access code and username after authentication
        /// The access code has to permanently be stored within the users session, and should be passed in the constructor for all future PocketClient initializations.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <param name="requestCode">The request code.</param>
        /// <returns>
        /// The authenticated user
        /// </returns>
        /// <exception cref="System.NullReferenceException">Call GetRequestCode() first to receive a request_code</exception>
        public async Task <PocketUser> GetUser(string requestCode = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // check if request code is available
            if (RequestCode == null && requestCode == null)
            {
                throw new NullReferenceException("Call GetRequestCode() first to receive a request_code");
            }

            // override property with given param if available
            if (requestCode != null)
            {
                RequestCode = requestCode;
            }

            // do request
            GetUserResponse response = await Request <GetUserResponse>("oauth/authorize", cancellationToken, new Dictionary <string, string>()
            {
                { "code", RequestCode },
                { "account", "1" }
            }, false);

            string avatar = response.Account?.Profile?.Avatar_url;

            PocketUser user = new PocketUser()
            {
                Username        = response.Username,
                Code            = response.Access_token,
                Id              = response.Account?.User_id,
                Email           = response.Account?.Email,
                FirstName       = response.Account?.First_name,
                LastName        = response.Account?.Last_name,
                Followers       = response.Account?.Profile?.Follower_count ?? 0,
                Follows         = response.Account?.Profile?.Follow_count ?? 0,
                Avatar          = avatar != null ? new Uri(avatar, UriKind.Absolute) : null,
                IsDefaultAvatar = avatar == null || avatar.Contains("pocket-profile-images."),
                Description     = response.Account?.Profile?.Description
            };

            // save code to client
            AccessCode = user.Code;

            return(user);
        }
Exemple #8
0
        private void button3_Click(object sender, EventArgs e)
        {
            using (_context = new DigitalPocketContext())
            {
                if (_context.PocketUser.Any(x => x.Username == textBox1.Text))
                {
                    MessageBox.Show("User already exsist");
                }
                else
                {
                    if (String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text) || String.IsNullOrEmpty(textBox3.Text) || String.IsNullOrEmpty(textBox4.Text))
                    {
                        MessageBox.Show("One of the required field is missing");
                    }
                    else
                    {
                        PocketUser pu = new PocketUser()
                        {
                            Email    = textBox3.Text,
                            Password = textBox2.Text,
                            Username = textBox1.Text
                        };
                        _context.PocketUser.Add(pu);
                        _context.SaveChanges();
                        UWallet uw = new UWallet()
                        {
                            Ammount = Convert.ToDecimal(textBox4.Text),
                            Date    = DateTime.Now,
                            UserId  = pu.Id
                        };
                        _context.UWallet.Add(uw);
                        _context.SaveChanges();

                        MessageBox.Show("Account Created please login with your login details");
                        this.Close();
                    }
                }
            }
        }
Exemple #9
0
 public void SetPocketUser(PocketUser user, bool saveToDisk)
 {
 }
Exemple #10
0
 public void SetPocketUser(PocketUser user)
 {
 }
Exemple #11
0
        public async Task IsAuthenticationSuccessful()
        {
            string requestCode = await client.GetRequestCode();

            PocketUser user = await client.GetUser(requestCode);
        }
Exemple #12
0
 private void SaveCacheUser(PocketUser user) => CacheHandler.Save(Cache.CacheKeys.Pocket, user.Code);
Exemple #13
0
 public void SetPocketUser(PocketUser user)
 {
     SetPocketUser(user, true);
 }