summaryrefslogtreecommitdiff
path: root/src/abaddon.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-08-17 01:42:30 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-08-17 01:42:30 -0400
commit32fc7def7c5936e9a4c8c4d9b36b9a7570ca8664 (patch)
tree5803088f63b91967ca28a64eb53b0b701c43e35d /src/abaddon.cpp
parent14602a73842f0c57eda857503a3539a9d9aa4089 (diff)
downloadabaddon-portaudio-32fc7def7c5936e9a4c8c4d9b36b9a7570ca8664.tar.gz
abaddon-portaudio-32fc7def7c5936e9a4c8c4d9b36b9a7570ca8664.zip
fetch cookies and build number on startup
Diffstat (limited to 'src/abaddon.cpp')
-rw-r--r--src/abaddon.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/abaddon.cpp b/src/abaddon.cpp
index e296aa4..343dff7 100644
--- a/src/abaddon.cpp
+++ b/src/abaddon.cpp
@@ -17,6 +17,7 @@
#include "windows/profilewindow.hpp"
#include "windows/pinnedwindow.hpp"
#include "windows/threadswindow.hpp"
+#include "startup.hpp"
#ifdef WITH_LIBHANDY
#include <handy.h>
@@ -253,6 +254,9 @@ int Abaddon::StartGTK() {
m_main_window->UpdateMenus();
m_main_window->show();
+
+ RunFirstTimeDiscordStartup();
+
return m_gtk_app->run(*m_main_window);
}
@@ -435,6 +439,43 @@ void Abaddon::ShowUserMenu(const GdkEvent *event, Snowflake id, Snowflake guild_
m_user_menu->popup_at_pointer(event);
}
+void Abaddon::RunFirstTimeDiscordStartup() {
+ DiscordStartupDialog dlg(*m_main_window);
+ dlg.set_position(Gtk::WIN_POS_CENTER);
+
+ std::optional<std::string> cookie;
+ std::optional<uint32_t> build_number;
+
+ dlg.signal_response().connect([&](int response) {
+ if (response == Gtk::RESPONSE_OK) {
+ cookie = dlg.GetCookie();
+ build_number = dlg.GetBuildNumber();
+ }
+ });
+
+ dlg.run();
+
+ Glib::signal_idle().connect_once([this, cookie, build_number]() {
+ if (cookie.has_value()) {
+ m_discord.SetCookie(*cookie);
+ } else {
+ ConfirmDialog confirm(*m_main_window);
+ confirm.SetConfirmText("Cookies could not be fetched. This may increase your chances of being flagged by Discord's anti-spam");
+ confirm.SetAcceptOnly(true);
+ confirm.run();
+ }
+
+ if (build_number.has_value()) {
+ m_discord.SetBuildNumber(*build_number);
+ } else {
+ ConfirmDialog confirm(*m_main_window);
+ confirm.SetConfirmText("Build number could not be fetched. This may increase your chances of being flagged by Discord's anti-spam");
+ confirm.SetAcceptOnly(true);
+ confirm.run();
+ }
+ });
+}
+
void Abaddon::ShowGuildVerificationGateDialog(Snowflake guild_id) {
VerificationGateDialog dlg(*m_main_window, guild_id);
if (dlg.run() == Gtk::RESPONSE_OK) {