@ -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 ) {