From 674b9da6fa84f8b25da78d688cee320b09523f4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Fri, 27 Aug 2021 00:30:49 +0200 Subject: [PATCH] improve /add user --- CHANGELOG.md | 3 ++ Cargo.lock | 2 +- Cargo.toml | 2 +- src/group_handler/handle_mention.rs | 43 +++++++++++++---------------- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43b9893..bb67330 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v0.2.3 +- `/add user` will now try to follow even if already a member + ## v0.2.2 - All hashtags, server names and handles are now lowercased = case-insensitive - Prevent the `-a` flag overwriting existing group in the config diff --git a/Cargo.lock b/Cargo.lock index 49848d9..a650262 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,7 +328,7 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" [[package]] name = "fedigroups" -version = "0.2.2" +version = "0.2.3" dependencies = [ "anyhow", "clap", diff --git a/Cargo.toml b/Cargo.toml index 6430c81..b5fb06d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "fedigroups" -version = "0.2.2" +version = "0.2.3" authors = ["Ondřej Hruška "] edition = "2018" publish = false diff --git a/src/group_handler/handle_mention.rs b/src/group_handler/handle_mention.rs index c2647be..b8beef4 100644 --- a/src/group_handler/handle_mention.rs +++ b/src/group_handler/handle_mention.rs @@ -379,19 +379,15 @@ impl<'a> ProcessMention<'a> { async fn cmd_add_member(&mut self, user: &str) -> Result<(), GroupError> { let u = normalize_acct(user, &self.group_acct)?; if self.is_admin { - if !self.config.is_member(&u) { - match self.config.set_member(&u, true) { - Ok(_) => { - self.add_reply(format!("User {} added to the group!", u)); - self.follow_by_acct(&u) - .await.log_error("Failed to follow"); - } - Err(e) => { - self.add_reply(format!("Failed to add user {} to group: {}", u, e)); - } + match self.config.set_member(&u, true) { + Ok(_) => { + self.add_reply(format!("User {} added to the group!", u)); + self.follow_by_acct(&u) + .await.log_error("Failed to follow"); + } + Err(e) => { + self.add_reply(format!("Failed to add user {} to group: {}", u, e)); } - } else { - debug!("User was already a member"); } } else { self.add_reply("Only admins can manage members"); @@ -402,16 +398,14 @@ impl<'a> ProcessMention<'a> { async fn cmd_remove_member(&mut self, user: &str) -> Result<(), GroupError> { let u = normalize_acct(user, &self.group_acct)?; if self.is_admin { - if self.config.is_member(&u) { - match self.config.set_member(&u, false) { - Ok(_) => { - self.add_reply(format!("User {} removed from the group.", u)); - self.unfollow_by_acct(&u).await - .log_error("Failed to unfollow removed user"); - } - Err(_) => { - unreachable!() - } + match self.config.set_member(&u, false) { + Ok(_) => { + self.add_reply(format!("User {} removed from the group.", u)); + self.unfollow_by_acct(&u).await + .log_error("Failed to unfollow removed user"); + } + Err(_) => { + unreachable!() } } } else { @@ -586,9 +580,10 @@ impl<'a> ProcessMention<'a> { // admin can leave but that's a bad idea let _ = self.config.set_member(&self.status_acct, false); self.add_reply("You're no longer a group member. Unfollow the group user to stop receiving group messages."); - self.unfollow_user_by_id(&self.status_user_id).await - .log_error("Failed to unfollow"); } + + self.unfollow_user_by_id(&self.status_user_id).await + .log_error("Failed to unfollow"); } async fn cmd_join(&mut self) {