summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dialogs/joinguild.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/dialogs/joinguild.cpp b/dialogs/joinguild.cpp
index e1cce38..8b7de23 100644
--- a/dialogs/joinguild.cpp
+++ b/dialogs/joinguild.cpp
@@ -42,11 +42,11 @@ JoinGuildDialog::JoinGuildDialog(Gtk::Window &parent)
void JoinGuildDialog::on_entry_changed() {
std::string s = m_entry.get_text();
- std::regex invite_regex(R"~(discord\.(gg|com)\/([a-zA-Z0-9]+)$)~", std::regex_constants::ECMAScript);
+ 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[2].str() : s;
+ m_code = full_url ? match[4].str() : s;
m_needs_request = true;
m_ok.set_sensitive(false);
} else {