|  |  |  | @ -382,28 +382,54 @@ impl GroupHandle { | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  |                                 } | 
			
		
	
		
			
				
					|  |  |  |  |                                 StatusCommand::Help => { | 
			
		
	
		
			
				
					|  |  |  |  |                                     if self.config.is_member_only() { | 
			
		
	
		
			
				
					|  |  |  |  |                                         let mut s = "This is a member-only group. ".to_string(); | 
			
		
	
		
			
				
					|  |  |  |  |                                         if self.config.can_write(¬if_acct) { | 
			
		
	
		
			
				
					|  |  |  |  |                                             s.push_str("*You are not a member, ask one of the admins to add you.*"); | 
			
		
	
		
			
				
					|  |  |  |  |                                         } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                             if is_admin { | 
			
		
	
		
			
				
					|  |  |  |  |                                                 s.push_str("*You are an admin.*"); | 
			
		
	
		
			
				
					|  |  |  |  |                                             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                                 s.push_str("*You are a member.*"); | 
			
		
	
		
			
				
					|  |  |  |  |                                             } | 
			
		
	
		
			
				
					|  |  |  |  |                                         } | 
			
		
	
		
			
				
					|  |  |  |  |                                         replies.push(s); | 
			
		
	
		
			
				
					|  |  |  |  |                                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                         let mut s = "This is a public-access group. ".to_string(); | 
			
		
	
		
			
				
					|  |  |  |  |                                         if is_admin { | 
			
		
	
		
			
				
					|  |  |  |  |                                             s.push_str("*You are an admin.*"); | 
			
		
	
		
			
				
					|  |  |  |  |                                         } | 
			
		
	
		
			
				
					|  |  |  |  |                                         replies.push(s); | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     replies.push( | 
			
		
	
		
			
				
					|  |  |  |  |                                         "To share an original post with the group, mention the group user.\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         Posts with commands won't be shared. Supported commands:\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         "\nTo share an original post, mention the group user.\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         Posts with commands, and replies, won't be shared.\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         \n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         **Supported commands:**\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         `/ignore, /i` - make the group completely ignore the post\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         `/boost, /b` - boost the replied-to post into the group\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         `/leave` - leave the group as a member".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                         `/members, /who` - show group members / admins\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                         `/boost, /b` - boost the replied-to post into the group".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     if self.config.is_member_only() { | 
			
		
	
		
			
				
					|  |  |  |  |                                         replies.push("`/leave` - leave the group".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     if is_admin { | 
			
		
	
		
			
				
					|  |  |  |  |                                         replies.push( | 
			
		
	
		
			
				
					|  |  |  |  |                                             "`/members` - list members and admins\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             "`/add user` - add a member (use e-mail style address)\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/kick, /remove user` - kick a member\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/add user` - add a member\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/ban x` - ban a user or a server\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/unban x` - lift a ban\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/op, /admin user` - give admin rights\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/deop, /deadmin user` - remove admin rights\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/op, /admin user` - grant admin rights\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/deop, /deadmin user` - revoke admin rights\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/opengroup` - make member-only\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/closegroup` - make public-access\n\ | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/announce x` - make a public announcement from all that follows".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                             `/announce x` - make a public announcement from the rest of the status".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  |                                 } | 
			
		
	
		
			
				
					|  |  |  |  |                                 StatusCommand::ListMembers => { | 
			
		
	
		
			
				
					|  |  |  |  |                                     let mut show_admins = false; | 
			
		
	
		
			
				
					|  |  |  |  |                                     if is_admin { | 
			
		
	
		
			
				
					|  |  |  |  |                                         if self.config.is_member_only() { | 
			
		
	
		
			
				
					|  |  |  |  |                                             replies.push("Group members:".to_string()); | 
			
		
	
	
		
			
				
					|  |  |  | @ -420,12 +446,18 @@ impl GroupHandle { | 
			
		
	
		
			
				
					|  |  |  |  |                                                 } | 
			
		
	
		
			
				
					|  |  |  |  |                                             } | 
			
		
	
		
			
				
					|  |  |  |  |                                         } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                             replies.push("Group admins:".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                             let mut admins = self.config.get_admins().collect::<Vec<_>>(); | 
			
		
	
		
			
				
					|  |  |  |  |                                             admins.sort(); | 
			
		
	
		
			
				
					|  |  |  |  |                                             for a in admins { | 
			
		
	
		
			
				
					|  |  |  |  |                                                 replies.push(format!("{}", a)); | 
			
		
	
		
			
				
					|  |  |  |  |                                             } | 
			
		
	
		
			
				
					|  |  |  |  |                                             show_admins = true; | 
			
		
	
		
			
				
					|  |  |  |  |                                         } | 
			
		
	
		
			
				
					|  |  |  |  |                                     } else { | 
			
		
	
		
			
				
					|  |  |  |  |                                         show_admins = true; | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     if show_admins { | 
			
		
	
		
			
				
					|  |  |  |  |                                         replies.push("Group admins:".to_string()); | 
			
		
	
		
			
				
					|  |  |  |  |                                         let mut admins = self.config.get_admins().collect::<Vec<_>>(); | 
			
		
	
		
			
				
					|  |  |  |  |                                         admins.sort(); | 
			
		
	
		
			
				
					|  |  |  |  |                                         for a in admins { | 
			
		
	
		
			
				
					|  |  |  |  |                                             replies.push(format!("{}", a)); | 
			
		
	
		
			
				
					|  |  |  |  |                                         } | 
			
		
	
		
			
				
					|  |  |  |  |                                     } | 
			
		
	
		
			
				
					|  |  |  |  |                                 } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |