public void Refresh() { Dispatcher.Invoke(() => { accessCodeComboBox.Items.Clear(); foreach (DiscordOAuth.AccessCodeKey code in DiscordOAuth.availableAccessCodes) { accessCodeComboBox.Items.Add(code.username); } // if not logged in with discord if (!accessCodeComboBox.Items.Contains("Personal")) { accessCodeComboBox.Items.Add("Personal"); } accessCodeComboBox.SelectedIndex = DiscordOAuth.GetAccessCodeIndexByHash(SparkSettings.instance.accessCode); if (string.IsNullOrEmpty(DiscordOAuth.DiscordUsername)) { currentUsernameLabel.Content = "Not logged in"; discordLoginButton.Content = "Discord Login"; } else { currentUsernameLabel.Content = "Logged in as:\n" + DiscordOAuth.DiscordUsername; discordLoginButton.Content = "Unlink Discord"; } }); }
private void StartButtonClicked(object sender, RoutedEventArgs e) { string username = accessCodeComboBox.SelectedValue.ToString(); DiscordOAuth.SetAccessCodeByUsername(username); Close(); }
private void DiscordLoginButtonClicked(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(DiscordOAuth.DiscordUsername)) { DiscordOAuth.OAuthLogin(force: true); } else { DiscordOAuth.Unlink(); } Refresh(); string username = accessCodeComboBox.SelectedValue.ToString(); DiscordOAuth.SetAccessCodeByUsername(username); }
private void DiscordLoginButtonClicked(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(DiscordOAuth.DiscordUsername)) { DiscordOAuth.OAuthLogin(force: true); } else { DiscordOAuth.Unlink(); } Refresh(); string username = accessCodeComboBox.SelectedValue.ToString(); Program.currentAccessCodeUsername = username; Settings.Default.accessCode = SecretKeys.Hash(DiscordOAuth.AccessCode); Settings.Default.Save(); }
private void ProcessContext(HttpListenerContext context) { // this is an oauth request if (context.Request.Url.AbsolutePath == "/oauth_login") { using (MemoryStream memStream = new MemoryStream()) { StreamWriter sw = new StreamWriter(memStream); sw.WriteLine("<body onload=\"javascript: close(); \"></body>"); context.Response.ContentLength64 = sw.BaseStream.Length; memStream.Flush(); memStream.CopyTo(context.Response.OutputStream); context.Response.OutputStream.Flush(); } context.Response.StatusCode = (int)HttpStatusCode.OK; context.Response.OutputStream.Close(); Stop(); DiscordOAuth.OAuthLoginResponse(HttpUtility.ParseQueryString(context.Request.Url.Query)["code"]); } //context.Response.ContentType = "application/json"; //context.Response.AddHeader("Access-Control-Allow-Origin", "*"); //string data = "{}"; //if (Program.lastJSON != null && Program.lastJSON != "") // TODO add locks to lastJSON //{ // data = Program.lastJSON; //} //byte[] buffer = System.Text.Encoding.ASCII.GetBytes(data); //context.Response.ContentLength64 = buffer.Length; //Stream output = context.Response.OutputStream; //output.Write(buffer, 0, buffer.Length); //output.Close(); }