1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:37:37 +00:00

IRCClient: Add ShowNickChangeMessages/ShowJoinPartMessages conf options

Allow IRCClient to hide nick change spam and join/part spam
This commit is contained in:
Brendan Coles 2020-04-10 10:59:13 +00:00 committed by Andreas Kling
parent a3edeb5868
commit df7b617ba1
4 changed files with 22 additions and 4 deletions

View file

@ -100,7 +100,8 @@ void IRCChannel::handle_join(const String& nick, const String& hostmask)
} }
add_member(nick, (char)0); add_member(nick, (char)0);
m_member_model->update(); m_member_model->update();
add_message(String::format("*** %s [%s] has joined %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen); if (m_client.show_join_part_messages())
add_message(String::format("*** %s [%s] has joined %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen);
} }
void IRCChannel::handle_part(const String& nick, const String& hostmask) void IRCChannel::handle_part(const String& nick, const String& hostmask)
@ -113,7 +114,8 @@ void IRCChannel::handle_part(const String& nick, const String& hostmask)
remove_member(nick); remove_member(nick);
} }
m_member_model->update(); m_member_model->update();
add_message(String::format("*** %s [%s] has parted from %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen); if (m_client.show_join_part_messages())
add_message(String::format("*** %s [%s] has parted from %s", nick.characters(), hostmask.characters(), m_name.characters()), Color::MidGreen);
} }
void IRCChannel::handle_quit(const String& nick, const String& hostmask, const String& message) void IRCChannel::handle_quit(const String& nick, const String& hostmask, const String& message)
@ -142,8 +144,9 @@ void IRCChannel::notify_nick_changed(const String& old_nick, const String& new_n
for (auto& member : m_members) { for (auto& member : m_members) {
if (member.name == old_nick) { if (member.name == old_nick) {
member.name = new_nick; member.name = new_nick;
add_message(String::format("~ %s changed nickname to %s", old_nick.characters(), new_nick.characters()), Color::MidMagenta);
m_member_model->update(); m_member_model->update();
if (m_client.show_nick_change_messages())
add_message(String::format("~ %s changed nickname to %s", old_nick.characters(), new_nick.characters()), Color::MidMagenta);
return; return;
} }
} }

View file

@ -78,6 +78,10 @@ IRCClient::IRCClient()
m_nickname = m_config->read_entry("User", "Nickname", String::format("%s_seren1ty", user_pw->pw_name)); m_nickname = m_config->read_entry("User", "Nickname", String::format("%s_seren1ty", user_pw->pw_name));
m_hostname = m_config->read_entry("Connection", "Server", ""); m_hostname = m_config->read_entry("Connection", "Server", "");
m_port = m_config->read_num_entry("Connection", "Port", 6667); m_port = m_config->read_num_entry("Connection", "Port", 6667);
m_show_join_part_messages = m_config->read_bool_entry("Messaging", "ShowJoinPartMessages", 1);
m_show_nick_change_messages = m_config->read_bool_entry("Messaging", "ShowNickChangeMessages", 1);
m_ctcp_version_reply = m_config->read_entry("CTCP", "VersionReply", "IRC Client [x86] / Serenity OS"); m_ctcp_version_reply = m_config->read_entry("CTCP", "VersionReply", "IRC Client [x86] / Serenity OS");
m_ctcp_userinfo_reply = m_config->read_entry("CTCP", "UserInfoReply", user_pw->pw_name); m_ctcp_userinfo_reply = m_config->read_entry("CTCP", "UserInfoReply", user_pw->pw_name);
m_ctcp_finger_reply = m_config->read_entry("CTCP", "FingerReply", user_pw->pw_name); m_ctcp_finger_reply = m_config->read_entry("CTCP", "FingerReply", user_pw->pw_name);
@ -620,7 +624,8 @@ void IRCClient::handle_nick(const Message& msg)
auto& new_nick = msg.arguments[0]; auto& new_nick = msg.arguments[0];
if (old_nick == m_nickname) if (old_nick == m_nickname)
m_nickname = new_nick; m_nickname = new_nick;
add_server_message(String::format("~ %s changed nickname to %s", old_nick.characters(), new_nick.characters())); if (m_show_nick_change_messages)
add_server_message(String::format("~ %s changed nickname to %s", old_nick.characters(), new_nick.characters()));
if (on_nickname_changed) if (on_nickname_changed)
on_nickname_changed(new_nick); on_nickname_changed(new_nick);
for (auto& it : m_channels) { for (auto& it : m_channels) {

View file

@ -60,6 +60,9 @@ public:
String ctcp_userinfo_reply() const { return m_ctcp_userinfo_reply; } String ctcp_userinfo_reply() const { return m_ctcp_userinfo_reply; }
String ctcp_finger_reply() const { return m_ctcp_finger_reply; } String ctcp_finger_reply() const { return m_ctcp_finger_reply; }
bool show_join_part_messages() const { return m_show_join_part_messages; }
bool show_nick_change_messages() const { return m_show_nick_change_messages; }
void join_channel(const String&); void join_channel(const String&);
void part_channel(const String&); void part_channel(const String&);
void change_nick(const String&); void change_nick(const String&);
@ -208,6 +211,9 @@ private:
HashMap<String, RefPtr<IRCChannel>, CaseInsensitiveStringTraits> m_channels; HashMap<String, RefPtr<IRCChannel>, CaseInsensitiveStringTraits> m_channels;
HashMap<String, RefPtr<IRCQuery>, CaseInsensitiveStringTraits> m_queries; HashMap<String, RefPtr<IRCQuery>, CaseInsensitiveStringTraits> m_queries;
bool m_show_join_part_messages { 1 };
bool m_show_nick_change_messages { 1 };
String m_ctcp_version_reply; String m_ctcp_version_reply;
String m_ctcp_userinfo_reply; String m_ctcp_userinfo_reply;
String m_ctcp_finger_reply; String m_ctcp_finger_reply;

View file

@ -10,3 +10,7 @@ AutoJoinChannels=#serenityos
VersionReply=IRC Client [x86] / Serenity OS VersionReply=IRC Client [x86] / Serenity OS
UserInfoReply=anon UserInfoReply=anon
FingerReply=anon FingerReply=anon
[Messaging]
ShowJoinPartMessages=1
ShowNickChangeMessages=1