Example #1
0
        private void LoginUI_Loaded(object sender, RoutedEventArgs e)
        {
            try
            {
                ParentWindow = Window.GetWindow(this) as PixivLoginDialog;
                setting      = Application.Current.LoadSetting();

                Title       = Application.Current.LoginTitle();
                WindowTitle = Application.Current.LoginTitle();

#if DEBUG
                var logo = System.IO.Path.Combine(Application.Current.GetRoot(), "Assets", "pixiv-logo.png");
                var uri  = new Uri(logo);
                if (uri.IsAbsoluteUri && System.IO.File.Exists(uri.AbsolutePath))
                {
                    Logo.Source = new BitmapImage(uri);
                }
#else
                var uri = new Uri(@"pack://application:,,,/PixivWPF;component/Resources/pixiv-logo.png");
                if (uri.IsAbsoluteUri && System.IO.File.Exists(uri.AbsolutePath))
                {
                    if (Logo.Source == null)
                    {
                        Logo.Source = new BitmapImage(uri);
                    }
                }
#endif
                new Action(() =>
                {
                    edUser.Text               = setting.User;
                    edPass.Password           = setting.Pass;
                    edProxy.Text              = setting.Proxy;
                    chkUseProxy.IsChecked     = setting.UsingProxy;
                    chkUseProxyDown.IsChecked = setting.DownloadUsingProxy;
                }).Invoke(async: true);
                this.DoEvents();
            }
            catch (Exception ex) { ex.ERROR("LoginLoaded"); }
            finally
            {
                if (string.IsNullOrEmpty(edUser.Text))
                {
                    edUser.Focus();
                }
                else if (string.IsNullOrEmpty(edPass.Password))
                {
                    edPass.Focus();
                }
                else
                {
                    btnLogin.Focus();
                }
            }
        }
Example #2
0
        private async void Login_Click(object sender, RoutedEventArgs e)
        {
            if (ParentWindow == null)
            {
                ParentWindow = Window.GetWindow(this) as PixivLoginDialog;
            }

            setting             = Application.Current.LoadSetting();
            Pixeez.Auth.TimeOut = setting.DownloadHttpTimeout;

            var  user         = edUser.Text.Trim();
            var  pass         = edPass.Password.Trim();
            var  proxy        = edProxy.Text.Trim();
            bool useproxy     = chkUseProxy.IsChecked == true ? true : false;
            bool useproxydown = chkUseProxyDown.IsChecked == true ? true : false;

            if (!string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(pass))
            {
                try
                {
                    LoginWait.Show();
                    if (ParentWindow is PixivLoginDialog)
                    {
                        //ParentWindow.DialogResult = false;
                    }

                    btnLogin.IsEnabled        = false;
                    btnCancel.IsEnabled       = false;
                    edUser.IsEnabled          = false;
                    edPass.IsEnabled          = false;
                    edProxy.IsEnabled         = false;
                    chkUseProxy.IsEnabled     = false;
                    chkUseProxyDown.IsEnabled = false;

                    // Create Tokens
                    var proxyserver = proxy;
                    if (!useproxy)
                    {
                        proxyserver = string.Empty;
                    }
                    var accesstoken  = Application.Current.AccessToken();
                    var refreshtoken = Application.Current.RefreshToken();

                    //var deviceId = Application.Current.GetDeviceId();
                    tokens = Pixeez.Auth.AuthorizeWithAccessToken(accesstoken, proxy, setting.ProxyBypass, useproxy);
                    var result = await Pixeez.Auth.AuthorizeAsync(user, pass, refreshtoken, proxyserver, setting.ProxyBypass, useproxy);

                    if (!string.IsNullOrEmpty(result.Authorize.AccessToken))
                    {
                        accesstoken = result.Authorize.AccessToken;
                        tokens      = result.Tokens;

                        setting.AccessToken        = tokens.AccessToken;
                        setting.RefreshToken       = tokens.RefreshToken;
                        setting.ExpTime            = result.Key.KeyExpTime.ToLocalTime();
                        setting.ExpiresIn          = result.Authorize.ExpiresIn.Value;
                        setting.Update             = DateTime.Now.ToFileTime().FileTimeToSecond();
                        setting.UsingProxy         = useproxy;
                        setting.DownloadUsingProxy = useproxydown;
                        setting.Proxy = proxy;
                        await Task.Delay(1);

                        this.DoEvents();
                        setting.User   = user;
                        setting.Pass   = pass;
                        setting.MyInfo = result.Authorize.User;
                        setting.Save();
                    }

                    if (tokens is Pixeez.Tokens && !string.IsNullOrEmpty(tokens.AccessToken))
                    {
                        if (ParentWindow is PixivLoginDialog)
                        {
                            ParentWindow.AccessToken  = tokens.AccessToken;
                            ParentWindow.RefreshToken = tokens.RefreshToken;
                            ParentWindow.Tokens       = tokens;
                            ParentWindow.DialogResult = true;
                            CloseWindow();
                        }
                    }
                }
                catch (Exception ex)
                {
                    //await ex.Message.ShowMessageBoxAsync("ERROR");
                    ex.Message.ShowMessageBox("ERROR");
                }
                finally
                {
                    btnLogin.IsEnabled        = true;
                    btnCancel.IsEnabled       = true;
                    edUser.IsEnabled          = true;
                    edPass.IsEnabled          = true;
                    edProxy.IsEnabled         = true;
                    chkUseProxy.IsEnabled     = true;
                    chkUseProxyDown.IsEnabled = true;
                    LoginWait.Hide();
                }
            }
        }