summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2022-10-06 03:08:54 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2022-10-06 03:08:54 -0400
commit0a34c04b44d3f500317a319d497ce2064fdd852f (patch)
treed6531c965796940db82c43ff6ce78630eaef3e66
parent7e851685768d26143e7464fc4acb2d2d5a621eac (diff)
downloadabaddon-portaudio-0a34c04b44d3f500317a319d497ce2064fdd852f.tar.gz
abaddon-portaudio-0a34c04b44d3f500317a319d497ce2064fdd852f.zip
remove ability to join guilds
because 1. joining a guild seems to often require captchas now which are never going to be supported and 2. joining guilds is one of the things that upsets discords spam filter the most, so it kinda makes sense to remove anyways just like open dm
-rw-r--r--src/abaddon.cpp11
-rw-r--r--src/dialogs/joinguild.cpp97
-rw-r--r--src/dialogs/joinguild.hpp31
-rw-r--r--src/discord/discord.cpp4
-rw-r--r--src/discord/discord.hpp1
-rw-r--r--src/windows/mainwindow.cpp12
-rw-r--r--src/windows/mainwindow.hpp4
7 files changed, 0 insertions, 160 deletions
diff --git a/src/abaddon.cpp b/src/abaddon.cpp
index 02dcd08..ec567e7 100644
--- a/src/abaddon.cpp
+++ b/src/abaddon.cpp
@@ -6,7 +6,6 @@
#include "discord/discord.hpp"
#include "dialogs/token.hpp"
#include "dialogs/editmessage.hpp"
-#include "dialogs/joinguild.hpp"
#include "dialogs/confirm.hpp"
#include "dialogs/setstatus.hpp"
#include "dialogs/friendpicker.hpp"
@@ -229,7 +228,6 @@ int Abaddon::StartGTK() {
m_main_window->signal_action_disconnect().connect(sigc::mem_fun(*this, &Abaddon::ActionDisconnect));
m_main_window->signal_action_set_token().connect(sigc::mem_fun(*this, &Abaddon::ActionSetToken));
m_main_window->signal_action_reload_css().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadCSS));
- m_main_window->signal_action_join_guild().connect(sigc::mem_fun(*this, &Abaddon::ActionJoinGuildDialog));
m_main_window->signal_action_set_status().connect(sigc::mem_fun(*this, &Abaddon::ActionSetStatus));
m_main_window->signal_action_add_recipient().connect(sigc::mem_fun(*this, &Abaddon::ActionAddRecipient));
m_main_window->signal_action_view_pins().connect(sigc::mem_fun(*this, &Abaddon::ActionViewPins));
@@ -693,15 +691,6 @@ void Abaddon::ActionSetToken() {
m_main_window->UpdateMenus();
}
-void Abaddon::ActionJoinGuildDialog() {
- JoinGuildDialog dlg(*m_main_window);
- auto response = dlg.run();
- if (response == Gtk::RESPONSE_OK) {
- auto code = dlg.GetCode();
- m_discord.JoinGuild(code);
- }
-}
-
void Abaddon::ActionChannelOpened(Snowflake id, bool expand_to) {
if (!id.IsValid()) {
m_discord.SetReferringChannel(Snowflake::Invalid);
diff --git a/src/dialogs/joinguild.cpp b/src/dialogs/joinguild.cpp
deleted file mode 100644
index 14fab53..0000000
--- a/src/dialogs/joinguild.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-#include "joinguild.hpp"
-#include "abaddon.hpp"
-#include <nlohmann/json.hpp>
-#include <regex>
-
-JoinGuildDialog::JoinGuildDialog(Gtk::Window &parent)
- : Gtk::Dialog("Join Server", parent, true)
- , m_layout(Gtk::ORIENTATION_VERTICAL)
- , m_ok("OK")
- , m_cancel("Cancel")
- , m_info("Enter code") {
- set_default_size(300, 50);
- get_style_context()->add_class("app-window");
- get_style_context()->add_class("app-popup");
-
- Glib::signal_idle().connect(sigc::mem_fun(*this, &JoinGuildDialog::on_idle_slot));
-
- m_entry.signal_changed().connect(sigc::mem_fun(*this, &JoinGuildDialog::on_entry_changed));
-
- m_ok.set_sensitive(false);
-
- m_ok.signal_clicked().connect([&]() {
- response(Gtk::RESPONSE_OK);
- });
-
- m_cancel.signal_clicked().connect([&]() {
- response(Gtk::RESPONSE_CANCEL);
- });
-
- m_entry.set_hexpand(true);
- m_layout.add(m_entry);
- m_lower.set_hexpand(true);
- m_lower.pack_start(m_info);
- m_info.set_halign(Gtk::ALIGN_START);
- m_lower.pack_start(m_ok, Gtk::PACK_SHRINK);
- m_lower.pack_start(m_cancel, Gtk::PACK_SHRINK);
- m_ok.set_halign(Gtk::ALIGN_END);
- m_cancel.set_halign(Gtk::ALIGN_END);
- m_layout.add(m_lower);
- get_content_area()->add(m_layout);
-
- show_all_children();
-}
-
-void JoinGuildDialog::on_entry_changed() {
- std::string s = m_entry.get_text();
- std::regex invite_regex(R"((https?:\/\/)?discord\.(gg(\/invite)?\/|com\/invite\/)([A-Za-z0-9\-]+))", std::regex_constants::ECMAScript);
- std::smatch match;
- bool full_url = std::regex_search(s, match, invite_regex);
- if (full_url || IsCode(s)) {
- m_code = full_url ? match[4].str() : s;
- m_needs_request = true;
- m_ok.set_sensitive(false);
- } else {
- m_ok.set_sensitive(false);
- }
-}
-
-void JoinGuildDialog::CheckCode() {
- auto cb = [this](const std::optional<InviteData> &invite) {
- if (invite.has_value()) {
- m_ok.set_sensitive(true);
- if (invite->Guild.has_value()) {
- if (invite->MemberCount.has_value())
- m_info.set_text(invite->Guild->Name + " (" + std::to_string(*invite->MemberCount) + " members)");
- else
- m_info.set_text(invite->Guild->Name);
- } else {
- m_info.set_text("Group DM (" + std::to_string(*invite->MemberCount) + " members)");
- }
- } else {
- m_ok.set_sensitive(false);
- m_info.set_text("Invalid invite");
- }
- };
- Abaddon::Get().GetDiscordClient().FetchInvite(m_code, sigc::track_obj(cb, *this));
-}
-
-bool JoinGuildDialog::IsCode(std::string str) {
- return str.length() >= 2 && std::all_of(str.begin(), str.end(), [](char c) -> bool { return std::isalnum(c) || c == '-'; });
-}
-
-std::string JoinGuildDialog::GetCode() {
- return m_code;
-}
-
-static const constexpr int RateLimitMS = 1500;
-bool JoinGuildDialog::on_idle_slot() {
- const auto now = std::chrono::steady_clock::now();
- if (m_needs_request && ((now - m_last_req_time) > std::chrono::milliseconds(RateLimitMS))) {
- m_needs_request = false;
- m_last_req_time = now;
- CheckCode();
- }
-
- return true;
-}
diff --git a/src/dialogs/joinguild.hpp b/src/dialogs/joinguild.hpp
deleted file mode 100644
index ba061f3..0000000
--- a/src/dialogs/joinguild.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-#include <gtkmm.h>
-#include <string>
-#include <chrono>
-
-class JoinGuildDialog : public Gtk::Dialog {
-public:
- JoinGuildDialog(Gtk::Window &parent);
- std::string GetCode();
-
-protected:
- void on_entry_changed();
- static bool IsCode(std::string str);
-
- Gtk::Box m_layout;
- Gtk::Button m_ok;
- Gtk::Button m_cancel;
- Gtk::Box m_lower;
- Gtk::Label m_info;
- Gtk::Entry m_entry;
-
- void CheckCode();
-
- // needs a rate limit cuz if u hit it u get ip banned from /invites for a long time :(
- bool m_needs_request = false;
- std::chrono::time_point<std::chrono::steady_clock> m_last_req_time;
- bool on_idle_slot();
-
-private:
- std::string m_code;
-};
diff --git a/src/discord/discord.cpp b/src/discord/discord.cpp
index e1b7a48..2808e17 100644
--- a/src/discord/discord.cpp
+++ b/src/discord/discord.cpp
@@ -573,10 +573,6 @@ void DiscordClient::SendThreadLazyLoad(Snowflake id) {
m_websocket.Send(msg);
}
-void DiscordClient::JoinGuild(const std::string &code) {
- m_http.MakePOST("/invites/" + code, "{}", [](auto) {});
-}
-
void DiscordClient::LeaveGuild(Snowflake id) {
m_http.MakeDELETE("/users/@me/guilds/" + std::to_string(id), [](auto) {});
}
diff --git a/src/discord/discord.hpp b/src/discord/discord.hpp
index 70c2d82..c2bea7d 100644
--- a/src/discord/discord.hpp
+++ b/src/discord/discord.hpp
@@ -113,7 +113,6 @@ public:
void EditMessage(Snowflake channel_id, Snowflake id, std::string content);
void SendLazyLoad(Snowflake id);
void SendThreadLazyLoad(Snowflake id);
- void JoinGuild(const std::string &code);
void LeaveGuild(Snowflake id);
void KickUser(Snowflake user_id, Snowflake guild_id);
void BanUser(Snowflake user_id, Snowflake guild_id); // todo: reason, delete messages
diff --git a/src/windows/mainwindow.cpp b/src/windows/mainwindow.cpp
index 7f4395c..07a7f17 100644
--- a/src/windows/mainwindow.cpp
+++ b/src/windows/mainwindow.cpp
@@ -195,7 +195,6 @@ void MainWindow::OnDiscordSubmenuPopup() {
std::string token = Abaddon::Get().GetDiscordToken();
m_menu_discord_connect.set_sensitive(!token.empty() && !discord_active);
m_menu_discord_disconnect.set_sensitive(discord_active);
- m_menu_discord_join_guild.set_sensitive(discord_active);
m_menu_discord_set_token.set_sensitive(!discord_active);
m_menu_discord_set_status.set_sensitive(discord_active);
}
@@ -238,15 +237,12 @@ void MainWindow::SetupMenu() {
m_menu_discord_disconnect.set_label("Disconnect");
m_menu_discord_disconnect.set_sensitive(false);
m_menu_discord_set_token.set_label("Set Token");
- m_menu_discord_join_guild.set_label("Accept Invite");
- m_menu_discord_join_guild.set_sensitive(false);
m_menu_discord_set_status.set_label("Set Status");
m_menu_discord_set_status.set_sensitive(false);
m_menu_discord_add_recipient.set_label("Add user to DM");
m_menu_discord_sub.append(m_menu_discord_connect);
m_menu_discord_sub.append(m_menu_discord_disconnect);
m_menu_discord_sub.append(m_menu_discord_set_token);
- m_menu_discord_sub.append(m_menu_discord_join_guild);
m_menu_discord_sub.append(m_menu_discord_set_status);
m_menu_discord_sub.append(m_menu_discord_add_recipient);
m_menu_discord.set_submenu(m_menu_discord_sub);
@@ -297,10 +293,6 @@ void MainWindow::SetupMenu() {
m_signal_action_set_token.emit();
});
- m_menu_discord_join_guild.signal_activate().connect([this] {
- m_signal_action_join_guild.emit();
- });
-
m_menu_file_reload_css.signal_activate().connect([this] {
m_signal_action_reload_css.emit();
});
@@ -383,10 +375,6 @@ MainWindow::type_signal_action_reload_css MainWindow::signal_action_reload_css()
return m_signal_action_reload_css;
}
-MainWindow::type_signal_action_join_guild MainWindow::signal_action_join_guild() {
- return m_signal_action_join_guild;
-}
-
MainWindow::type_signal_action_set_status MainWindow::signal_action_set_status() {
return m_signal_action_set_status;
}
diff --git a/src/windows/mainwindow.hpp b/src/windows/mainwindow.hpp
index 534df1b..b013e32 100644
--- a/src/windows/mainwindow.hpp
+++ b/src/windows/mainwindow.hpp
@@ -63,7 +63,6 @@ private:
Gtk::MenuItem m_menu_discord_connect;
Gtk::MenuItem m_menu_discord_disconnect;
Gtk::MenuItem m_menu_discord_set_token;
- Gtk::MenuItem m_menu_discord_join_guild;
Gtk::MenuItem m_menu_discord_set_status;
Gtk::MenuItem m_menu_discord_add_recipient; // move me somewhere else some day
void OnDiscordSubmenuPopup();
@@ -91,7 +90,6 @@ public:
typedef sigc::signal<void> type_signal_action_disconnect;
typedef sigc::signal<void> type_signal_action_set_token;
typedef sigc::signal<void> type_signal_action_reload_css;
- typedef sigc::signal<void> type_signal_action_join_guild;
typedef sigc::signal<void> type_signal_action_set_status;
// this should probably be removed
typedef sigc::signal<void, Snowflake> type_signal_action_add_recipient; // channel id
@@ -102,7 +100,6 @@ public:
type_signal_action_disconnect signal_action_disconnect();
type_signal_action_set_token signal_action_set_token();
type_signal_action_reload_css signal_action_reload_css();
- type_signal_action_join_guild signal_action_join_guild();
type_signal_action_set_status signal_action_set_status();
type_signal_action_add_recipient signal_action_add_recipient();
type_signal_action_view_pins signal_action_view_pins();
@@ -113,7 +110,6 @@ private:
type_signal_action_disconnect m_signal_action_disconnect;
type_signal_action_set_token m_signal_action_set_token;
type_signal_action_reload_css m_signal_action_reload_css;
- type_signal_action_join_guild m_signal_action_join_guild;
type_signal_action_set_status m_signal_action_set_status;
type_signal_action_add_recipient m_signal_action_add_recipient;
type_signal_action_view_pins m_signal_action_view_pins;