diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-08-17 01:42:30 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2022-08-17 01:42:30 -0400 |
commit | 32fc7def7c5936e9a4c8c4d9b36b9a7570ca8664 (patch) | |
tree | 5803088f63b91967ca28a64eb53b0b701c43e35d /src/abaddon.cpp | |
parent | 14602a73842f0c57eda857503a3539a9d9aa4089 (diff) | |
download | abaddon-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.cpp | 41 |
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) { |